Oracle Solaris ZFS 管理指南

Procedure如何重新创建 ZFS 根池和恢复根池快照

在此过程中,假设下列条件存在:

在本地系统上执行所有步骤。

  1. 从 CD/DVD 或网络引导。

    • SPARC:选择以下引导方法之一:


      ok boot net -s
      ok boot cdrom -s
      

      如果您未使用 -s 选项,则需要退出安装程序。

    • x86:选择用于从 DVD 或网络进行引导的选项。然后,退出安装程序。

  2. 挂载远程快照数据集。

    例如:


    # mount -F nfs remote-system:/rpool/snaps /mnt
    

    如果您尚未配置网络服务,则可能需要指定 remote-system 的 IP 地址。

  3. 如果根池磁盘被替换,并且不包含 ZFS 可用的磁盘标号,则必须对磁盘重新进行标号。

    有关对磁盘进行重新标号的更多信息,请访问以下站点:

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  4. 重新创建根池。

    例如:


    # zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
    /etc/zfs/zpool.cache rpool c1t1d0s0
    
  5. 恢复根池快照。

    此步骤可能会花费一些时间。例如:


    # cat /mnt/rpool.0804 | zfs receive -Fdu rpool
    

    使用 -u 选项表示 zfs receive 操作完成时不挂载恢复的归档文件。

  6. 验证根池数据集是否已恢复。

    例如:


    # 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  -
  7. 设置根池 BE 上的 bootfs 属性。

    例如:


    # zpool set bootfs=rpool/ROOT/zfsBE rpool
    
  8. 在新磁盘上安装引导块。

    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
    
  9. 重新引导系统。


    # init 6