[make-initrd] I: pipeline feature

Alexey Gladkov gladkov.alexey at gmail.com
Thu Feb 18 20:38:13 MSK 2021


On Thu, Feb 18, 2021 at 07:55:31PM +0300, Leonid Krivoshein wrote:
> Привет!
> 
> 
> 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". Грубо говоря, в простом случае тут
> хватило бы какой-то простой задержки, иначе начальная загрузка ломает
> собираемость больших рейдов с данными.

Эта фича не про рейды совсем. Попросить make-initrd смонитровать не только
корнефой раздел можно другими методами.

Я не очень понял описанную проблему.

"Всеми правдами" это вы имеете в виду стандартные правила сборки рейда из
самого mdadm ?

Если не хватает времени, то есть rootdelay=X, который можно выставить хоть
в сутки. Также есть параметр raid-member-delay=X через который можно
отключить получение degraded raid. Правильное указание этих параметров
должно решать описанную проблему.

-- 
Rgrds, legion



More information about the Make-initrd mailing list