在此过程中,假设下列条件存在:
无法恢复 ZFS 根池。
ZFS 根池快照存储在远程系统上并通过 NFS 共享。
在本地系统上执行所有步骤。
从 CD/DVD 或网络引导。
SPARC:选择以下引导方法之一:
ok boot net -s ok boot cdrom -s |
如果您未使用 -s 选项,则需要退出安装程序。
x86:选择用于从 DVD 或网络进行引导的选项。然后,退出安装程序。
挂载远程快照数据集。
例如:
# mount -F nfs remote-system:/rpool/snaps /mnt |
如果您尚未配置网络服务,则可能需要指定 remote-system 的 IP 地址。
如果根池磁盘被替换,并且不包含 ZFS 可用的磁盘标号,则必须对磁盘重新进行标号。
有关对磁盘进行重新标号的更多信息,请访问以下站点:
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
重新创建根池。
例如:
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0 |
恢复根池快照。
此步骤可能会花费一些时间。例如:
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool |
使用 -u 选项表示 zfs receive 操作完成时不挂载恢复的归档文件。
验证根池数据集是否已恢复。
例如:
# zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 6.17G 60.8G 98K /a/rpool rpool@0804 0 - 98K - rpool/ROOT 4.67G 60.8G 21K /legacy rpool/ROOT@0804 0 - 21K - rpool/ROOT/zfsBE 4.67G 60.8G 4.67G /a rpool/ROOT/zfsBE@0804 398K - 4.67G - rpool/dump 1.00G 60.8G 1.00G - rpool/dump@0804 0 - 1.00G - rpool/swap 517M 61.3G 16K - rpool/swap@0804 0 - 16K - |
设置根池 BE 上的 bootfs 属性。
例如:
# zpool set bootfs=rpool/ROOT/zfsBE rpool |
在新磁盘上安装引导块。
SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0 |
x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0 |
重新引导系统。
# init 6 |