[make-initrd] I: pipeline feature

Leonid Krivoshein klark.devel at gmail.com
Fri Feb 19 16:40:08 MSK 2021


19.02.2021 13:49, Alexey Gladkov пишет:
> On Thu, Feb 18, 2021 at 11:29:04PM +0300, Leonid Krivoshein wrote:
>>> Это не помогло так как initrd не ждал эти разделы [1] и как только корень
>>> был смонтирован, то сразу же загрузка пошла дальше. Можно указать, чтобы
>>> монтировал все указанные рейды, но тогда initrd их смонтирует. Это
>>> конечно не то, что ожидается.
>> Почему, вполне годное решение. А как это указать? Добавить mountpoints= к
>> параметрам загрузки?
> Сейчас при загрузке можно только переопределить параметры корня [1].
> Дополнительные точки можно указать двумя способами:
>
> * Добавить параметр x-initrd-mount в опции в fstab;
> * Просто сделать добавить нужную точку монтирования в MOUNTPOINTS.
>    Например: MOUNTPOINTS += /boot

Ага, спасибо! То, что надо...


>>>> Уже немного разобрался, почему так происходит и
>>>> даже придумал временный объезд. Возможно, простой способ ПРАВИЛЬНО решить
>>>> проблему -- иметь два _РАЗНЫХ_ /etc/mdadm.conf на такие случаи, когда рейды
>>>> используются не для корня. Главное, чтобы эти рейды с данными не начинал
>>>> собирать интеллект в initramfs (ограничить DEVICES=...), тогда в обычной
>>>> системе правила udev сами его соберут.
>>> Я тоже мыслю в эту сторону [2].  Я подумываю о том, как бы сгенерировать
>>> mdadm.conf только для MOUNTPOINTS.  К сожалению, я не уверен, что это
>>> можно хорошо сделать. Именно поэтому я и не сделал этого сразу для фичи
>>> mdadm.
>> Поэтому я и предложил затягивать в initramfs один из двух файлов:
>>
>> /etc/mdadm-initrd.conf (если есть, то его)
>> /etc/mdadm.conf (fallback)
> Как быстрое решение это может сработать. Нужно только удостовериться, что
> это решит упомянутые в треде баги. Мне в одной из багов говорят, что
> специальный mdadm.conf не помогает с RAID1.

Там возможно упущено:

-DEVICE = partitions
+DEVICE = /dev/ROOTDEVS

далее запуск make-initrd

Плюс к тому: до перезапуска я бы руками отмонтировал /boot и остановил 
его рейд. Иначе он тоже может натыкаться на inactive во второй стадии 
загрузки.

Если его загрузчик собирает массив, чтобы загрузить ядро/initrd, не 
удивительно, что этот рейд "грязный". Мне кажется, ему поможет 
"лекарство" для второй стадии, подобное тому, что есть в initramfs. Но 
мы его пока не реализовали. :-) Сначала я бы провёл диагностику в режиме 
forensic.


>> Пусть болит голова у админов))
> На этих товарищей я бы не надеялся ))
>
> [1] https://github.com/osboot/make-initrd/blob/master/data/etc/rc.d/init.d/fstab#L84
>

-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list