== Read-only слои LiveCD

При сетевой загрузке с сервера *NFS* или с сервера *SAMBA*, а также при
локальной загрузке методами *disk* или *cdrom* с универсальных образов
*LiveCD* или *Rescue* допускается работа со слоями LiveCD, доступными
только на чтение. При этом самым нижним слоем для чтения становится сквош
второй стадии (корневой системы) на исходном ISO-образе, поверх него
накладываются образы, создаваемые системным администратором. Самый верхний
R/W-слой создаётся для записи на tmpfs или выделенный раздел (только при
локальной загрузке при использовании параметра *live_rw*, см.
_<<_постоянное_хранилище_сеансов_livecd,предыдущий раздел>>_).

Из полученного «слоёного пирога» формируется rootfs, в которую происходит
загрузка, что даёт возможность администраторам вносить необходимые изменения
в настройки исходного диска и предоставлять это пользователям сетевых
бездисковых классов с доступом только на чтение, причём такой способ
централизованного управления настройками и загрузки с использованием
read-only сквошей значительно эффективнее механизма работы с
_<<_постоянное_хранилище_сеансов_livecd,постоянным хранилищем сеансов>>_,
тем более, если говорить о локальной загрузке с USB-флеш и подобных
относительно медленных накопителей.

.Ниже представлена таблица с принятыми умолчаниями в ОС Альт:
[valign="top",options="header,compact,pgwide,unbreakable",cols="2,4,6,5"]
|===========================================================================
|Метод |Имя переменной    |Путь к профилям с образами        |Относительно чего
|cdrom |-                 |/                                 |См. параметр overlays
|disk  |-                 |/                                 |См. параметр overlays
|cifs  |$OEM_CIFS_NETINST |/netinst/overlays-live            |На том же сервере SAMBA
|nfs   |$OEM_NFS_NETINST  |/srv/public/netinst/overlays-live |На том же сервере NFS
|===========================================================================

Имя профиля — это относительный путь к каталогу, задаваемый пропагаторным
параметром *profile*, например, «rescue/overlays». При загрузке с использованием
слоёв (оверлеев) LiveCD, все файлы с окончаниями **.squashfs** и **.iso**
в каталоге профиля рассматриваются как оверлеи и монтируются слоями друг над
другом в алфавитном порядке. Так что в каталоге на сервере (и в соответствующем
локальном каталоге) можно разместить не один, а несколько разных профилей
загрузки, а в каждом из них — собственный набор LiveCD-оверлеев. Путь к
каталогу с профилями для сетевых _<<_методы_загрузки_altboot,методов загрузки>>_
определяется параметром *overlays*, но его можно опустить, и тогда используются
дефолты из таблицы. Для локальных _<<_методы_загрузки_altboot,методов загрузки>>_
*overlays* указывает на раздел с оверлеями.

Особенности реализации поиска профиля зависят от выбранного
_<<_методы_загрузки_altboot,метода загрузки>>_:

* *disk* или *cdrom*: если аргумент *overlays=local_profile*, профиль будет
  искаться на том же разделе, с которого выполняется загрузка системы, иначе
  аргумент *overlays* рассматривается как метка тома устройства (LABEL), на
  котором будет искаться профиль с LiveCD-оверлеями;
* *cifs*: используется путь, определённый аргументом *overlays*, если его нет,
  то последняя часть в пути к ISO-образу или каталогу, указанного при загрузке
  в *automatic=…* или на шаге *cifs*, заменяется на «overlays-live», а если не
  удаётся определить путь таким способом, то используется формула:
  «$OEM_CIFS_NETINST/overlays-live», при этом, первая часть в полученном пути
  определяет название ресурса SAMBA;
* *nfs*: используется путь, определённый аргументом *overlays*, если его нет,
  то последняя часть в пути к ISO-образу или каталогу, указанного при загрузке
  в *automatic=…* или на шаге *nfs*, заменяется на «overlays-live», в том числе,
  на вычисляемое значение может влиять явно передаваемый шагу *liveboot* путь
  через аргумент *directory*, а если не удаётся определить путь таким способом,
  то используется формула: «$OEM_NFS_NETINST/overlays-live».

Проще говоря, на всё есть умолчания, перебиваемые руками через /proc/cmdline.

Все _<<_методы_загрузки_altboot,методы загрузки>>_ *altboot* используют
общие фрагменты кода для работы с read-only слоями LiveCD, небольшие
отличия обеспечиваются скриптовыми «хуками»
_<<_методы_загрузки_altboot,методов загрузки>>_. Вплоть до выхода продуктов
на «link:https://www.altlinux.org/P11[одинадцатой платформе]» в ОС Альт
возможность работы с read-only слоями LiveCD обеспечивалась только для
_<<_методы_загрузки_altboot,метода загрузки>>_ *nfs*. При загрузке
средствами *propagator* c *init-bottom*, если имя профиля не указывалось, то
соответствующий уровень каталога не использовался. При переходе на *altboot*
следует учитывать, что если *profile* не указан в /proc/cmdline, его значение
по умолчанию — «default», соответствующий подкаталог должен быть создан на
сервере.

При локальной загрузке с параметром *live_rw* (см.
_<<_постоянное_хранилище_сеансов_livecd,предыдущий раздел>>_) можно вытащить
содержимое самого верхнего R/W-слоя из каталога */.rw*, отфильтровать ненужное
и упаковать в сквош командой *mksquashfs*, который потом использовать в качестве
read-only оверлея. Кроме того, при локальной загрузке допускается одновременная
работа и с несколькими read-only оверлеями, и с
_<<_постоянное_хранилище_сеансов_livecd,постоянным хранилищем сеансов LiveCD>>_.

Примеры использования:

[,,subs="verbatim,quotes"]
----
root=bootchain bootchain=fg,`*altboot rescue*` \
  automatic=method:**cdrom**,uuid:2021-05-31-01-09-58-00,`*overlays:SLICES*` \
  stagename=rescue ramdisk_size=497773 `*profile=rescue/overlays*`
----

Здесь локальная загрузка с ALT Rescue методом *cdrom* в режиме совместимости
с пропагатором. Файлы с оверлеями находятся на отдельном разделе с меткой тома
«SLICES» в подкаталоге /rescue/overlays.

[,,subs="verbatim,quotes"]
----
root=bootchain bootchain=fg,`*altboot live*` lowmem ip=dhcp4 \
  automatic=method:**nfs**,network:dhcp,server:192.168.15.10 \
  stagename=live ramdisk_size=1107233 `*profile=alt-ws11*`
----

Здесь сетевая загрузка с LiveCD методом *nfs* в режиме совместимости
с пропагатором. Файлы с оверлеями находятся на том же NFS сервере в
подкаталоге /srv/public/netinst/overlays-live/alt-ws11.

См. также:

* https://altlinux.org/Netboot
* https://www.altlinux.org/NetInstall
* https://www.altlinux.org/Make-initrd-propagator
* https://www.altlinux.org/Remount_rw

