Dans cette procédure, on suppose les conditions suivantes :
Le pool racine ZFS ne peut pas être récupéré.
Les instantanés du pool racine ZFS sont stockés sur un système distant et sont partagés sur NFS.
Toutes les étapes sont effectuées sur le système local.
Initialisez le système à partir d'un CD/DVD ou du réseau.
SPARC : sélectionnez l'une des méthodes d'initialisation suivantes :
ok boot net -s ok boot cdrom -s |
Si vous n'utilisez pas l'option -s, vous devrez quitter le programme d'installation.
x86 : initialisez le système à partir du DVD ou du réseau. Quittez ensuite le programme d'installation.
Montez le jeu de données de l'instantané distant.
Exemple :
# mount -F nfs remote-system:/rpool/snaps /mnt |
Si vos services réseau ne sont pas configurés, il peut être nécessaire de spécifier l'adresse IP du système distant.
Si le disque du pool racine est remplacé et ne contient aucune étiquette de disque pouvant être utilisée par ZFS, vous devez renommer le disque.
Pour en savoir plus sur l'affectation d'un nouveau nom au disque, reportez-vous au site suivant :
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
Recréez le pool racine.
Exemple :
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0 |
Restaurez les instantanés du pool racine.
Cette étape peut prendre un certain temps. Exemple :
# cat /mnt/rpool.0804 | zfs receive -Fdu rpool |
L'utilisation de l'option -u implique que l'archive restaurée n'est pas montée à la fin de l'opération zfs receive.
Vérifiez que les jeux de données du pool racine sont restaurés.
Exemple :
# 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 - |
Définissez la propriété bootfs sur l'environnement d'initialisation du pool racine.
Exemple :
# zpool set bootfs=rpool/ROOT/zfsBE rpool |
Installez les blocs d'initialisation sur le nouveau disque.
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 |
Redémarrez le système.
# init 6 |