Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
Переменные BC можно сложить в <code>/etc/sysconfg/bootchain</code>. Параметр <code>bc_debug</code> даёт расширенную отладку, отладочный журнал в stage1 доступен по Alt-F3, а также в <code>/var/log/bootchained.log</code>, при переходе в stage2 он копируется в <code>/dev/bootchain/bootchained.log</code>.
Чтобы написать свой модуль altboot, необходимо разобраться в порядке отработки «хуков». В этом помогут <code>git grep use_hooks</code> и скрипты в <code>altbot-mixed/hooks/*.sh</code>, получаемые при запуске скрипта <code>mix-altbot</code>.
{{----}}
[[File:{{#setmainimage:Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->
{{vklink|1792}}
{{fblink|2967595503493451}}
<references/>
# https://www.altlinux.org/Rescue
# https://www.altlinux.org/Rescue/Launcher
# https://www.altlinux.org/Rescue/Recovery
# https://www.altlinux.org/Usermode-fs-tools
# https://www.altlinux.org/Propagator
# https://www.altlinux.org/Make-initrd
# https://github.com/osboot/make-initrd
# https://www.altlinux.org/Make-initrd-propagator
# https://lists.altlinux.org/pipermail/make-initrd/ |
Версия 08:02, 15 октября 2021
- Докладчик
- Леонид Кривошеин
Обзор стека инструментов для развёртывания ОС Альт: что и как могут использовать разработчики уже сейчас.
Обзор новой системы загрузки altboot, призванной заменить propagator в дистрибутивах Альт. Комбинация новых методов загрузки с инструментами массового развёртывания.
Содержание
Видео
Презентация
Thesis
ALT Rescue — основа системы массового развёртывания, спасательный LiveCD-дистрибутив умеренного размера, включающий богатый набор инструментов для работы с дисками и файловыми системами.
Rescue Launcher — заставшим MS-DOS напомнит назначение C:\autoexec.bat
. В отличие от rc.local, процесс запускается интерактивно, а не в фоновом режиме, на конкретном терминале, сразу после запуска всех служб. По завершении этого процесса пользователь попадает в обычную командную строку. Разработан с таким расчётом, чтобы можно было автоматически смонтировать ОТКУДА-ТО некий каталог, содержащий ВАШ_СКРИПТ (или иной исполняемый файл), и запустить его. Параметр загрузки ядра autorun
управляет тем, где и что ищется, каким образом и куда монтируется.
system-backup — автоматика для снятия образов уже установленной системы. Достаточно смонтировать носитель, на который эти образы будут сохранены. Работает на всех поддерживаемых аппаратных платформах.
usermode-fs-tools — набор утилит для работы с файловыми системами ext2/3/4 и vfat в режиме простого пользователя, как с обычными архивами, форматировать, подбирать нужный размер, дополнять их файлами, заполнять /dev, назначать любые права и владельцев, устанавливать системный загрузчик. Призван заменить tar2fs в mkimage-profile. В состав входит утилита iso2stick: она перепаковывает дистрибутивы ALT из ISO-9660 в образы USB-дисков. Поддерживается для всех аппаратных платформ.
По запросу крупных OEM-сборщиков мы начали ориентировать свои инструменты массового развёртывания на мастер-образы, что позволит применять специализированное оборудование для быстрого клонирования.
propagator — компактная программа, целью которой является определение местонахождения второй стадии инсталлятора, livecd или rescue-образа.
make-initrd — инструмент для сборки образов initramfs, используемых для начальной загрузки ОС Linux. pipeline — фича make-initrd, предлагающая новый «пошаговый» принцип загрузки. bootchain — форк и дальнейшее развитие pipeline, на момент написания предлагает с десяток модулей и ещё не попал в апстрим.
altboot — новая система загрузки, построенная поверх bootchain, фактически замена propagator в будущих дистрибутивах Альт, обеспечивающая новые функции и более гибкие возможности дальнейшего расширения.
Модули bootchain
core: базовый функционал, включает шаги debug, mountfs, overlayfs и rootfs
getimage: метод загрузки образов по сети (http/ftp) утилитой wget
waitdev: метод подключения локального носителя по заданной спецификации
interactive: интерактивное взаимодействие, предоставляет диалоговые виджеты
altboot: общий функционал и шаг, транслирующий аргументы пропагатора
localdev: методы загрузки disk/cdrom, установка дополнительных модулей ядра
liverw: дополнительный функционал для работы с сессиями LiveCD и Rescue
nfs: метод загрузки с сервера NFS
cifs: метод загрузки с сервера SAMBA
Основные шаги altboot
download: многофункциональный шаг, использующий curl, обеспечивает методы url, http, ftp, загружает в память squash, может загрузить образ чего угодно прямо в указанное устройство
checksum: подсчитывает контрольную сумму ранее загруженного или указанного
iso9660: монтирует устройство как CD/DVD-привод ISO-9660
squashfs: монтирует устройство или файл из каталога как squashfs
liveboot: многофункциональный шаг финальной стадии загрузки
Обычный /proc/cmdline:
root=bootchain bootchain=fg,altboot automatic=...
Необычный /proc/cmdline:
root=bootchain bootchain=waitdev,waitdev,fg,altboot \ waitdev=LABEL=alt-live-storage \ waitdev=CDROM: automatic=...
Переменные BC можно сложить в /etc/sysconfg/bootchain
. Параметр bc_debug
даёт расширенную отладку, отладочный журнал в stage1 доступен по Alt-F3, а также в /var/log/bootchained.log
, при переходе в stage2 он копируется в /dev/bootchain/bootchained.log
.
Чтобы написать свой модуль altboot, необходимо разобраться в порядке отработки «хуков». В этом помогут git grep use_hooks
и скрипты в altbot-mixed/hooks/*.sh
, получаемые при запуске скрипта mix-altbot
.
Примечания и ссылки
- https://www.altlinux.org/Rescue
- https://www.altlinux.org/Rescue/Launcher
- https://www.altlinux.org/Rescue/Recovery
- https://www.altlinux.org/Usermode-fs-tools
- https://www.altlinux.org/Propagator
- https://www.altlinux.org/Make-initrd
- https://github.com/osboot/make-initrd
- https://www.altlinux.org/Make-initrd-propagator
- https://lists.altlinux.org/pipermail/make-initrd/
Plays:1 Comments:0