[Comm] Re: software raid1

Sergey Vlasov vsu на altlinux.ru
Ср Авг 13 16:48:38 MSD 2003


On Wed, 13 Aug 2003 00:54:17 +0400
Metalking <metalking на inbox.ru> wrote:

> >В ядрах действительно были исправления, но дело не в этом. Необходимо
> >добавить поддержку запуска RAID в mkinitrd - после этого всё работает
> >даже с ядрами из Master 2.2.
> >
> Пожалуйста поподробнее. Можно даже рецептик на www.atmsk.ru выложить. 
> 
> P.S. можно ли на свежеустановленном мастере 2.2 (в инсталляторе диски 
> отформатированы как raid1) что-либо поправить чтобы происходила 
> нормальная загрузка.
> P.P.S. Будет ли это исправлено в следующих версиях ALT.

В Сизифе уже лежит mkinitrd-2.8.8-alt1, в который добавлена поддержка
автозапуска RAID. Но в этой версии есть грабли: для запуска
используется /dev/md0, а в старых ядрах есть ошибка - если
RAID_AUTORUN выполняется через устройство, которое при этом будет
запущено, для него портится счётчик ссылок, и потом raidstop /dev/md0
сработает на смонтированном устройстве (а стандартные скрипты вызывают
raidstop при останове системы). Если не использовать /dev/md0, а
создавать массивы начиная с md1 и больше (либо как минимум не класть
корень на md0), всё будет нормально даже на старых ядрах.

Если система была установлена на raid1 инсталятором (после чего,
понятно, не загружается), можно поступить следующим образом
(предположим, что корень лежит на /dev/md1, который собран из
/dev/hda5 и /dev/hdc5):

1) При загрузке указать root=/dev/hda5. Система начнёт грузиться и
вывалится в RAID repair, запросив пароль рута.

2) В RAID repair обязательно нужно с помощью fdisk /dev/hdc сменить
тип раздела hdc5, чтобы он не распознавался при загрузке (поскольку
при таком запуске в обход RAID диски окажутся рассинхронизированы, но
так, что RAID этого не обнаружит, что приведёт к диким глюкам при
последующей загрузке с RAID). Можно поставить там 0x83 - Linux native.

3) Обновить mkinitrd и пересоздать им initrd (возможно, придётся
сделать service network start, смонтировать другие файловые
системы...)

4) Перезагрузиться с новым initrd (уже с root=/dev/md1). Должно пройти
автораспознавание RAID-разделов, при этом /dev/md1, на котором лежит
корень, запустится в деградированном режиме.

5) Вернуть второй диск в /dev/md1: raidhotadd /dev/md1 /dev/hdc5;
запустится синхронизация.

6) Вернуть тип раздела /dev/hdc5 в 0xfd.



Подробная информация о списке рассылки Community