Леннарт Поттеринг представил mkosi, инструмент для генерации образов ОС
28 июня 2017 года
Следом за Casync Леннарт Поттеринг (Lennart Poettering) представил ещё один свой проект - mkosi (Make Operating System Image), в рамках которого подготовлен инструментарий для генерации загрузочных образов операционных систем. Проект написан на языке Python, распространяется под лицензией LGPL 2.1 и представляет собой обвязку над такими утилитами, как dnf (режим "--installroot"), debootstrap, pacstrap и zypper, предоставляющую унифицированный интерфейс для создания образов, независимый от используемого дистрибутива.
Mkosi позиционируется как legacy-free, т.е. поддерживает только актуальные в современных реалиях технологии. Например, образы могут генерироваться только с таблицами разделов GPT (MBR не поддерживает), только на основе systemd и только для загрузки на системах с EFI (системы с BIOS не поддерживаются). Для корневого раздела могут применяться ФС ext4, btrfs и squashfs. Дополнительно в образ могут включаться раздел подкачки, /srv и /home. Для данных в разделах может быть включено шифрование через LUKS, верификация целостности при помощи dm-verity и проверка по цифровой подписи для UEFI SecureBoot. Также возможна генерация системного образа в виде каталога в текущей ФС (OS tree), tar-архива или подразделов Btrfs.
Поддерживается создание образов на базе дистрибутивов Fedora, Debian, Ubuntu, Arch Linux и openSUSE. В качестве хост-системы для сборки образов может применяться любой дистрибутив, в котором может выполняться debootstrap (Debian), dnf (Fedora ), pacstrap (Arch) или zypper (openSUSE). Для ускорения повторных сборок может применяться кэш пакетов RPM и DEB. Созданный образ может быть запущен в виде контейнера командой "systemd-nspawn -bi image.raw". Системная начинка определяется через файл конфигурации mkosi.default, в котором можно выбрать тип дистрибутива для построения образа и список устанавливаемых пакетов.
Подразумевается, что разработчики приложений смогут включить в состав своего проекта файл mkosi.default, который позволит быстро сгенерировать системный образ для запуска данного приложения в локальном контейнере, развёртывания в облаке или на IoT-устройстве при помощи casync. При этом для создания образа не требуется изучение специфики сборочных инструментов для разных дистрибутивов.
Подготовленный образ может быть запущен напрямую на оборудовании, использован внутри виртуальной машины, запущен как контейнер при помощи systemd-nspawn или вызыван как сервис systemd (unit с "RootImage="). Для разработчиков встраиваемой техники mkosi даёт возможность легко организовать генерацию системных образов прошивки, защищённых от модификации посторонними лицами, благодаря применению dm-verity и UEFI SecureBoot.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.