Skip to content

Creating Custom MiniOS Images ru

crim50n edited this page Oct 16, 2026 · 3 revisions

Создание пользовательских образов MiniOS

Конструктор образов MiniOS — это приложение на GTK для ремастеринга существующего образа MiniOS. Оно позволяет выбрать содержимое из текущей сессии MiniOS, ISO-файла или оптического диска, применить декларативные настройки и использовать minios-image-compose для создания проверенного загрузочного ISO-образа.

Конструктор работает внутри MiniOS. Исходный носитель не изменяется.

Выберите подходящий рабочий процесс

Конструктор образов MiniOS выполняет ремастеринга существующего бинарного образа MiniOS. Это не замена ни одному из следующих рабочих процессов:

  • Сборка MiniOS из исходных кодов: используйте minios-live систему сборки при изменении списков пакетов дистрибутива, конфигурации сборки, слоя ядра, загрузочных артефактов или цепочки воспроизводимых модулей, собранных из исходников. Подробнее см. Сборка MiniOS.
  • Создание повторно используемого модуля: используйте apt2sb, script2sb, chroot2sb, либо другие инструменты для работы с модулями, если требуется получить отдельный .sb слой. Подробнее см. Создание модулей.
  • Ремастеринг образа: используйте Конструктор образов MiniOS для выбора существующих модулей, добавления готовых внешних модулей, изменения поддерживаемых настроек образа, при необходимости захвата изменений в сессии и публикации нового ISO.

Слой файловой системы проекта предназначен для декларативных файлов в корне образа. Он не выполняет скрипты, не устанавливает пакеты и не открывает chroot. Программное обеспечение, предназначенное для повторного использования, следует подготовить как модуль до добавления его в проект Конструктора образов MiniOS.

Параметры источника

На странице источника доступны следующие варианты:

  • Текущая сессия LiveKit или dracut MiniOS.
  • Файл ISO MiniOS.
  • Оптический диск MiniOS.

ISO-образы и оптические диски монтируются только для чтения с помощью udisksctl. Инвентаризация источника фиксирует выпуск, версию, архитектуру, поддержку загрузчика, размер, список модулей и отпечаток источника. Если источник изменяется после планирования, сборка блокируется и не продолжается с другими входными данными.

В графическом конструкторе захват сессии доступен только при запущенной сессии MiniOS в качестве источника, при этом включаются все модули источника и все активные внешние модули. Эта функция недоступна для отдельно выбранного ISO-образа или оптического диска, даже если они содержат тот же выпуск. Не отключайте слои источника при захвате записываемой сессии, так как её изменения зависят от полной базы, которая работает в данный момент.

Требования

Конструктор образов MiniOS требует соответствующий minios-image-compose бэкенд. Для источников ISO-файлов и оптических дисков необходим udisks2. Для чтения только для root /etc/live/config.conf и захвата записываемой сессии может потребоваться pkexec и десктопный агент PolicyKit. Для захвата сессии требуется совместимый savechanges предоставляемый minios-tools версии 1.5.0 или новее.

Приложение и бэкенд компоновки работают без привилегий. Авторизация ограничена только чтением live-конфигурации и, при необходимости, доверенными /usr/bin/savechanges.

Рабочий процесс проекта

Выберите источник

Выберите источник и дождитесь завершения инвентаризации. Проверьте его идентификатор, архитектуру, поддержку загрузки, диагностику и количество модулей. Устраните ошибки источника перед продолжением.

Выберите содержимое

Выберите модули источника для включения и добавьте любые внешние .sb модули. Необходимые основные и модуль ядра заблокированы. Обычные внешние модули, активные в текущей сессии, но отсутствующие в выбранном источнике, отображаются отдельно и остаются опциональными.

Внешний модуль, который активно заменяет модуль источника по его исходному системному пути, обрабатывается иначе: текущий Image Builder определяет файл по устройству и inode, сохраняет исходную системную роль и включает эту замену как основной модуль источника, а не как отдельный дополнительный дубликат. Это также касается перемещённых путей initramfs. Другие внешние модули по-прежнему требуют явного выбора.

Дополнительные модули должны быть читаемыми обычными файлами с корректными данными SquashFS. Дубликаты или совпадающие имена файлов (без учёта регистра), а также конфликты целей отклоняются, так как во время выполнения слои определяются по имени файла.

Настройте параметры

Укажите путь для вывода и необходимую текущую конфигурацию MiniOS. Пустые поля настройки или Keep current сохраняют поведение источника. Настраивайте только те параметры, которые нужно изменить в новом образе, затем решите, нужно ли захватывать слой записываемой сессии.

Байты /etc/live/config.conf копируются во внутреннее хранилище сборки с правами 0600. Они не интерпретируются, не отображаются и не логируются. В текущих проектах эта конфигурация обязательна; если в старом проекте она явно отключена, переход к этапу "Обзор" невозможен без исправления.

Проверьте план

На этапе обзора создаётся новый план на основе текущих входных данных. Проверьте выбранные, исключённые и дополнительные модули, место вывода, оценку занимаемого пространства, сводку настроек, профиль захвата, предупреждения и границу привилегий.

В обзоре намеренно не показываются значения конфигурации, необработанные параметры ядра, приватные пути кастомизации и выбранные пути захвата. Отображаются только количество, имена файлов, отпечатки и дайджесты, если этого достаточно для фиксации плана.

Если файл вывода уже существует, для его замены требуется подтверждение. Подтверждение связано с обнаруженным устройством, inode, размером, временем изменения и SHA-256 этого файла. При изменении назначения, отмене или неудачной попытке подтверждение сбрасывается и требуется новый обзор.

Сборка и проверка

Во время сборки каждый эффективный входной элемент повторно проверяется и запускается minios-image-compose со списком аргументов во временной рабочей директории. ISO-образ остаётся приватным до успешной структурной проверки. Публикация в выбранное место происходит атомарно.

Сохраните проект, если его источник, выбор модулей, путь вывода и намерения по настройке будут использоваться повторно. Файлы проекта имеют формат JSON. Несохранённые изменения требуют подтверждения перед открытием другого проекта или закрытием приложения.

Захват сессии и приватность

Модули источника, /etc/live/config.conf, а также захват сессии — независимые входные данные. Если достаточно выбора модулей и декларативной настройки, не захватывайте слой записываемой сессии.

Не включать изменения сессии

Это рекомендуемый вариант по умолчанию. Конструктор использует выбранные модули, текущую конфигурацию, параметры загрузки и другие настройки образа без копирования слоя записываемой сессии.

Включить все изменения сессии

Этот профиль сохраняет все поддерживаемые изменения, внесённые в записываемый слой обнаруженного провайдера OverlayFS или AUFS. Он может включать пароли, ключи, токены, данные браузера, идентификатор машины, личные файлы, логи и состояние удалённых файлов. Требуется явное подтверждение, и такой образ не следует использовать для других людей без отдельного аудита.

Включить только повторно используемые изменения

Этот профиль использует строгий список разрешённых путей для программного обеспечения и безопасные значения по умолчанию, исключая личные, идентификационные, кэшированные и журнальные данные. Это снижает риск, но не гарантирует отсутствие секретов в разрешённых файлах. Проверьте готовый образ перед его распространением.

Выбрать изменения сессии вручную

Запустите Analyze session changes, затем выберите как минимум один нормализованный путь из инвентаризации в памяти. Выбранная директория включает все вложенные элементы. Точные или родительские исключения имеют приоритет над совпадающими включениями.

Инвентаризация содержит метаданные, включая имена файлов, и поэтому является чувствительной, даже если не содержит содержимого файлов. Она хранится только в памяти и не записывается в проект, не попадает в обзор или логи. Явные правила включения и исключения отражают намерения проекта и сохраняются; в обзоре показывается только их количество и дайджест.

Запуск нового анализа, обновление или смена источника, отмена или ошибка, а также открытие или создание проекта очищают инвентаризацию в памяти. Для анализа и захвата может потребоваться авторизация администратора, но процесс Конструктора образов MiniOS и сборка ISO не выполняются с повышенными привилегиями.

Настройка образа

Поддерживаемые параметры ограничиваются и проверяются на стороне бэкенда:

  • Системные параметры по умолчанию: имя хоста, часовой пояс, целевой systemd по умолчанию, а также включённые или отключённые сервисы.
  • Безопасность и доступ: разрешённые режимы sudo, PolicyKit, SSH, XRDP, X11, блокировка экрана и подсказки при входе.
  • Пользовательские данные: проверяемые каталоги пользователей относительно корня с поведением либо link, либо bind (одновременно оба варианта не поддерживаются).
  • Поведение при загрузке: таймаут от 0 до 300 секунд, исходное меню или сгенерированное меню, а также выбранная запись по умолчанию.
  • Записи загрузки: шаблоны resume, new, choose, fresh и copy-to-RAM могут быть скрыты, переупорядочены, продублированы и настроены через типы персистентности, модули, параметры запуска, локализацию, zRAM и диагностические параметры. Текущие шаблоны для новых сессий используют perchdir=setup чтобы выбрать бэкенд персистентности при запуске; если в исходном образе уже используется perchdir=new, этот старый селектор сохраняется и не перезаписывается автоматически.
  • Поведение RAM: копирование системы (toram) и копирование сессии с персистентностью (perchtoram) — это независимые параметры.perchtoram=off сохраняет персистентность на носителе, trim копирует выбранную поддерживаемую сессию, а full запрашивает полное копирование поддерживаемой сессии. При запросе персистентности загрузка системы RAM по умолчанию выполняется через trim если не выбран другой вариант. Собственные данные каталогов не копируются: initrd обычно запускает новый пустой контейнер для такого запроса. Используйте perchtoram=off чтобы сохранить собственные данные на носителе.
  • Расширенные параметры загрузки: проверяемые глобальные и индивидуальные параметры ядра для опций, не представленных отдельными настройками.
  • Внешний вид: проверяемый PNG-файл фона загрузки.
  • Слой файловой системы проекта: один реальный каталог, определяемый относительно корня образа и упакованный как root-владеемый модуль-оверлей SquashFS.

Слой файловой системы поддерживает обычные файлы, безопасные относительные символьные ссылки, пустые каталоги, исполняемые биты и временные метки. Узлы устройств, сокеты, FIFO, переходы между файловыми системами, абсолютные или выходящие за пределы каталога ссылки, а также небезопасные имена отклоняются. Привилегии сбрасываются, а владельцы в сгенерированном модуле нормализуются.

Настройка загрузки поддерживает распознаваемые MiniOS GRUB, нативный SYSLINUX и стандартную цепочку SYSLINUX-to-GRUB. Неподдерживаемая или неоднозначная конфигурация загрузки отклоняется, а не определяется автоматически. Сборка без настройки загрузки может сохранить исходную структуру, которую парсер настройки не распознаёт.

Проверка результата

Перед публикацией minios-image-compose проверяет сгенерированный ISO-образ, а не полагается только на успешный xorriso выход. Проверяются:

  • Дерево файловой системы ISO и метка тома.
  • Загрузочные записи BIOS и UEFI и системная область.
  • Необходимое содержимое загрузки, ядра, initramfs, конфигурации и модулей.
  • Встроенные настройки и подтверждения захвата сессии, если они присутствуют.
  • Дайджесты и структура сгенерированных оверлеев и модулей захваченной сессии.
  • Цели фона загрузки и преобразованная конфигурация загрузки при наличии кастомизации.

Перед сборкой фиксируются идентификатор, режим, время изменения и SHA-256 входного пути. Изменяемые входные данные при поддержке снапшотятся приватно через reflink; иначе они проверяются на изменения до и после записи ISO. Несовпадение или ошибка проверки блокируют публикацию.

После успешной сборки отдельно сохраните контрольную сумму:

sha256sum custom-minios.iso > custom-minios.iso.sha256
sha256sum -c custom-minios.iso.sha256

Структурная проверка не заменяет тест загрузки. Запустите ISO в временной виртуальной машине и проверьте как BIOS, так и UEFI, если требуется поддержка обоих вариантов. Конструктор образов MiniOS может сообщить об установленных QEMU или VirtualBox, но не запускает и не настраивает гипервизор.

Безопасность и отмена

  • Держите исходные носители только для чтения и записывайте результат на файловую систему с достаточным свободным пространством для оценки и временных файлов.
  • Не выполняйте сборку поверх единственного проверенного ISO. Используйте новое имя для вывода, если только замена не является намеренной и подтверждённой.
  • Проверьте внешние модули перед добавлением. Конструктор образов MiniOS проверяет их структуру SquashFS, но не определяет автора содержимого.
  • Для распространяемых образов предпочтительно не захватывать сессию. Если захват необходим, проверяйте итоговую файловую систему, а не только название профиля.
  • Файлы проекта считаются конфиденциальными, если содержат явные пути к источнику, модулям, выводу или выбранные правила захвата.

Процессы инвентаризации, сборки и проверки запускаются в отдельных группах процессов. При отмене запрашивается завершение и после тайм-аута усиливается завершение. Хеширование может завершиться до того, как отмена достигнет безопасной точки, но устаревшие результаты отбрасываются. После начала атомарной публикации процесс завершается полностью, чтобы не оставить файл частично записанным.

Отменённая или неудачная сборка не публикует приватный ISO. Предыдущий файл назначения остаётся без изменений, если только подтверждённая замена не была опубликована атомарно.

Связанная документация

Сборка ISO-образов MiniOS из командной строки

minios-image-compose — это командный бэкенд, поставляемый с Конструктором образов MiniOS. Он заменяет устаревшую sb2iso утилиту. Команда выполняет ремастеринг существующего дерева содержимого MiniOS, при необходимости изменяет набор модулей и поддерживаемую конфигурацию, проверяет результат и публикует загрузочный ISO.

Для пошагового рабочего процесса используйте графический Конструктор образов MiniOS . Для автоматизации, скриптов или воспроизводимых сборок используйте эту команду напрямую. Для полной сборки из исходников используйте Сборка MiniOS вместо этого.

Базовое использование

Из запущенной live-сессии MiniOS создайте ISO с обнаруженным источником MiniOS и /etc/live/config.conf:

minios-image-compose --name ./custom-minios.iso

Не добавляйте в начало полной команды sudo или pkexec. Сборка, проверка и публикация выполняются от имени текущего пользователя. Только опциональный захват сессии может вызвать доверенный /usr/bin/savechanges бэкенд через PolicyKit.

Имя файла вывода по умолчанию — minios-YYYYMMDD_HHMM.iso. Существующий файл назначения отклоняется, если только явно не указан --overwrite.

Выберите источник

Без --source, команда определяет содержимое MiniOS, используемое текущей сессией LiveKit или dracut. Для ремастеринга другого примонтированного дерева MiniOS укажите директорию, содержащую boot/ и модули MiniOS:

minios-image-compose \
  --source /media/minios \
  --config ./config.conf \
  --name ./custom-minios.iso

Источник используется только для чтения и никогда не изменяется. ISO-файлы и оптические носители должны быть смонтированы перед использованием их дерева содержимого MiniOS с CLI. Графический Конструктор образов MiniOS может монтировать эти источники через udisksctl.

Выберите модули

Дополнительные .sb модули передаются как позиционные аргументы:

minios-image-compose 06-development.sb 10-site-config.sb \
  --name ./minios-development.iso

Команда проверяет каждый модуль как читаемый обычный файл SquashFS, не являющийся симлинком. Модули, имена которых начинаются с двух цифр и дефиса, помещаются на верхний уровень MiniOS. Остальные добавленные модули помещаются в minios/modules/. Дубликаты или совпадения имён файлов без учёта регистра отклоняются.

Исключите пути источника с помощью POSIX-совместимого регулярного выражения:

minios-image-compose --exclude 'firefox|libreoffice|gimp' \
  --name ./minios-lite.iso

Обязательные загрузочные файлы, ядро и initramfs, основные модули, выбранное меню загрузки и выбранная конфигурация не могут быть исключены.

Создайте повторно используемые модули до сборки ISO. Подробнее см. Создание модулей и Менеджер модулей MiniOS.

Конфигурация и манифест

--config FILE устанавливает выбранный обычный файл как minios/config.conf. По умолчанию — /etc/live/config.conf.

minios-image-compose --config ./config.conf \
  --manifest ./build.json \
  --volume-label 'MINIOS_LAB' \
  --name ./minios-lab.iso

Необязательный манифест должен быть объектом JSON. Метки томов содержат от 1 до 32 печатных символов ASCII; метки вне строгого набора ISO 9660 (заглавные буквы, цифры и подчёркивания) вызывают предупреждение.

Захват изменений сессии

Захват сессии — опциональная функция, применяемая к записываемому слою текущей сессии MiniOS. Она разрешена для явного источника только если отпечаток базового модуля этого источника совпадает с базой запущенной системы.

minios-image-compose --capture-changes clean \
  --name ./minios-with-software.iso

Доступные профили:

  • exact захватывает каждое представимое изменение и может включать учётные данные, личные данные, логи, состояние браузера и идентификатор машины.
  • clean использует ограниченный список путей, ориентированный на программное обеспечение. Это снижает риск, но не гарантирует отсутствие секретов.
  • selected использует инвентаризацию, подготовленную совместимым интерфейсом или savechanges рабочим процессом.
minios-image-compose --capture-changes selected \
  --capture-selection ./session-selection.json \
  --capture-compression zstd \
  --name ./selected-session.iso

Для распространения ISO предпочтительнее использовать модули и декларативную конфигурацию вместо захвата сессии. Подробнее см. Конструктор образов MiniOS для модели приватности и обзора.

Настройка поведения загрузки

CLI позволяет изменять поддерживаемые макеты GRUB и SYSLINUX:

minios-image-compose \
  --boot-timeout 5 \
  --default-boot fresh \
  --kernel-args 'audit=1 mitigations=auto' \
  --menu multilang \
  --name ./custom-boot.iso

--default-boot принимает resume, new, choose, fresh, или toram. Семантический new шаблон отображается как perchdir=setup в текущих меню MiniOS, а старые perchdir=new исходные пункты меню остаются узнаваемыми. Графический конструктор меню загрузки также сохраняет perchtoram=off|trim|full независимо от системного параметра toram . --menu принимает multilang или поддерживаемую локаль, например en_US, ru_RU, или de_DE. Параметры ядра проверяются и добавляются без интерпретации оболочкой. Неподдерживаемые или неоднозначные макеты меню загрузки отклоняются, а не изменяются автоматически.

Добавление оформления или оверлея файловой системы

Замените фон загрузки на проверенный PNG-файл:

minios-image-compose --boot-background ./art/boot.png \
  --name ./custom-art.iso

Упакуйте одну подготовленную структуру директорий как root-владеющий оверлей-модуль образа:

minios-image-compose --overlay-directory "$PWD/image-overlay" \
  --name ./custom-overlay.iso

Оверлей интерпретируется относительно корня образа. Он не выполняет скрипты, не устанавливает пакеты и не открывает chroot. Небезопасные ссылки, специальные файлы, переходы между файловыми системами и конфликты назначения отклоняются.

Проверка и публикация

Перед публикацией minios-image-compose проверяет дерево файловой системы ISO, метку тома, загрузочные записи BIOS и UEFI, системную область, загрузочные файлы, модули и запрошенные настройки. Сгенерированные оверлеи и модули захваченной сессии извлекаются и сверяются с их метаданными и дайджестами.

ISO собирается во временной директории на целевой файловой системе и публикуется атомарно только после успешной проверки. Мутация входных данных, ошибка проверки, отмена или нехватка места на диске блокируют публикацию. Предыдущий файл назначения не изменяется, если только явно одобренная --overwrite сборка не была опубликована атомарно.

После успешной сборки создайте контрольную сумму и выполните отдельный тест загрузки:

sha256sum custom-minios.iso > custom-minios.iso.sha256
sha256sum --check custom-minios.iso.sha256

Структурная проверка не заменяет тестирование загрузки BIOS и UEFI на временной виртуальной машине или подходящем оборудовании.

Справочник команд

Используйте установленное руководство и вывод справки для вашей версии бэкенда:

minios-image-compose --help
man minios-image-compose

Общие параметры:

Параметр Назначение
-n, --name FILE Указать путь для вывода.
-e, --exclude REGEX Исключить совпадающие пути источника.
--source DIR Выбрать явное дерево содержимого MiniOS.
--config FILE Выбрать live-конфигурацию, встроенную в ISO.
--manifest FILE Включить проверенный JSON-манифест сборки.
--capture-changes MODE Захватить exact, clean, или selected изменения сессии.
--boot-timeout SECONDS Установить таймаут меню загрузки от 0 до 300 секунд.
--default-boot MODE Выбрать действие по умолчанию для сессии MiniOS.
--kernel-args TEXT Добавить проверяемые глобальные параметры ядра.
--boot-background PNG Заменить поддерживаемое оформление загрузки.
--overlay-directory DIR Добавить один декларативный слой файловой системы.
--menu TYPE Выбрать многоязычное или локализованное меню.
--overwrite Явно разрешить замену существующего вывода.

Команда завершает работу с ненулевым кодом при ошибках источника, модуля, настройки, хранилища, проверки или публикации. Не распространяйте результат, если команда не завершилась успешно и не были проверены контрольная сумма и загрузка.

🏠 Home

🌐 Languages

English

📋 Getting started

🚀 Installing MiniOS

🖥️ Using MiniOS

⚙️ Preparing and customizing MiniOS

🛡️ Maintenance and recovery

📖 Reference

🛠️ Development

de

📋 Erste Schritte

🚀 MiniOS installieren

🖥️ MiniOS verwenden

⚙️ MiniOS vorbereiten und anpassen

🛡️ Wartung und Wiederherstellung

📖 Referenz

🛠️ Entwicklung

es

📋 Primeros pasos

🚀 Instalando MiniOS

🖥️ Usar MiniOS

⚙️ Preparar y personalizar MiniOS

🛡️ Mantenimiento y recuperación

📖 Referencia

🛠️ Desarrollo

fr

📋 Premiers pas

🚀 Installation de MiniOS

🖥️ Utiliser MiniOS

⚙️ Préparer et personnaliser MiniOS

🛡️ Maintenance et récupération

📖 Référence

🛠️ Développement

id

📋 Memulai

🚀 Menginstal MiniOS

🖥️ Menggunakan MiniOS

⚙️ Menyiapkan dan menyesuaikan MiniOS

🛡️ Pemeliharaan dan pemulihan

📖 Referensi

🛠️ Pengembangan

it

📋 Per iniziare

🚀 Installazione di MiniOS

🖥️ Usare MiniOS

⚙️ Preparare e personalizzare MiniOS

🛡️ Manutenzione e ripristino

📖 Riferimento

🛠️ Sviluppo

pt-BR

📋 Primeiros passos

🚀 Instalando o MiniOS

🖥️ Usar MiniOS

⚙️ Preparando e personalizando o MiniOS

🛡️ Manutenção e recuperação

📖 Referência

🛠️ Desenvolvimento

ru

📋 Начало работы

🚀 Установка MiniOS

🖥️ Использование MiniOS

⚙️ Подготовка и настройка MiniOS

🛡️ Обслуживание и восстановление

📖 Справочник

🛠️ Разработка

Clone this wiki locally