== Диагностика

=== Журналирование

Демон *chaind* ведёт журнал */var/log/chaind.log*, доступный в stage1 на
tty3 (по нажатию *Alt-F3*), что определяется дефолтными значениями *BC_LOG_VT*
и *BC_LOGFILE* в _<<_конфигурирование_bootchain_и_altboot,файле конфигурации>>_,
а также перебивается параметром
link:https://www.altlinux.org/Make-initrd[make-initrd] *rdlog=console*
или *rdlog=printk* в рантайме, что предписывает выводить журнал
на */dev/console* или на */dev/ttyprintk*. Если демон запущен в
_<<_совместимость_с_pipeline,режиме совместимости с pipeline>>_,
то журнал будет назван иначе: */var/log/pipelined.log*.

Расширенная диагностика включается через /proc/cmdline параметром
*bc_debug*. В этом случае в журнал попадает значительно больше информации
и он копируется по тому же пути в stage2 после отработки последнего «шага»,
а если в новой rootfs нет */var/log*, тогда копируется в */dev/bootchain/*.

=== Отладка

Аналогом *propagator-debug* в самом
link:https://www.altlinux.org/Make-initrd[make-initrd] является параметр
*rdshell* либо *stop=runinit*, для их использования образ initramfs должен
быть собран с соответствующей фичей
«link:https://github.com/osboot/make-initrd/tree/master/features/rdshell[rdshell]».

В параметре *stop* нужно указывать сервис, перед запуском которого загрузка
должна остановиться. При этом будет предложено запустить сервис и продолжить
загрузку (*Y*), не запускать сервис и продолжить загрузку (*N*) и запустить
rdshell (*S*). Необходимо запустить rdshell, нажав *S*. Для выхода из shell
нужно нажать *Ctrl+D* или выполнить команду *exit*. Список сервисов находится
внутри initramfs в каталоге */etc/rc.d/init.d/*.

При отладке будет мешать интерактивная заставка *plymouth*, поэтому нужно
также указывать параметр *nosplash*.

=== Тестирование

Пакет *make-initrd-bootchain-doc* содержит
link:https://git.altlinux.org/gears/m/make-initrd-bootchain.git?p=make-initrd-bootchain.git;a=blob;f=bootchain-doc/testing/mksrvdata.sh[набор для тестирования]
с документацией, демон *chaind* поддерживает параметр *bc_test*=<NAME>,
предписывающий скопировать журнал и название успешно пройденного теста
<NAME> в каталог */var/log* rootfs второй стадии загрузки, а если в новой
rootfs нет */var/log*, тогда эта информация копируется в */dev/bootchain/*.

