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

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

== Thesis ==

''ALT Rescue''  основа системы массового развёртывания, спасательный LiveCD-дистрибутив умеренного размера, включающий богатый набор инструментов для работы с дисками и файловыми системами.

''Rescue Launcher''  заставшим MS-DOS напомнит назначение <code>C:\autoexec.bat</code>. В отличие от rc.local, процесс запускается интерактивно, а не в фоновом режиме, на конкретном терминале, сразу после запуска всех служб. По завершении этого процесса пользователь попадает в обычную командную строку. Разработан с таким расчётом, чтобы можно было автоматически смонтировать ОТКУДА-ТО некий каталог, содержащий ВАШ_СКРИПТ (или иной исполняемый файл), и запустить его. Параметр загрузки ядра <code>autorun</code> управляет тем, где и что ищется, каким образом и куда монтируется.

''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<br />
''getimage'': метод загрузки образов по сети (http/ftp) утилитой wget<br />
''waitdev'': метод подключения локального носителя по заданной спецификации<br />
''interactive'': интерактивное взаимодействие, предоставляет диалоговые виджеты<br />
''altboot'': общий функционал и шаг, транслирующий аргументы пропагатора<br />
''localdev'': методы загрузки disk/cdrom, установка дополнительных модулей ядра<br />
''liverw'': дополнительный функционал для работы с сессиями LiveCD и Rescue<br />
''nfs'': метод загрузки с сервера NFS<br />
''cifs'': метод загрузки с сервера SAMBA

===  Основные шаги altboot  ===

''download'': многофункциональный шаг, использующий curl, обеспечивает методы url, http, ftp, загружает в память squash, может загрузить образ чего угодно прямо в указанное устройство

''checksum'': подсчитывает контрольную сумму ранее загруженного или указанного

''iso9660'': монтирует устройство как CD/DVD-привод ISO-9660

''squashfs'': монтирует устройство или файл из каталога как squashfs

''liveboot'': многофункциональный шаг финальной стадии загрузки

Обычный /proc/cmdline:

<pre>root=bootchain bootchain=fg,altboot automatic=...</pre>
Необычный /proc/cmdline:

<pre>root=bootchain bootchain=waitdev,waitdev,fg,altboot \
                     waitdev=LABEL=alt-live-storage \
                     waitdev=CDROM: automatic=...
</pre>

Переменные 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> -->

<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/


{{stats|disqus_comments=0|refresh_time=2021-08-25T02:25:51.369179|vimeo_plays=1|youtube_plays=0}}

[[Категория:OSSDEVCONF-2021]]
[[Категория:Open-source projects]]ALT Linux]]

Версия 14:47, 26 августа 2021

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

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

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

Видео

Презентация

Инструменты начальной загрузки и массового развёртывания ОС «Альт» (Леонид Кривошеин, 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