В рамках этого сценария предположим, что действуют следующие условия:
восстановление корневого пула ZFS невозможно;
снимки корневого пула ZFS хранятся на удаленной системе и подготовлены для совместного использования посредством NFS.
Все действия, приведенные ниже, выполняются на локальной системе.
Загрузка с компакт-диска/диска DVD или сети.
В системе на основе SPARC выберите один из следующих методов загрузки:
ok boot net -s ok boot cdrom -s |
Если не используется параметр -s, из программы установки придется выйти.
В системах на основе x86 укажите параметр для загрузки с диска DVD или из сети. После этого выйдите из программы установкию
Смонтируйте набор данных с удаленным снимком.
Пример:
# mount -F nfs remote-system:/rpool/snaps /mnt |
Если сетевые службы не настроены, может потребоваться указать 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 |
Убедитесь в том, что наборы данных корневого пула восстановлены.
Пример:
# 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/zfs1009BE 4.67G 60.8G 4.67G /a rpool/ROOT/zfs1009BE@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 - |
Настройте свойство bootfs в среде загрузки корневого пула.
Пример:
# zpool set bootfs=rpool/ROOT/zfs1009BE rpool |
Установите загрузочные блоки на новый диск.
Система на основе SPARC:
# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t5d0s0 |
Система на основе x86:
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t5d0s0 |
Перезагрузите систему.
# init 6 |