URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92947
[ Назад ]

Исходное сообщение
"При штатном ребуте портится MBR и/или загрузчик"

Отправлено Papa , 27-Янв-12 02:25 
Есть сервер с 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 ? Может кто-нибудь подскажет, в какую сторону копать?


Содержание

Сообщения в этом обсуждении
"При штатном ребуте портится MBR и/или загрузчик"
Отправлено Andrey Mitrofanov , 27-Янв-12 10:29 
> Есть сервер с FreeBSD 8.2 ZFS и GPT. При штатном рестарте уходит
> в циклический ребут не доходя до загрузчика. Приходится каждый раз восстанавливать
> MBR и загрузчик:

Вирус? Был у меня во времена ДОС-а вирус, который при перезаргузке [пере-?]заражал MBR и "восстанавливал" старую таблицу разделов.


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено Papa , 27-Янв-12 13:10 
> Вирус? Был у меня во времена ДОС-а вирус, который при перезаргузке [пере-?]заражал
> MBR и "восстанавливал" старую таблицу разделов.

Я конечно не гуру, но про вирусы, затирающие MBR FreeBSD не слышал. Кстати вопрос: кроме chkrootkit чем бы еще для профилактики мониторить систему?


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено lavr , 27-Янв-12 11:03 
> Есть сервер с 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 - такое вот предположение


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено Papa , 27-Янв-12 13:08 
> зеркало? иначе зачем загрузчик на оба диска?
> видимо под зеркало целиком диски используются и label при именовании geom провайдера
> затирает информацию в GPT - такое вот предположение

Так точно, gmirror. У меня тоже единственное смутное подозрение было, что в этом как-то замешано зеркало. Видимо, не зря. Не очень понял, что имеется в виду под "label при именовании geom провайдера затирает информацию в GPT". Можно чуть более детально?


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено gpl77 , 27-Янв-12 14:35 
> Так точно, gmirror. У меня тоже единственное смутное подозрение было, что в
> этом как-то замешано зеркало. Видимо, не зря. Не очень понял, что
> имеется в виду под "label при именовании geom провайдера затирает информацию
> в GPT". Можно чуть более детально?

https://groups.google.com/d/topic/ml-freebsd-questions/vjY1r...


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено lavr , 27-Янв-12 16:49 
>> зеркало? иначе зачем загрузчик на оба диска?
>> видимо под зеркало целиком диски используются и 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

Понятно объяснил или нет?


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено Papa , 27-Янв-12 22:59 
Всё, понятно. Спасибо за подробное объяснение. Буду думать, как на живую переделать правильно.

> Понятно объяснил или нет?


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено lavr , 28-Янв-12 11:15 
> Всё, понятно. Спасибо за подробное объяснение. Буду думать, как на живую переделать
> правильно.

на живую, imho, только один вариант:

- развалить gmirror (удалить метаданные от RAID1)
- затем создать несколько зеркал (gmX) для каждой партиции


"При штатном ребуте портится MBR и/или загрузчик"
Отправлено Papa , 28-Янв-12 13:05 
> на живую, imho, только один вариант:
> - развалить gmirror (удалить метаданные от RAID1)
> - затем создать несколько зеркал (gmX) для каждой партиции

Я тоже других вариантов не вижу. Еще раз спасибо за помощь.