[sisyphus] raidstart

Aleksey Avdeev =?iso-8859-1?q?solo=5Foboroten_=CE=C1_mail333=2Ecom?=
Пт Июн 6 12:46:11 MSD 2003


Aleksey Avdeev пишет:
> Борис Ревякин пишет:
> 
>> On Thu, 05 Jun 2003 14:08:16 +0400
>> "Aleksey Avdeev" <solo_oboroten на mail333.com> wrote:
>>
>>
>>> /etc/rc.d/rc.sysinit. Точнее сказать немогу: у меня на RAIDе корень, 
>>> и подобные проблемы требовали других решений. (Решил через initrd.)
>>
>>
>>
>> А не могли бы Вы показать свой lilo.conf ?
> 
> 
>   У меня grub ;-)
> 
>   Ядру передаю  root=/dev/md0, а сам raid поднимаю через initrd. 
> Создание же самого initrd может оказаться не тривиальной и 
> многовариантной задачей. Почему и предлагаю посмотреть архив Community 
> (благо он через веб доступен).
> 

   Приношу извинения за излишний траффик.

   В devel-kernel я пересылал следующие (возможно, сюда тоже стоило):

-------- Исходное сообщение --------

...
Aleksey Avdeev пишет:
 > Владимир пишет:
 >
 >> 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
 >> Я писал об этом и жаль, что в дистрибутиве это не сделано (такая
 >> правка ничего не ломает).

   Просмотрел я эту правку, оказывается... С ней - всё работает с
поднятием в initrd ТОЛЬКО md0. Правил initrd следующим образом:

1. cd dev; rm hd[ac]5 md1

2. в raidtab убил всё относящиеся к md1

3. в linuxrc строку "/sbin/raidstart --all" ОСТАВИЛ.

   В таком виде всё работает.

 >> Следует поменять местами секции иницализации 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
 >>
 >
 >   Если не ошибаюсь, то я пользуюсь Вашим rc.sysinit (если Вы его
 > выкладывали :-)). Спасибо! Правда, после обновлений его 
приходится
 > сливать с новыми стандартными. (Может и загрузка не 
получалась, из-за
 > ошибки при правке? Приду домой - проверю.)
 >
 >   Правда ИМХО, с vgscan возможно нужно быть осторожнее: 
Автоматическая
 > правка конфигурационных файлов скриптом при КАЖДОЙ загрузке 
потенциально
 > может стать источником проблем при восстановлении системы. Но 
может я и
 > ошибаюсь...
 >

-- 

С уважением. Алексей.






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