Repository navigation
Module Loading ru
На этой странице объясняется, как load, noload, bext, union и toram=trim изменяют параметры загрузки. Это расширенные настройки. При обычной загрузке автоматически подгружается набор модулей, предоставленный выбранным образом MiniOS.
MiniOS выбирает и монтирует свой набор модулей в initrd до передачи корня union установленной системе инициализации. Используйте эту страницу, если модуль на загрузочном носителе не появляется в работающей системе или если фильтр неожиданно изменяет запуск.
MiniOS собирается из пронумерованных только для чтения .sb модулей. Модули с меньшими номерами загружаются первыми; модули с большими номерами могут заменять файлы из модулей с меньшими номерами. Если активна записываемая сессия, она располагается выше всех модулей только для чтения.
Параметры load= и noload= фильтруют пути к модулям перед сборкой. Они используют сопоставление по регулярным выражениям, а не безопасный список точных имён, поэтому слишком широкий фильтр может исключить необходимые системные или ядровые модули из набора загрузки.
| Параметр | Что сообщает MiniOS | Основной риск |
|---|---|---|
load=PATTERN |
Оставлять только те кандидаты модулей, чьи пути соответствуют шаблону. | Неполный шаблон может привести к пропуску необходимых модулей. |
noload=PATTERN |
Исключить подходящие кандидаты после load= применения. |
Необходимые модули ядра, системы, прошивки или рабочего стола могут быть исключены из автозапуска. |
bext=EXTENSION |
Рассматривать другое расширение файла как суффикс кандидата модуля. | Не выполняет конвертацию файлов и не обеспечивает полную координацию модулей ядра. |
union=aufs или union=overlayfs
|
Запросить файловую систему, используемую для объединения модулей с доступным для записи слоем. | Активация модулей во время выполнения отличается между AUFS и OverlayFS. |
toram=trim |
Копировать только выбранные модули и ограниченный набор необходимых данных в RAM. | Пропущенные модули и каталоги будут недоступны после отсоединения источника. |
Перед изменением фильтров сохраните текущую командную строку и набор модулей. Тестируйте изменения по одному и всегда держите рабочую загрузочную запись.
После определения каталога данных MiniOS, обычно minios/, initrd обнаруживает необязательное внешнее дерево MiniOS до RAM копирования или активации сессии. Раздел для постоянного хранения на том же диске или доступная для записи структура данных Ventoy могут предоставить это дерево даже при загрузке без сохранённой сессии. Выбранный бэкенд плагина постоянства Ventoy Persistence Plugin — это отдельная модель и не предоставляет это дерево внешнего модуля.
Кандидаты делятся на две группы:
- Имена модулей верхнего уровня из выбранного дерева данных и внешнего
minios/дерева, отсортированные и без дубликатов по относительному имени. - Файлы и символические ссылки рекурсивно ниже
modules/в обоих деревьях, отсортированные и без дубликатов по относительному пути.
Для одного и того же относительного пути внешний обычный файл имеет приоритет над ISO или другим выбранным источником. Это относится как к замещающим системным модулям, так и к дополнительным модулям. Фильтры применяются к объединённым относительным путям до монтирования или сокращённого копирования RAM. Корень раздела постоянства остаётся отдельным от хранилища сессий с номерами.
Точки монтирования по-прежнему приводятся к точным базовым именам. Например, modules/work/50-extra.sb и modules/test/50-extra.sb обе ссылаются на 50-extra.sb; это не независимые слои объединения. Используйте разные базовые имена, если не требуется точная замена по пути. Не полагайтесь на дублирование базовых имён в разных каталогах как на механизм замены.
Обычный формат модуля — это образ файловой системы SquashFS. Совпадение имени файла не гарантирует правильность содержимого. При рекурсивном сканировании учитываются файлы и символические ссылки, а на верхнем уровне сканирование ориентировано на имена файлов. Ошибка при подключении внешней замены или монтировании выбранного модуля теперь приводит к фатальному сценарию initramfs, а не к тихому пропуску слоя. Проверьте сомнительные файлы с помощью Просмотр и извлечение модулей.
В процессе обнаружения пути сортируются по имени файла по возрастанию числового префикса. Начальный номер в таких именах, как 00-core.sb, 01-kernel-VERSION.sb и 50-extra.sb определяет порядок модулей. Имя файла без числового префикса сортируется как ноль.
Используйте явные и уникальные числовые префиксы вместо того, чтобы полагаться на случайный порядок.
В итоговом объединении приоритет получают модули с более высоким номером по сравнению с модулями с меньшим номером. Если два выбранных модуля содержат один и тот же путь относительно корня, будет виден файл из модуля с более высоким приоритетом. Слой с возможностью записи всегда имеет приоритет над всеми модулями только для чтения.
Внешняя замена по относительному пути выполняется до применения этого порядка модулей. Замещающий файл modules/50-extra.sb занимает ту же выбранную позицию, что и исходный файл, а его 50 префикс определяет его приоритет в объединении.
Параметр загрузки bext= определяет расширение файла, используемое для поиска данных, фильтрации кандидатов и монтирования модулей. По умолчанию это sb, поэтому обычно используется суффикс кандидата .sb:
bext=sb
Изменение bext меняет выбранный суффикс имени файла; оно не конвертирует файл и не проверяет его файловую систему. Координация с ядром — исключение: всегда ищется 01-kernel-VERSION.sb. При пользовательском расширении обычное сканирование кандидатов не выбирает эти .sb модули ядра.
load= и noload= — это нестрогие расширенные регулярные выражения, применяемые к строкам путей-кандидатов, которые формируются на каждом уровне. Это не списки точных имён. Простое значение, например kernel совпадает с этим текстом в любом месте пути, а якоря необходимо указывать явно, если требуется точная позиция.
Кандидаты верхнего уровня — это базовые имена файлов, а рекурсивные кандидаты включают modules/. Внешние кандидаты используют такой же относительный путь, а не абсолютные пути монтирования.
Запятые преобразуются в альтернативы регулярного выражения. Например:
load=core,kernel,firmware
интерпретируется как core|kernel|firmware. Другие символы регулярных выражений не экранируются.
Числовой диапазон разворачивается только если весь фильтр представляет собой возрастающий диапазон, совпадающий с ^[0-9]+-[0-9]+$. Например, load=04-06 преобразуется в альтернативы 04|05|06, при этом каждое сгенерированное значение дополняется до не менее чем двух цифр. Диапазон, встроенный в список через запятую или другое выражение, не разворачивается и сохраняет обычное значение ERE.
Если заданы оба параметра, initrd сначала применяет load= , а затем исключает совпадения с помощью noload=. Таким образом, noload= имеет приоритет. Нет защищённого набора core или модулей ядра: фильтры могут исключить 00-core, согласованный 01-kernel, либо любой другой кандидат. Такой выбор может привести к неполному корню или невозможности загрузки.
Текущая версия ядра определяется по vmlinuz-VERSION токену в командной строке ядра, если он доступен, иначе используется uname -r как резервный вариант. До монтирования модулей initrd координирует этот основной триплет:
minios/01-kernel-VERSION.sb
minios/boot/vmlinuz-VERSION
minios/boot/initrfs-VERSION.img
Если какой-либо элемент отсутствует, initrd ищет все три файла в:
minios/kernels/VERSION/
Когда триплет из репозитория найден полностью, модуль копируется в minios/ а загрузочные файлы — в minios/boot/. Частичная копия будет удалена. Если триплет не полный, настройка ядра завершится с ошибкой, но выполнение продолжится на этапе обычного монтирования модулей. В результате система может позже не загрузиться, если в корневой файловой системе отсутствуют поддерживающие файлы для текущего ядра.
Другие файлы верхнего уровня, соответствующие 01-kernel-*.sb , считаются неактивными. Initrd пытается переместить каждый неактивный модуль и соответствующие ему vmlinuz и initrfs файлы в minios/kernels/VERSION/. Для этих операций резервного копирования и перемещения репозитория требуется возможность записи в дерево данных; отдельные ошибки перемещения не критичны. Всегда используется .sb, независимо от bext=. При объединённом сканировании кандидатов дополнительно исключаются 01-kernel-* модули, не соответствующие запущенному ядру, включая внешние кандидаты. Подробнее см. Управление ядром для поддерживаемых сценариев установки и активации ядра.
MiniOS выбирает AUFS при поддержке работающим ядром, в противном случае используется OverlayFS. union=overlayfs выбирает OverlayFS. union=aufs запрашивает AUFS но возвращается к OverlayFS, если AUFS недоступен. При включённом UEFI Secure Boot initrd не загружает неподписанный aufs-ng модуль; если нет другой доступной реализации AUFS, используется OverlayFS даже если union=aufs был запрошен.
С AUFS initrd сначала монтирует пустое объединение с веткой для записи изменений, затем добавляет каждый смонтированный модуль как ветку только для чтения. Ошибка при создании объединения является критической. Ошибка при добавлении отдельной AUFS ветки обрабатывается по возможности: загрузка продолжается с уже добавленными ветками, а MiniOS не отмечает постоянство как активное для неполного объединения.
С OverlayFS полный набор модулей передаётся как один инвертированный lowerdir список при монтировании объединения. Записываемый слой предоставляет свой upperdir и workdir. Ошибка монтирования такого объединения является критической. Левосторонний порядок нижних слоёв и AUFS порядок вставки реализуют одно и то же правило: более поздние, с большим номером модули скрывают конфликтующие пути от более ранних модулей.
Эта композиция на этапе загрузки отличается от активации во время работы. После запуска sb activate и sb deactivate могут изменять только корень, который в данный момент смонтирован как AUFS. Нижние слои OverlayFS не могут быть изменены на лету. Активация во время работы не изменяет выбор Next Boot, а добавление модуля Next Boot не активирует его в текущем корне. Подробнее см. Менеджер модулей MiniOS.
toram=trim создает дерево системных данных RAM после обнаружения внешних модулей и до активации сессии и координации ядра. Копируются следующие элементы:
-
config.conf, которое требуется для этого пути копирования. -
authorized_keysпри наличии в виде обычного файла. - Кандидаты на соответствие расширениям верхнего уровня, выбранные с помощью
load=,noload=, и фильтра активного ядра. - Выбранные рекурсивно кандидаты на соответствие расширениям ниже
modules/, с сохранением их относительных директорий. - Внешние замены и дополнения, выбранные по тем же правилам, копируются в соответствующие относительные пути.
Создается пустой каталог changes/, копирование сессии выполняется отдельно с помощью perchtoram. Не копируются boot/, kernels/, rootcopy/, config.conf.d/, логи, другие не относящиеся к модулям данные или невыбранные модули. В частности, репозиторий не может использовать kernels/каталог, отсутствующий в обрезанном дереве RAM. Внешние модули уже включены, поэтому при загрузке RAM их исходные файлы не открываются повторно после копирования.
При копировании системы не выполняется предварительная проверка объема памяти RAM. Ошибка копирования config.confили выбранного модуля приводит к переходу точки входа init на фатальный путь. Ошибка копирования необязательного authorized_keysсообщается без прерывания процесса. Откат транзакции для частично заполненного дерева системных данных не предусмотрен. Копирование сессии имеет собственную проверку памяти и возвращается к исходной сессии на носителе, если копию подготовить не удалось; см. Внутренняя реализация постоянства.
После копирования initrd пытается размонтировать исходную точку монтирования, удалить старый путь к данным и переместить дерево RAM на это место. Только успешное выполнение всей цепочки означает отсоединение источника. В случае сбоя загрузка продолжается с использованием временного пути RAM. Связанные операции отсоединения ISO и Ventoy выполняются по принципу best effort.
Следовательно, toram=trimне является доказательством того, что загрузочное устройство можно извлечь. Не отключайте его, если диагностика не подтвердила, что его файловая система, loop-устройство и отображения device-mapper больше не смонтированы и не используются.
После монтирования модулей и построения union initrd копирует видимое содержимое minios/rootcopy/ прямо в собранный union. Шаблон оболочки * не включает записи с точкой в начале непосредственно в rootcopy/, хотя скрытые файлы внутри скопированной папки сохраняются при копировании каталога. Это копирование файлов в записываемый слой, а не ещё один модуль только для чтения, поэтому оно может переопределять пути, предоставленные модулями. Ошибки копирования не считаются фатальными для этой функции.
Затем MiniOS выполняет раннюю настройку, записывает fstab нового корня и подключает rootcopy/run/preinit.sh при наличии, передавая путь union первым аргументом. Этот скрипт выполняется в окружении initrd до передачи корня и должен рассматриваться как привилегированный код загрузки.
На финальной границе initrd LiveKit переключает собранный union на /, оставляет старый initrd в /run/initramfs для завершения работы и запускает init нового корня. В Dracut тот же union подготавливается и Dracut выполняет финальный switch_root. После перехода на новый корень обычная загрузка продолжается внутри собранного корня; изменение файлов на загрузочном носителе больше не пересобирает выбранный набор нижних слоёв для этой загрузки.
Предпочитайте просмотр только для чтения и фиксируйте исходную командную строку перед изменением фильтров:
cat /proc/cmdline
sb next-boot
sb list
findmnt -no FSTYPE,OPTIONS /
findmnt -R /run/initramfs 2>/dev/nullsb next-boot показывает текущий выбор по правилам, а sb list — слои, реально составляющие работающий корень. Различие может указывать на ошибку монтирования, замену по имени, изменение во время работы AUFS, или источник выбора, изменившийся после загрузки.
Для ранней диагностики добавьте debug для вывода трассировки оболочки, timing для замеров этапов или rd.break чтобы открыть оболочку после настройки initrd и до передачи корня. В этой оболочке проверьте /memory/data, /memory/bundles, точки монтирования и /proc/cmdline; не выполняйте ремонт файловых систем и не извлекайте носители, пока они смонтированы. Зафиксируйте первую ошибку монтирования или копирования, а не только последующий симптом. Подробнее см. Устранение неполадок для более широкой безопасной диагностики.
🌐 Languages
📋 Getting started
🚀 Installing MiniOS
- Installation methods
- Verifying downloads
- Installation tools
- Manual file-based installation
- MiniOS Installer
🖥️ Using MiniOS
⚙️ Preparing and customizing MiniOS
- Preconfiguring MiniOS
- Managing modules
- Managing kernels
- Creating custom MiniOS images
- Customizing the boot menu
🛡️ Maintenance and recovery
📖 Reference
- System architecture
- Boot process
- Boot parameters
- Configuration
- Package and edition contents
🛠️ Development
📋 Erste Schritte
🚀 MiniOS installieren
- Installationsmethoden
- Downloads verifizieren
- Installationswerkzeuge
- Manuelle dateibasierte Installation
- MiniOS-Installationsprogramm
🖥️ MiniOS verwenden
⚙️ MiniOS vorbereiten und anpassen
- MiniOS vorkonfigurieren
- Module verwalten
- Kernel verwalten
- Eigene MiniOS-Images erstellen
- Startmenü anpassen
🛡️ Wartung und Wiederherstellung
📖 Referenz
- Systemarchitektur
- Startvorgang
- Startparameter
- Konfiguration
- Paket- und Editionsinhalte
🛠️ Entwicklung
📋 Primeros pasos
🚀 Instalando MiniOS
- Métodos de instalación
- Verificación de descargas
- Herramientas de instalación
- Instalación manual basada en archivos
- Instalador de MiniOS
🖥️ Usar MiniOS
⚙️ Preparar y personalizar MiniOS
- Preconfiguración de MiniOS
- Gestión de módulos
- Gestión de kernels
- Creación de imágenes personalizadas de MiniOS
- Personalizar el menú de arranque
🛡️ Mantenimiento y recuperación
- Actualizar MiniOS
- Copia de seguridad de MiniOS
- Solución de problemas
- Seguridad
- Rendimiento
- Virtualización
📖 Referencia
- Arquitectura del sistema
- Proceso de arranque
- Parámetros de arranque
- Configuración
- Contenido de paquetes y ediciones
🛠️ Desarrollo
📋 Premiers pas
🚀 Installation de MiniOS
- Méthodes d'installation
- Vérification des téléchargements
- Outils d'installation
- Installation manuelle basée sur les fichiers
- Programme d’installation MiniOS
🖥️ Utiliser MiniOS
⚙️ Préparer et personnaliser MiniOS
- Préconfiguration de MiniOS
- Gestion des modules
- Gestion des noyaux
- Créer des images MiniOS personnalisées
- Personnaliser le menu de démarrage
🛡️ Maintenance et récupération
📖 Référence
- Architecture du système
- Processus de démarrage
- Paramètres de démarrage
- Configuration
- Contenu des paquets et éditions
🛠️ Développement
📋 Memulai
🚀 Menginstal MiniOS
- Metode instalasi
- Memverifikasi unduhan
- Alat instalasi
- Instalasi manual berbasis file
- Penginstal MiniOS
🖥️ Menggunakan MiniOS
⚙️ Menyiapkan dan menyesuaikan MiniOS
- Pra-konfigurasi MiniOS
- Mengelola modul
- Mengelola kernel
- Membuat citra MiniOS kustom
- Menyesuaikan menu boot
🛡️ Pemeliharaan dan pemulihan
📖 Referensi
- Arsitektur sistem
- Proses boot
- Parameter boot
- Konfigurasi
- Isi paket dan edisi
🛠️ Pengembangan
📋 Per iniziare
🚀 Installazione di MiniOS
- Metodi di installazione
- Verifica dei download
- Strumenti di installazione
- Installazione manuale basata su file
- Installatore MiniOS
🖥️ Usare MiniOS
⚙️ Preparare e personalizzare MiniOS
- Preconfigurazione di MiniOS
- Gestione dei moduli
- Gestione dei kernel
- Creazione di immagini MiniOS personalizzate
- Personalizzazione del menu di avvio
🛡️ Manutenzione e ripristino
- Aggiornamento di MiniOS
- Backup di MiniOS
- Risoluzione dei problemi
- Sicurezza
- Prestazioni
- Virtualizzazione
📖 Riferimento
- Architettura di sistema
- Processo di avvio
- Parametri di avvio
- Configurazione
- Contenuto di pacchetti ed edizioni
🛠️ Sviluppo
📋 Primeiros passos
🚀 Instalando o MiniOS
- Métodos de instalação
- Verificando downloads
- Ferramentas de instalação
- Instalação manual baseada em arquivos
- Instalador do MiniOS
🖥️ Usar MiniOS
⚙️ Preparando e personalizando o MiniOS
- Pré-configurando o MiniOS
- Gerenciando módulos
- Gerenciando kernels
- Criando imagens personalizadas do MiniOS
- Personalizando o menu de boot
🛡️ Manutenção e recuperação
- Atualizando o MiniOS
- Fazendo backup do MiniOS
- Solução de problemas
- Segurança
- Desempenho
- Virtualização
📖 Referência
- Arquitetura do sistema
- Processo de boot
- Parâmetros de boot
- Configuração
- Conteúdo dos pacotes e edições
🛠️ Desenvolvimento
📋 Начало работы
🚀 Установка MiniOS
- Методы установки
- Проверка загрузок
- Инструменты установки
- Ручная установка на основе файлов
- Установщик MiniOS
🖥️ Использование MiniOS
⚙️ Подготовка и настройка MiniOS
- Предварительная настройка MiniOS
- Управление модулями
- Управление ядрами
- Создание пользовательских образов MiniOS
- Настройка загрузочного меню
🛡️ Обслуживание и восстановление
- Обновление MiniOS
- Резервное копирование MiniOS
- Устранение неполадок
- Безопасность
- Производительность
- Виртуализация
📖 Справочник
- Архитектура системы
- Процесс загрузки
- Параметры загрузки
- Конфигурация
- Содержимое пакета и редакций
🛠️ Разработка