Есть сервер с FreeBSD 8.2 ZFS и GPT. При штатном рестарте уходит в циклический ребут не доходя до загрузчика. Приходится каждый раз восстанавливать MBR и загрузчик:Fixit# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ad10
Fixit# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ad12После этого, сервер стартует нормально. Никак не пойму почему после штатного(!) ребута портится загрузчик и/или MBR ? Может кто-нибудь подскажет, в какую сторону копать?
> Есть сервер с FreeBSD 8.2 ZFS и GPT. При штатном рестарте уходит
> в циклический ребут не доходя до загрузчика. Приходится каждый раз восстанавливать
> MBR и загрузчик:Вирус? Был у меня во времена ДОС-а вирус, который при перезаргузке [пере-?]заражал MBR и "восстанавливал" старую таблицу разделов.
> Вирус? Был у меня во времена ДОС-а вирус, который при перезаргузке [пере-?]заражал
> MBR и "восстанавливал" старую таблицу разделов.Я конечно не гуру, но про вирусы, затирающие MBR FreeBSD не слышал. Кстати вопрос: кроме chkrootkit чем бы еще для профилактики мониторить систему?
> Есть сервер с FreeBSD 8.2 ZFS и GPT. При штатном рестарте уходит
> в циклический ребут не доходя до загрузчика. Приходится каждый раз восстанавливать
> MBR и загрузчик:
> Fixit# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ad10
> Fixit# gpart bootcode -b /mnt/boot/pmbr -p /mnt/boot/gptzfsboot -i 1 ad12
> После этого, сервер стартует нормально. Никак не пойму почему после штатного(!) ребута
> портится загрузчик и/или MBR ? Может кто-нибудь подскажет, в какую сторону
> копать?зеркало? иначе зачем загрузчик на оба диска?
видимо под зеркало целиком диски используются и label при именовании geom провайдера
затирает информацию в GPT - такое вот предположение
> зеркало? иначе зачем загрузчик на оба диска?
> видимо под зеркало целиком диски используются и label при именовании geom провайдера
> затирает информацию в GPT - такое вот предположениеТак точно, gmirror. У меня тоже единственное смутное подозрение было, что в этом как-то замешано зеркало. Видимо, не зря. Не очень понял, что имеется в виду под "label при именовании geom провайдера затирает информацию в GPT". Можно чуть более детально?
> Так точно, gmirror. У меня тоже единственное смутное подозрение было, что в
> этом как-то замешано зеркало. Видимо, не зря. Не очень понял, что
> имеется в виду под "label при именовании geom провайдера затирает информацию
> в GPT". Можно чуть более детально?https://groups.google.com/d/topic/ml-freebsd-questions/vjY1r...
>> зеркало? иначе зачем загрузчик на оба диска?
>> видимо под зеркало целиком диски используются и label при именовании geom провайдера
>> затирает информацию в GPT - такое вот предположение
> Так точно, gmirror. У меня тоже единственное смутное подозрение было, что в
> этом как-то замешано зеркало. Видимо, не зря. Не очень понял, что
> имеется в виду под "label при именовании geom провайдера затирает информацию
> в GPT". Можно чуть более детально?sorry некорректно выразился
man gmirror
...
The
gmirror utility uses on-disk metadata (stored in the provider's last sec-
tor) to store all needed information. Since the last sector is used for
this purpose, it is possible to place a root file system on a mirror.
...gmirror использует метаданные (хранящиеся в последнем секторе провайдера) на диске для
сохранения всей необходимой информацииТеперь рассмотрим подход:
1) создаем зеркало, затем ЗЕРКАЛО оформляем используя gpart:
# gmirror label ... gm0 adaX adaY
после этого мы имеем зеркало: /dev/mirror/gm0
вот его и надо оформлять на разделы используя gpart# gpart gm0
2) оформляем СЫРОЙ диск через gpart, потом создаем зеркало для ПАРТИЦИЙ (а не для всего диска)
# gpart adaX
# gpart adaY
# gmirror ... adaXp1 adaYp1
...или посмотреть на странице Андрея Елсукова об этой проблеме:
http://bu7cher.blogspot.com/search/label/gmirror
Общая ошибка:
# gpart adaX
а затем
# gmirror adaX adaYсмотрим внимательно, мы оформляем на разделы adaX (geom использует adaX),
затем gmirror задаем в качестве провайдера adaX и он чесно пишет метаданные в последний
сектор чего?! - adaXте что нужно было сделать:
# gmirror gm0 adaX adaYполучили зеркало gm0 которое на один сектор меньше чем сырой диск adaX, ибо туда
метаданные записаны, и далее оформляем на разделы ЗЕРКАЛО, а не сырой диск:# gpart ... gm0
Понятно объяснил или нет?
Всё, понятно. Спасибо за подробное объяснение. Буду думать, как на живую переделать правильно.> Понятно объяснил или нет?
> Всё, понятно. Спасибо за подробное объяснение. Буду думать, как на живую переделать
> правильно.на живую, imho, только один вариант:
- развалить gmirror (удалить метаданные от RAID1)
- затем создать несколько зеркал (gmX) для каждой партиции
> на живую, imho, только один вариант:
> - развалить gmirror (удалить метаданные от RAID1)
> - затем создать несколько зеркал (gmX) для каждой партицииЯ тоже других вариантов не вижу. Еще раз спасибо за помощь.