Если что-то пошло не так и ваша система не загружается, то не спешите расстраиваться. Можно загрузиться с установочного или LiveCD, примонтировать пул и исправить ошибки.
В данной статье я опишу лишь как можно получить доступ к пулам с помощью LiveCD.
Тестовый стенд: Solaris 11
Загружаемся с установочного диска, выбираем кодировку, раскладку и потом в установочном меню выбираем Shell (пункт 3). После этого мы попадаем в консоль. Что теперь делать? А делать можно всё, что угодно.
Сделаем доступным наш пул.
Создадим папку /a, куда будем импортировать наш пул и импортируем его:
#mkdir /a
#zpool import -f -R /a rpool
без ключа ‘-f’ будет ругаться, что пул уже есть часть другой системы. Теперь мы можем посмотреть уже файловые системы:
#zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 12.1G 3.55G 40K /a/rpool rpool/ROOT 5.63G 3.55G 31K legacy rpool/ROOT/solaris 5.63G 3.55G 3.65G /a/a/root rpool/ROOT/solaris/var 1.97G 3.55G 1.81G /a/var rpool/dump 792M 3.58G 768M - rpool/export 400M 3.55G 32K /a/export rpool/export/home 400M 3.55G 32K /a/export/home rpool/export/home/skeletor 400M 3.55G 400M /a/export/home/skeletor rpool/swap 1.03G 3.59G 1.00G - rpool/swap2 2.06G 5.62G 16K - rpool/test 728M 3.55G 719M /a/test rpool/zone0 394M 3.55G 33K /a/zone0 rpool/zone0/rpool 394M 3.55G 31K /a/rpool rpool/zone0/rpool/ROOT 394M 3.55G 31K legacy rpool/zone0/rpool/ROOT/solaris 394M 3.55G 362M /a rpool/zone0/rpool/ROOT/solaris/var 26.4M 3.55G 25.3M /a/var rpool/zone0/rpool/export 98K 3.55G 32K /a/export rpool/zone0/rpool/export/home 66K 3.55G 32K /a/export/home rpool/zone0/rpool/export/home/skeletor 34K 3.55G 34K /a/export/home/skeletor rpool/zone1 383M 3.55G 33K /a/zone1 rpool/zone1/rpool 383M 3.55G 31K /a/rpool rpool/zone1/rpool/ROOT 383M 3.55G 31K legacy rpool/zone1/rpool/ROOT/solaris 383M 3.55G 355M /a rpool/zone1/rpool/ROOT/solaris/var 26.4M 3.55G 25.3M /a/var rpool/zone1/rpool/export 96.5K 3.55G 32K /a/export rpool/zone1/rpool/export/home 64.5K 3.55G 32K /a/export/home rpool/zone1/rpool/export/home/skeletor 32.5K 3.55G 32.5K /a/export/home/skeletor rpool/zone_solaris10 729M 3.55G 33K /a/zone_solaris10 rpool/zone_solaris10/rpool 729M 3.55G 31K /a/rpool rpool/zone_solaris10/rpool/ROOT 728M 3.55G 31K legacy rpool/zone_solaris10/rpool/ROOT/zbe-0 728M 3.55G 728M /a rpool/zone_solaris10/rpool/export 64K 3.55G 33K /a/export rpool/zone_solaris10/rpool/export/home 31K 3.55G 31K /a/export/home
Как видим, почти всё нормально, кроме корня rpool/ROOT/solaris, он почему-то смонтирован в /a/a/root, а в /a нету подпапки ‘a’. Создадим её и смонтируем наш корень:
#ls /a
export rpool test zone_solaris10 zone0 zone1
#mkdir /a/a
#zfs mount rpool/ROOT/solaris
#ls /a
a export rpool test zone_solaris10 zone0 zone1
#ls /a/a/root/
bin cdrom devices export kernel media net opt pool1 root sbin test usr zone_solaris10 zone1
boot dev etc home lib mnt nfs4 platform proc rpool system tmp var zone0
Для заключительного финта можно даже сделать chroot, что бы точно править файлы на диске, а не в RAM.
#/usr/sbin/chroot /a/a/root /bin/sh
Теперь можно править нужные файлы. Так же можно присвоить IP, запустить ssh и работать полноценно.
В самом конце не забудьте экспортировать пулы.
Примечание.
После загрузки ОС с жёсткого диска, придётся заново импортировать все не корневые пулы.