[make-initrd] I: pipeline feature

Leonid Krivoshein klark.devel at gmail.com
Thu Feb 18 19:55:31 MSK 2021


Привет!


21.05.2020 16:36, Alexey Gladkov пишет:
> On Fri, May 08, 2020 at 01:40:12PM +0200, Alexey Gladkov wrote:
>> Привет!
>>
>> Я закоммитил новую фичу для поиска рута не основанного на локальных
>> устройствах. Проблема в том, что make-initrd достаточно хорошо умеет
>> работать с локальными устройствами, но если нужно скачать и смонтировать
>> образ (или несколько их), то такие операции не вписываются в локальную
>> схему.
>>
>> Pipeline позволяет определить порядок стадий, которые нельзя завязать на
>> udev и инициализацию устройств.
>>
>> Сейчас реализовано всего несколько таких стадий: getimage, mountfs,
>> overlayfs. Стадии могут повторяться т.е. смонтировать и объединить с
>> помощью overlayfs можно не один squashfs из скачанного образа, а несколько.
>> Скачать можно также несколько образов.
>>
>> Пример cmdline:
>>
>> root=pipeline pipeline=getimage,mountfs,overlayfs,rootfs \
>>    getimage=http://ftp.altlinux.org/pub/people/mike/iso/misc/vi-20140918-i586.iso \
>>    mountfs=rescue
>>
>> initrd не будет смотреть на локальные диски, а скачает образ, смонтирует
>> его как loopback, смонтирует поверх overlayfs и попробует загрузить из
>> него систему т.е. поискать там /sbin/init.
>>
>> Эта фича экспериментальная. Она ещё не закончена и, возможно, с ней может
>> случиться что-то нехорошее в будущем.
>>
>> P.S. Документации пока минимум, потому что пока не всё ещё закончено.
> Исправил ошибки и теперь оно в каком-то виде точно работает. Сделал тест,
> который берёт корень из squashfs из iso, который из /dev/cdrom.
>

Получится ли использовать эту фичу, чтобы дождаться сборки других 
рейдов, не связанных с корневым разделом? Дело в том, что сейчас 
make-initrd всеми правдами может собрать рейд, на котором есть корневой 
раздел, но если на внешней корзине много дисков и там несколько более 
сложных рейдов, с корнем не связанных, они собраться не успевают до 
pivot_root, так что правила systemd во второй стадии загрузки их тоже не 
могут собрать, так как там стоит защита от состояния "inactive". Грубо 
говоря, в простом случае тут хватило бы какой-то простой задержки, иначе 
начальная загрузка ломает собираемость больших рейдов с данными.


-- 
Best regards,
Leonid Krivoshein.



More information about the Make-initrd mailing list