[Comm] root raid частное решение

Владимир =?iso-8859-1?q?fmfm_=CE=C1_symmetron=2Emsk=2Eru?=
Вт Май 27 17:12:50 MSD 2003


Aleksey Avdeev пишет:

>
>   Поэкспериментировал с ядром 2.4.20-alt7-up. Листинг содержимого 
> initrd содержится в прилагаемом файле initrd.ls.gz.
>
>   linuxrc:
>
> **********
>
> #!/bin/sh
> /bin/insmod -f /lib/modules/2.4.20-alt7-up/kernel/drivers/md/raid1.o
> /bin/insmod -f /lib/modules/2.4.20-alt7-up/kernel/fs/reiserfs/reiserfs.o
> #/bin/mount -t proc /proc /proc
> #/sbin/raidstart /dev/md0 /dev/md1
> /sbin/raidstart --all
>
> ^^^ Строки эквивалентны. Я не знаю, какой вариант правильнее.
>
> #/bin/cat /proc/mdstat
>
> ^^^ Если используется - требуется подключить proc и добавить cat и 
> umount в bin (или реализовать их средствами BusyBox).
>
> #/bin/umount proc 



Я из initrd инициализирую только корневой raid, соответсвенно сторока 
имеет вид
/sbin/raidstart /dev/md0

Остальные инициализируются позднее.


>
>
> **********
>
>   modules.conf:
>
> **********
>
> alias md-personality-3 raid1
>
> **********
>
>   Если существует линк md-personality-3.o -> raid1.o, то modules.conf 
> не требуется.



У меня ни линка, ни записи в modules.conf нет.


>
>   raidtab:
>
> **********
>
> raiddev /dev/md0
>     raid-level    1
>     nr-raid-disks    2
>     nr-spare-disks    0
>     chunk-size    4
>     persistent-superblock    1
>     device        /dev/hdc3
>         raid-disk    0
>     device        /dev/hda3
>         raid-disk    1
> raiddev /dev/md1
>     raid-level    1
>     nr-raid-disks    2
>     nr-spare-disks    0
>     chunk-size    4
>     persistent-superblock    1
>     device        /dev/hdc5
>         raid-disk    0
>     device        /dev/hda5
>         raid-disk    1
>
> ********** 



А у меня в initrd "урезанный" raidtab, с описанием одного устройства (но 
это неважно).


>   Описание md1 - явная избыточность. Но при его удалении система 
> переставала корректно загружаться: Корень цепляла, а всё то, что у 
> меня на md1 (том lvm) - нет. Думаю, что что-то я не учёл...



Чтобы некорневые raid и сверху lvm грузились требуется правка rc.sysinit
Я писал об этом и жаль, что в дистрибутиве это не сделано (такая правка 
ничего не ломает).
Следует поменять местами секции иницализации raid (она должна находится 
до перемонтирования
корня в режим чтение-запись, где в оригинальном скрипте идет 
иницализация lvm) и секцию lvm
(то есть переместить ее точно туда, где в оригинале секция raid - после 
перемонтирования в чтение-запись).

И еще. Для полной корректности иницализацию lvm следует делать с vgscan, 
у меня это так

# LVM Setting
VGCHANGE=/sbin/vgchange
if [ -x $VGCHANGE ]; then
   if /sbin/vgscan &>/dev/null; then
       action "Setting up LVM:" "$VGCHANGE" -a y
   else
       /sbin/rmmod lvm-mod
   fi
fi

 




-- 
Best regards
Vladimir





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