=== Pipeline ► bootchain

Тем, кто уже пользовался фичей make-initrd «*pipeline*», достаточно подключить
_<<_модули_bootchain_altboot,модуль>>_ *make-initrd-bootchain-waitdev* для
локальной загрузки или *make-initrd-bootchain-getimage* для сетевой загрузки
или оба, если это необходимо. _Можно сделать фичу «*pipeline*», вытягивающую
оба модуля, тогда и этого не потребуется!_ В /proc/cmdline можно использовать
схожий синтаксис с *bootchain*, а можно оставить прежний вариант с *pipeline*:

[,,subs="verbatim,quotes"]
----
root=`*pipeline pipeline*`=waitdev,mountfs,mountfs,overlayfs,rootfs ...
----

При втором варианте работы демон *chaind* ведёт себя полностью как *pipelined*
с одним небольшим отличием: если «шаг» зафейлится, *chaind* повторит его запуск
ещё четыре раза с паузами в две секунды, тогда как оригинальный *pipelined*
повторял бы запуск «шага» бесконечно с паузой в одну секунду. Примечание: _в
последних версиях make-initrd такое поведение можно изменить, а сам pipeline
перестал быть демоном._

*chaind* допускает завершение работы скриптов с кодом 2 для «шагов», когда
работает в режиме *pipelined*, и воспринимает этот код от них, как необходимость
разорвать цикл и перейти в stage2. Но в своём «родном» режиме демон всегда
ожидает от скриптов код возврата 0, рассматривая остальные ситуации, как сбой.
См. детали в разделе «_<<_совместимость_с_pipeline>>_».

