=== Расширение altboot

Можно расширять *altboot*, создавая новые модули. Первый шаг «_<<_altboot>>_»
и последний шаг «_<<_liveboot>>_» используют «хуки» (см. следующий подраздел).
Для определения контекста их использования можно в каталоге проекта
*make-initrd-bootchain* дать команду:

[,,subs="verbatim,quotes"]
----
git grep use_hooks
----

Чтобы понять, между чем и чем приткнуть свой новый код, можно запустить
скрипт:

[,,subs="verbatim,quotes"]
----
./mix-altboot
----

из корня исходного проекта и посмотреть в полученном подкаталоге
*altboot-mixed/hooks/*, в каком порядке будут склеиваться «хуки».

==== Назначение «хуков»

Внутри initramfs «хуки» складываются в каталог */lib/altboot/*:

* *add-methods.d* — регистрация методов загрузки на шаге «altboot»;
* *automatic.d* — все возможные названия аргументов в параметре automatic=…
  и их обработчики, если требуется, для каждого аргумента — свой файл с
  опциональным обработчиком;
* *forget-args.d* — вывод переменных initramfs, про которые можно забыть
  после их трансляции во внутренние параметры «шагов» на шаге «altboot»;
* *global-args.d* — пустые файлы с названиями параметров «шагов» altboot;
* *liveboot-init.d* — выполняется на этапе инициализации переменных шага
  «liveboot»;
* *liveboot-post.d* — выполняется после создания «живой» rootfs и всех
  оверлеев LiveCD;
* *liveboot-pre.d* — выполняется перед наложением оверлеев LiveCD над rootfs;
* *livecd-slice.d* — монтирование read-only слоёв LiveCD на шаге «liveboot»;
* *rw-overlay.d* — монтирование верхнего R/W-слоя на шаге «liveboot»;
* *translate.d* — транслируют аргументы из параметра automatic=… во
  внутренние параметры каждого отдельного шага.

