Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021)

Материал из 0x1.tv

Докладчик
Леонид Кривошеин.jpg
Леонид Кривошеин

Обзор стека инструментов для развёртывания ОС Альт: что и как могут использовать разработчики уже сейчас.

Обзор новой системы загрузки altboot, призванной заменить propagator в дистрибутивах Альт. Комбинация новых методов загрузки с инструментами массового развёртывания.

Видео

on youtube

Презентация

Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021).pdf

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.

Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, OSSDEVCONF-2021)!.jpg

Примечания и ссылки


  1. https://www.altlinux.org/Rescue
  2. https://www.altlinux.org/Rescue/Launcher
  3. https://www.altlinux.org/Rescue/Recovery
  4. https://www.altlinux.org/Usermode-fs-tools
  5. https://www.altlinux.org/Propagator
  6. https://www.altlinux.org/Make-initrd
  7. https://github.com/osboot/make-initrd
  8. https://www.altlinux.org/Make-initrd-propagator
  9. https://lists.altlinux.org/pipermail/make-initrd/

Plays:1   Comments:0