[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