=== liveboot

Многофункциональный «шаг» финальной стадии загрузки, создающий оверлей
LiveCD над read-only rootfs. Входит в подпакет *make-initrd-bootchain-altboot*.
По сути это сильно переписанный скрипт *init-bottom* из пакета
link:https://www.altlinux.org/Make-initrd-propagator[make-initrd-propagator].
Часть его кода вынесена в виде «хуков» в другие подпакеты. *liveboot* можно
использовать на обычной rootfs без шага *altboot* для закрытия корневой файловой
системы на запись и организации оверлея над ней в виде TMPFS или указанного
раздела, куда будут сохраняться изменения.

*liveboot*, в основном, неинтерактивный «шаг», но диалоги могут возникнуть
при использовании в /proc/cmdline параметра *live_rw* и первом запуске LiveCD
либо Rescue в _<<_постоянное_хранилище_сеансов_livecd,режиме сохранения сеансов
LiveCD>>_ с «локальными» _<<_методы_загрузки_altboot,методами загрузки>>_
(*disk* или *cdrom*). При этом будут задействованы виджеты *ponder* и *errmsg*:

image::../images/bc06.jpg[align="center",scaledwidth="75%"]

image::../images/bc-err2.jpg[align="center",scaledwidth="75%"]

Параметры загрузки:

* *altboot_liveboot* — набор аргументов в виде «ключ=значение»,
  перечисленных через «;» (см. ниже).

Поддерживаемые аргументы:

* *method* — _<<_методы_загрузки_altboot,метод загрузки>>_ altboot (см. выше);
* *stagename* — название файла второй стадии загрузки (stage2);
* *overlayroot* — используется для закрытия обычной Linux rootfs на запись:
  - *disabled* — позволяет временно отключить overlayroot и загрузиться как
    с обычной rootfs;
  - *tmpfs* — предписывает использовать tmpfs в качестве оверлея, изменения
    потеряются при перезагрузке;
  - *UUID*=… — предписывает использовать раздел с заданным UUID в качестве
    оверлея;
  - *LABEL*=… — предписывает использовать раздел с заданной меткой тома
    в качестве оверлея;
  - */dev/…* — предписывает использовать указанное блочное устройство
    в качестве оверлея;
* *directory* — монтируемый каталог или путь к ISO-образу, только для метода
  загрузки nfs;
* *profile* — название профиля (подкаталога) со сквошами или ISO-образами
  _<<_read_only_слои_livecd,read-only слоёв LiveCD>>_;
* *overlays* — определяет раздел, на котором находятся
  _<<_read_only_слои_livecd,read-only слои LiveCD>>_ при «локальной» загрузке:
  - _метка тома_ (LABEL) — профили и слои будут искаться на устройстве
    с файловой системой, содержащей указанную метку тома;
  - *local_profile* — будет использовано загрузочное устройство, на котором
    находится rootfs;
* *flags* — различные флаги создания оверлея LiveCD, передаваемые
  данному «шагу»:
  - *live_ro* — предписывает создавать оверлей над read-only LiveCD;
  - *live_rw* — предписывает использовать
    _<<_постоянное_хранилище_сеансов_livecd,хранилище сеансов LiveCD>>_;
  - *rescue* — влияет только на сообщения в журнале при загрузке с Rescue;
* *timeout* — предел временного ожидания для поиска
  _<<_постоянное_хранилище_сеансов_livecd,хранилища сеансов LiveCD>>_;

В случае шага *liveboot*, не все аргументы можно передать через пропагаторный
параметр *automatic*.

.Примеры использования:
[,,subs="verbatim,quotes"]
----
root=bootchain bootchain=waitdev,waitdev,mountfs,`*liveboot*`,rootfs \
  waitdev=LABEL=OVERLAY \
  waitdev=UUID=e199d396-eb13-4575-b4fa-d2d160c67b6c \
  mountfs=DEVNAME \
  `*altboot_liveboot*`=overlayroot=LABEL=OVERLAY

root=bootchain bootchain=waitdev,mountfs,`*liveboot*`,rootfs \
  waitdev=UUID=e199d396-eb13-4575-b4fa-d2d160c67b6c \
  mountfs=DEVNAME \
  `*altboot_liveboot*`=method=
----

.Ещё один пример использования:
[,,subs="verbatim,quotes"]
----
root=bootchain bootchain=fg,localdev,download,squashfs,`*liveboot*`,rootfs \
  altboot_localdev=method=cdrom;uuid=2021-05-31-01-09-58-00;directory=/rescue \
  altboot_download=to=RD;method=url;url=file:///rescue ramdisk_size=497773 \
  `*altboot_liveboot*`=stagename=rescue;method=cdrom;overlays=SLICES;flags=live_ro,rescue
----

См. также:

* https://bugzilla.altlinux.org/30513
* https://bugzilla.altlinux.org/30564
* https://bugzilla.altlinux.org/27852
* https://bugzilla.altlinux.org/32562

