Предисловие
Публикую письмо моего дорого ночальнега, в котором он описывает как спасать FreeBSD с корнем на ZFS при обновлении версии этой самой ZFS. В принципе, начало данного руководства можно использовать для спасения в иных случаях. Например, при ураганах, оползнях, цунами..Сабж
Добрый день!ZFS — дивная файловая система, базаров нема. Однако с болванки с релизом 8.0 мы можем поставить только ее версию 13, далее после cvsup-а исходников и сборки и установки мира мы обнаруживаем возможность подачей команды zpool upgrade проапгрейдить ФС до версии 14, чем радостно пользуемся. А потом наступает время перезагрузится, и если корень у нас тоже на ZFS, а загрузчик — в GPART-разделе, мы обнаруживаем следующее сообщение:
ZFS: unsupported ZFS version 14 (should be 13).
Лично я в этом момент испытал неиллюзорное желание начать срать кирпичами, но преодолел себя и полез в гугель. Итак, вот что надо сделать:
- Скачать вот отсюда образ:
http://mfsbsd.vx.sk/
и нарезать болванку. Ценность данной болванки в том, что в нее уже заинтегрирована 14-я версия ZFS, то есть она будет актульна минимум до появления 8.1-что угодно.iso - Загрузится с нее, пароль рута - mfsroot
- Командой gpart show посмотреть, какие диски в пуле, где находится загрузчик. например у меня было:
gpart show
=> 34 625140268 ad10 GPT (298G)
34 128 1 freebsd-boot (64K)
162 8388608 2 freebsd-swap (4.0G)
8388770 616751532 3 freebsd-zfs (294G)
=> 34 976773101 ad12 GPT (466G)
34 16777216 1 freebsd-swap (8.0G)
16777250 959995885 2 freebsd-zfs (458G)
То есть в массиве два диска, ad10 и ad12, ебучий загрузчик не той версии живет в первом разделе ad10. - Монтируем все
zpool import имя_пула
Если вы забыли имя пула — вы в жопе!!!! Лично я не знаю (пока) способа его посмотреть в этой ситуацииzfs mount -a
Будет смонтировано содержимое пула, причем в корень, с перекрытием имеющейся ФС. «Всем похуй» ©
Апгрейдим загрузчикgpart bootcode -p /boot/gptzfsboot -i 1 adN
где adN - правильное название устройства из пункта 3, где находится загрузчик. В моем случае это было ad10. С удовольствием наблюдал истерику, когда какой-то неведомый дятел тупо копировал строку из примера (где было ad4), не смотря на то, что вывод его gpart-а давал ad0
6. Завершаем спасательную операцию.cd /
umount -a
reboot
© kest
1 коммент.:
По пункту 4.
если сказать системе zpool import без параметров, то она выдаст все несмонтированные пулы и их имена, соответственно.
Отправить комментарий