Solaris 10 ZFS 引导:如何添加引导驱动器的镜像

Dan*_*Dan 2 zfs

我有一个可用的 Solaris 10 机器,其引导/磁盘使用 ZFS。

我想添加另一个硬盘驱动器并镜像这个启动驱动器。

当我运行我认为正确的命令(如下)时,出现错误:

-bash-3.2# zpool add -f rpool mirror c1t0d0 c1t1d0
invalid vdev specification
the following errors must be manually repaired:
/dev/dsk/c1t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M). 
Run Code Online (Sandbox Code Playgroud)

对于如何解决这个问题,有任何的建议吗?

非常感谢,道格

jll*_*gre 7

首先,您需要确保新磁盘大小等于或大于原始磁盘大小。

复制磁盘分区(仅限 x86):

fdisk -W /var/tmp/rpool-fdisk /dev/rdsk/c1t0d0p0
fdisk -F /var/tmp/rpool-fdisk /dev/rdsk/c1t1d0p0
Run Code Online (Sandbox Code Playgroud)

复制标签(x86 和 SPARC)

prtvtoc /dev/rdsk/c1t0d0s0 | fmthard -s - /dev/rdsk/c1t1d0s0
Run Code Online (Sandbox Code Playgroud)

镜像根池(x86 和 SPARC):

zpool attach -f rpool c1t1d0s0
Run Code Online (Sandbox Code Playgroud)

安装 GRUB 引导加载程序(仅限 x86):

installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
Run Code Online (Sandbox Code Playgroud)

安装引导加载程序(仅限 SPARC):

installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
Run Code Online (Sandbox Code Playgroud)

将 BIOS (x86) 或 OpenBOOT prom (SPARC) 设置为可引导新磁盘。

在后一种情况 (SPARC) 中,应该类似于:

eeprom "boot-device=disk1 disk2" 
Run Code Online (Sandbox Code Playgroud)

确保在重新启动之前已完成 ZFS 重新同步。使用该zpool status rpool命令来监控重新同步。