この手順では、次の条件を前提としています。
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 で使用可能なディスクラベルを含んでいない場合は、ディスクのラベルを変更する必要があります。
ディスクのラベル変更の詳細は、次の Web サイトを参照してください。
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 |