Oracle Solaris ZFS 管理ガイド

ProcedureZFS ルートプールを再作成しルートプールのスナップショットを復元する方法

この手順では、次の条件を前提としています。

手順はすべてローカルシステム上で実行します。

  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 で使用可能なディスクラベルを含んでいない場合は、ディスクのラベルを変更する必要があります。

    ディスクのラベル変更の詳細は、次の Web サイトを参照してください。

    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