Repository navigation
Sessions and Persistence ru
Сессии MiniOS позволяют сохранять изменения, внесённые в рабочую систему, между перезагрузками. Каждая сессия — это отдельный каталог с номером в minios/changes/; модули MiniOS остаются только для чтения, а выбранная сессия предоставляет доступ к записываемому слою объединённой файловой системы.
Используйте Менеджер сессий MiniOS из запущенной системы MiniOS:
minios-session-managerЭквивалентная утилита командной строки — minios-session. Для всех команд, кроме справки, требуются права администратора; примеры запускайте с помощью sudo.
Эти сценарии работы с пронумерованными сессиями недоступны при выбранном плагине Ventoy Persistence-образе. Такой образ предоставляет одну постоянную среду, выбранную в Ventoy, без метаданных сессии MiniOS. Обычные загрузки Ventoy без выбранного плагина сохраняют сессии MiniOS; см. Ventoy.
| Режим | Хранилище | Основные ограничения | Слой MiniOS LUKS2 |
|---|---|---|---|
native |
Изменения сохраняются непосредственно в каталоге сессии | Требуется файловая система с поддержкой записи, сохраняющая метаданные Linux и поддерживающая операции, которые определяет MiniOS. Ёмкость определяется свободным местом на носителе; perchsize не применяется. |
Нет |
dynfilefs |
Расширяемая ext4 virtual.datна базе файлов-сегментов формата 400 |
Работает на файловых системах с поддержкой записи: POSIX, FAT32, NTFS и exFAT. Данные занимают мало места, но индекс сопоставления увеличивается пропорционально объявленной логической ёмкости. | Да |
dynblk |
Тонкий ext4 на блочном устройстве ядра с поддержкой volumeNNN.db файлов |
Требуются CLI DynBlk, модуль ядра и поддержка initrd. Размер, создаваемый при загрузке, по умолчанию до 16 ГиБ; максимальный размер можно узнать с помощью dynblk limits. Для сопоставлений на диске используется ограниченный кэш метаданных. |
Да |
vmdk |
Тонкий ext4 на стандартном раздельном разрежённом VMDK, предоставляемый драйвером DynBlk | Использует volume.vmdk и volume-sNNN.vmdk. Без сжатия. Требуется vmdk-session-v1 в маркере initrd. Такой же ручной лимит 16 ГиБ по умолчанию, как у DynBlk; узнать ограничения можно через dynblk limits --format vmdk . |
Да |
raw |
Одиночный changes.img файл с ext4 |
Фиксированная логическая ёмкость, увеличение только вручную. Работает на файловых системах с поддержкой записи: POSIX, FAT32, NTFS и exFAT; FAT32 ограничен 4000 МиБ. | Да |
squashfs |
Сжатый снимок в changes.sb; при запуске записываемый верхний слой восстанавливается в RAM |
perchsize не применяется. Существующие снимки можно восстановить с поддерживаемых носителей с записью; для точного сохранения требуется подходящее хранилище с поддержкой POSIX. |
Нет |
Raw, DynFileFS, DynBlk и VMDK могут быть дополнительно зашифрованы с помощью LUKS2. Бэкенд хранения остаётся прежним, а метаданные сессии фиксируют шифрование отдельно. DynFileFS и raw, созданные через minios-session по умолчанию имеют 4000 МиБ; DynBlk и VMDK — 16 ГиБ. Размеры указываются в МиБ; GB и TB суффиксы преобразуют в 1000 и 1 000 000 МиБ. Raw ограничен 4000 МиБ на FAT32 независимо от шифрования. Данные DynFileFS увеличиваются по мере необходимости, но индекс формата 400 рассчитан на всю логическую ёмкость и требует около 2 МиБ RAM плюс примерно 2 МиБ резервного хранилища на каждый ГиБ. DynBlk хранит таблицы сопоставления на диске и ограниченный кэш метаданных в RAM, по умолчанию 1 МиБ, а не процент от RAM. Векторы extent/файлов и каталоги растут с увеличением частей, а заполнение данными не требует полной резидентной карты. Узнать лимит установленной ёмкости можно через dynblk limits --format dynblk. Фактическая запись ограничивается свободным местом на нижележащей файловой системе и доступными ресурсами бэкенда. Операции изменения размера контейнера могут только увеличивать сессию; уменьшение не поддерживается.
Режим Native — самый простой и быстрый вариант на совместимой файловой системе.
Используйте DynFileFS, если файловая система для постоянства не поддерживает метаданные Linux.
Выберите DynBlk, если нужен реальный блочный девайс ядра с тонкими файлами-бэкендами; драйвер может одновременно подключать несколько независимых томов DynBlk, а Менеджер сессий использует путь к устройству, возвращённый драйвером, а не предполагает, что /dev/dynblk0 свободен. DynBlk и VMDK недоступны при включённом UEFI Secure Boot, так как MiniOS не подписывает внешний модуль ядра DynBlk. Поэтому установщик и Менеджер сессий скрывают эти режимы и отклоняют явные запросы на создание до попытки загрузки модуля.
Используйте raw при необходимости фиксированного выделения, добавьте LUKS2 для шифрования сессии, а для точного сжатого снимка — SquashFS.
Выполните следующие команды для проверки файловой системы постоянства и доступных на ней режимов:
sudo minios-session info
sudo minios-session statusСессии нельзя создавать на носителях только для чтения. Initrd может прочитать и активировать существующий снимок SquashFS, сохранённый на записываемых FAT, exFAT или NTFS, так как он извлекает снимок во временный ext4-верхний слой. Для создания или точного сохранения снимка требуется, чтобы хранилище поддерживало необходимые метаданные POSIX и приватную, надёжную публикацию. Для точного захвата рабочее дерево использует доверенный RAM, если доступен, с резервом на диск при недостатке RAM.
Любой распознанный параметр персистентности включает обработку персистентности. MiniOS загрузочные меню обычно предоставляют варианты возобновления, создания новой, выбора и неперсистентного режима. Описание семантики выбора, совместимости, резервных сценариев и активации приведено вПерсистентность initrd.
| Параметр | Значение |
|---|---|
perch |
Использовать устаревший режим возобновления по принципу «лучшее из возможного». Пробует значение по умолчанию из метаданных, но не создает замену, если подходящего варианта нет. |
perchdir=resume |
Возобновить вариант по умолчанию из метаданных и, если он отсутствует или несовместим, разрешить initrd создать новый совместимый вариант. Это текущее поведение возобновления через загрузочное меню. |
perchdir=setup |
Открыть интерактивный выбор backend для персистентности, затем создать новую сессию с уникальным номером. Это текущееНачать новую сессию поведение. |
perchdir=new |
Создать новую сессию с уникальным номером напрямую, используя выбранные или стандартные настройки backend, шифрования, сжатия и размера, без открытия выбора backend. |
perchdir=ask |
Выбрать существующую сессию; если хранилище пусто, автоматически запустить тот же процесс настройки, что и приperchdir=setup. |
perchdir=<id> |
Выбрать эту сессию по номеру напрямую. |
perchdir=<device/path> |
Использовать расположение персистентности на устройстве, включая/dev/... иlabel:... форматы, поддерживаемые initrd. |
perchmode=<mode> |
Установитьnative, dynfilefs, dynblk, vmdk, raw или squashfs. |
perchencrypt=luks |
Зашифровать новую сессию Raw, DynFileFS, DynBlk или VMDK с помощью LUKS2. Для существующих сессий шифрование определяется только метаданными. |
perchcomp=<codec> |
Выбрать сжатие backend DynBlk для новой сессии DynBlk. Сжатие принудительно устанавливается вnone при использовании DynBlk внутри LUKS2. |
perchsize=<size> |
Установить новый или больший размер контейнера; значения без суффикса указываются в MiB, аMB, GB и TB суффиксы также принимаются. |
Если режим для новой сессии не указан, при загрузке используется нативный режим. На FAT32/NTFS/exFAT или при ошибках проверки нативной файловой системы при запуске предпочтение отдается DynBlk, если его вспомогательная утилита доступна и Secure Boot это разрешает; иначе используется DynFileFS. Неудачная активация не приводит к автоматическому преобразованию существующей сессии. Новый raw-контейнер по умолчанию имеет размер 4000 MiB. Новые сессии DynFileFS, DynBlk и VMDK при загрузке безperchsize используют до 16 ГиБ; если после резервирования остается меньше места, размер автоматически уменьшается. DynFileFS также учитывает накладные расходы индекса и лимит RAM. Явное увеличение DynBlk ограничивается установленным лимитом backend, который можно узнать с помощьюdynblk limits --format dynblk. При включенном Secure Boot initrd не предлагает DynBlk/VMDK и рассматривает явно выбранную или возобновляемую сессию DynBlk/VMDK как недоступную, не пытаясь загрузить неподписанный модуль.
Сессии SquashFS можно сохранить с работающей системы с помощью Менеджер сессий MiniOS илиminios-session create squashfs. При настройке через initrd создаются только метаданные сессии нулевого поколения, а верхний слой для записи размещается в RAM. Рабочая система создает первыйchanges.sb снимок по требованию или при завершении работы.
При возобновлении MiniOS проверяет записанную версию, редакцию, файловую систему union и режим. Явныйperchdir=resume позволяет создать новую сессию вместо отсутствующего или несовместимого варианта по умолчанию. Простоеperch, прямой выбор по номеру и другие устаревшие запросы возобновления не создают такой замены автоматически.
При интерактивном выборе перед разрешением несовместимой сессии отображается предупреждение. Если выбор или активация снова не удаются, загрузка продолжается с верхним слоем RAM и предупреждением о персистентности.
Хранилище сессий имеет следующий вид:
minios/changes/
|-- session.conf
|-- 1/
|-- 2/
`-- N/
session.conf сохраняет идентификаторы по умолчанию и текущей сессии, а также режим, версию, редакцию, файловую систему union, размер, состояние и настройки для каждого режима.
Это персистентные метаданные, которые фиксируются реализацией загрузки, но сами по себе не подтверждают текущее состояние во время работы системы. Не редактируйте их и не перемещайте данные сессий с номерами, пока сессия смонтирована; используйте Менеджер сессий MiniOS илиminios-session.
Эти термины обозначают разные состояния:
- активная сессия — это выбранная по умолчанию для следующей загрузки.
- С концептуальной точки зрения, запущенная сессия — это та, чей writable-слой фактически обеспечивает сохранение данных в текущей загрузке.
Постоянное поле running= фиксирует это предполагаемое соответствие. Сбой, ошибка при создании union, копирование хранилища или прерванное завершение работы могут сделать его устаревшим, даже если текущая загрузка использует RAM или другую сессию. Поэтому такие операции, как сохранение SquashFS, требуют защищённого состояния текущей загрузки, связанного с boot-ID, и проверенного смонтированного верхнего слоя initrd; они не полагаются только на running= это поле. Подробнее см. Активное, запущенное и состояние текущей загрузки.
Активация сессии изменяет следующую загрузку, но не переключает текущую файловую систему union:
sudo minios-session active
sudo minios-session running
sudo minios-session activate <id>Активная сессия не может быть удалена или преобразована на месте. Запущенную сессию обычно нельзя удалить, экспортировать, скопировать, изменить размер или преобразовать. Очистка также защищает оба идентификатора.
Просмотр сессий и проверка хранилища:
sudo minios-session list
sudo minios-session active
sudo minios-session running
sudo minios-session info
sudo minios-session statusСоздание сессий:
sudo minios-session create
sudo minios-session create native
sudo minios-session create dynfilefs
sudo minios-session create dynblk 16GB
sudo minios-session create vmdk 16GB
sudo minios-session create raw 4GB
sudo minios-session create raw 4GB --encryption luks
sudo minios-session create squashfs --policy shutdown
sudo minios-session create squashfs --policy manual --autosave 60create без указания режима выбирает native. Создание SquashFS фиксирует текущие изменения в live-системе и не имеет фиксированного размера. Политика сохранения при завершении работы по умолчанию — shutdown; периодическое сохранение по умолчанию отключено.
Сохранить запущенную сессию SquashFS или поддерживаемую сессию постоянства, которую текущая загрузка скопировала в RAM:
sudo minios-session save <running-session-id>
sudo minios-session save <running-ram-session-id> --as-newДля SquashFS, save пересобирает текущий снимок. Для Raw на базе RAM, DynFileFS, DynBlk, VMDK или сессии SquashFS он записывает копию RAM обратно в исходное хранилище постоянства. --as-new сохраняет исходную сессию и публикует состояние RAM под новым номером сессии. Исходный носитель должен быть доступен, поддерживать запись и совпадать с идентификатором файловой системы, зафиксированным при загрузке.
Настройте автоматическое сохранение SquashFS отдельно:
sudo minios-session settings <squashfs-id> --shutdown on
sudo minios-session settings <squashfs-id> --shutdown off --autosave 0
sudo minios-session settings <squashfs-id> --shutdown on --autosave 60Допустимые интервалы: 30, 60, 120, 240, и 480 минут; 0 отключает периодическое сохранение. Настройки для завершения работы и периодических сохранений независимы.
Экспорт и импорт .tar.zst архивов:
sudo minios-session export <id> /path/to/session.tar.zst
sudo minios-session import /path/to/session.tar.zst
sudo minios-session import /path/to/session.tar.zst --auto-convert
sudo minios-session import /path/to/session.tar.zst --force-mode dynfilefs
sudo minios-session import /path/to/session.tar.zst --force-mode dynblk
sudo minios-session import /path/to/session.tar.zst --force-mode raw --force-encryption luksПринимаются только .tar.zst импорты. Пути и содержимое архивов проверяются, а извлечение ограничено. --auto-convert выбирает совместимый режим для текущей файловой системы. --force-mode <mode> позволяет явно выбрать доступный режим. Экспорт, копирование/клонирование и преобразование не поддерживаются для сессий SquashFS; используйте её процедуру сохранения и следуйте Резервное копирование MiniOS вместо ручного копирования или восстановления содержимого live-сессии.
Копирование или преобразование сессии:
sudo minios-session copy <id>
sudo minios-session copy <id> --to-mode raw --size 4GB
sudo minios-session copy <id> --to-mode dynblk --size 16GB
sudo minios-session clone <id>
sudo minios-session convert <id> dynfilefs --size 4GB
sudo minios-session convert <id> dynblk --size 16GB --new-session
sudo minios-session convert <id> raw --to-encryption luks --size 4GB --new-sessioncopy — это логическое копирование файловой системы с присвоением нового идентификатора сессии. Можно изменить бэкенд, ёмкость или шифрование, а также создать новые идентификаторы ext4 и LUKS. clone физически копирует отсоединённый бэкенд, сохраняя заголовок LUKS, keyslots, LUKS UUID и ext4 UUID. convert по умолчанию заменяет исходную сессию; используйте --new-session для её сохранения. Размер имеет значение только для контейнера-назначения.
Увеличение, удаление или очистка сессий:
sudo minios-session resize <id> 8GB
sudo minios-session delete <id>
sudo minios-session cleanup
sudo minios-session cleanup --days 30Изменение размера поддерживается для DynFileFS, DynBlk, VMDK и raw-сессий, включая зашифрованные, и требует размера больше текущего. Изменение размера DynBlk сначала увеличивает виртуальное блочное устройство, затем расширяет файловую систему ext4; новая виртуальная ёмкость не выделяется заранее. Очистка по умолчанию применяется к сессиям старше 30 дней.
Все команды принимают --json, а для выбора другого хранилища сессий используйте --sessions-dir PATH :
sudo minios-session --json list
sudo minios-session --sessions-dir /mnt/store/minios/changes listКогда initrd копирует поддерживаемую сессию с сохранением в RAM, perchtoramтекущая сессия больше не записывает данные напрямую в исходное хранилище. MiniOS сохраняет информацию об исходном хранилище по UUID файловой системы и номеру сессии, а не по /dev/sdXимени. Session Manager отображает эту сессию RAM даже при временном отключении исходного устройства.
Если исходное хранилище доступно, доступно для записи и не изменено, Сохранить сейчасзаписывает состояние RAM обратно в исходную сессию. Сохранить на носитель как новую сессиюоставляет исходные данные без изменений и публикует состояние RAM как новую сессию с номером. CLI-эквиваленты: minios-session save <id>и minios-session save <id> --as-new. При сохранении отображается прогресс копирования, процесс можно отменить до публикации; сама публикация выполняется атомарно после запуска.
Если исходный носитель отсутствует, доступен только для чтения, не совпадает с идентификатором при загрузке или исходная сессия была изменена независимо, обратная запись будет отклонена — запись на другое устройство по имени не производится. Подключите исходный носитель и повторите попытку или используйте сохранение как новую сессию, если исходная сессия изменилась. Сессии в виде нативных директорий не копируются с помощью perchtoram: успешный запрос RAM вместо этого запускает новый пустой контейнер без импорта нативных данных. Используйте perchtoram=offдля сохранения этой нативной сессии. При сбросе нативной сессии копирование для данной загрузки отключается, чтобы сохранить сохранённые данные.
Загрузочное Выбрать сохранённую сессию меню позволяет сбросить несовместимую сессию до её активации. Сбросить, сохранить настройки удаляет предустановленное программное обеспечение, но сохраняет системные настройки и данные. Сбросить, сохранить данные также сбрасывает обычную системную конфигурацию. Оба варианта сохраняют /home и /root, включая персональные настройки, установленные в домашней директории приложения, аккаунты, пароли и ключи. Неуказанные вручную установленные файлы в других местах также могут быть сохранены; это не полная очистка программного обеспечения.
Для сброса требуется свободное место для второй копии сохраняемых данных. При неудачной или прерванной замене каталога изменения будут отменены или восстановлены при следующем монтировании. Автоматическое восстановление никогда не сбрасывает сессию без уведомления. Для SquashFS сброс затрагивает только восстановленный слой RAM до успешного сохранения, после чего новая снапшот-версия и информация о совместимости публикуются. Перед сбросом обязательно сделайте резервную копию важных данных; подробнее см. Внутренние механизмы сохранения данных.
Сессия SquashFS распаковывается в RAM для работающего изменяемого слоя. При сохранении создаётся и проверяется точная копия, которая затем атомарно заменяет changes.sb.
Откат предыдущих версий не сохраняется. Сохранить сейчас можно через значок в трее, Менеджер сессий MiniOS или minios-session save независимо от автоматической политики.
При каждом сохранении MiniOS копирует стабильное состояние изменённого дерева в приватное хранилище RAM, если позволяет память. Сжатие записывает один образ в приватный каталог внутри пронумерованной сессии. Только после проверки содержимого файловой системы, дайджеста, идентификатора и надёжной синхронизации сохраняющий процесс заменяет changes.sb. Полного второго сжатого образа в RAM или второй записи этого образа на устройство хранения не создаётся. При недостатке RAM для дерева только рабочее дерево сбрасывается на диск; сжатый кандидат всё равно требует одну запись. Подробнее см. Производительность о политике записи кэша и журнала.
Диагностика загрузки для надёжной сессии SquashFS сохраняется в каталогах boot-logs/minios/ и boot-logs/live/. Они не зависят от успешного снимка при завершении работы и остаются доступными даже если последние изменения в верхнем слое RAM не удалось сохранить. Основное хранилище всё равно должно быть доступно для записи; обычные журнальные файлы могут быть временными, если LIVE_LOG_STORAGE=volatile выбран соответствующий режим.
Сохранение при завершении работы реализовано через основной триггер завершения MiniOS и minios-squashfs-saveбэкенд, поэтому оно не зависит от того, открыт или установлен Менеджер сессий MiniOS. Периодическое сохранение проверяется каждые 30 минут с помощью таймера systemd или службы SysV, обе вызывают тот же бэкенд автосохранения. Пересоздание снимка требует ресурсов процессора и записывает полный снимок; рекомендуется устанавливать интервалы не менее одного часа.
Во время работы с поддержкой RAM и SquashFS новый созданный и активированный снимок SquashFS может взять на себя управление текущей целью сохранения. После передачи старый работающий снимок можно удалить без перезагрузки:
sudo minios-session activate <new-squashfs-id>
sudo minios-session delete <old-running-squashfs-id> --handoffЭто исключение применяется только к корректной передаче текущей загрузочной SquashFS. Другие режимы постоянного хранения во время работы защищены от удаления.
LUKS2 — это дополнительный слой шифрования поверх Raw, DynFileFS, DynBlk или VMDK для хранения сессии; это не отдельный режим сессии. Доступно только если /run/initramfs/etc/minios-initramfs-crypt содержит luks-layer-v1 и инструменты и возможности выбранного backend доступны. Сжатие backend DynBlk отключается при выборе LUKS2.
При интерактивном создании LUKS пароль запрашивается дважды. Операции чтения или создания данных LUKS могут получать их из стандартного ввода с помощью --password-stdin. Пароли не передаются в аргументах команд или метаданных сессии. При загрузке initrd запрашивает пароль в консоли. Три неверные попытки приводят к фатальной остановке загрузки; MiniOS не продолжает работу с открытым текстом, RAM, другим backend или заменой сессии по тому же запросу.
Для неактивной, отсоединённой зашифрованной Raw, DynFileFS, DynBlk или VMDK-сессии Диспетчер сессий предлагает Сменить пароль.... Эквивалентная команда CLI:
sudo minios-session change-passphrase <id>Запрашиваются текущий пароль, новый пароль и подтверждение. При использовании --password-stdin, введите эти три строки в указанном порядке. Выбранный ключевой слот будет заменён без переформатирования или повторного шифрования всех файлов. Активные, работающие или смонтированные сессии необходимо сначала отсоединить; дополнительные ключевые слоты LUKS, созданные вне Диспетчера сессий, не изменяются.
Зашифрованный экспорт содержит расшифрованные логические файлы сессии, а не зашифрованный backend. Импорт, копирование или преобразование в LUKS создаёт новый зашифрованный backend с новыми идентификаторами.
Session Manager может смонтировать неактивную, не запущенную сессию Raw, DynFileFS, DynBlk или VMDK в режиме чтения-записи без назначения её загрузкой по умолчанию. Кликните правой кнопкой мыши по сессии и выберите Смонтировать сессию; для зашифрованных сессий потребуется ввести пароль LUKS. Одновременно можно смонтировать несколько разных идентификаторов сессий.Открыть смонтированную папку открывает подключённую файловую систему, а Открыть папку сессии открывает пронумерованный каталог, содержащий исходные файлы сессии.
Закрытие Session Manager не завершает монтирование, выполненное через графический интерфейс. Чтобы увидеть его снова, откройте приложение и выберите Размонтировать сессию. Если размонтирование занято, MiniOS оставляет подключённый сервис, loop-устройство или DynBlk-устройство вместо отключения хранилища под работающей файловой системой.
Автономная CLI поддерживает монтирование до закрытия стандартного ввода или получения Ctrl+C:
sudo minios-session mount <id>Команда не позволяет монтировать активную или запущенную сессию и никогда не форматирует существующую файловую систему, если монтирование не удалось.
Для нативных, DynFileFS, DynBlk, VMDK и raw-сессий, включая зашифрованные варианты, используйте export для логических резервных копий вместо копирования смонтированного каталога сессии. Храните полученный архив на другом устройстве и убедитесь, что его можно импортировать, прежде чем полагаться на него. При импорте всегда создаётся новая сессия с уникальным номером; активируйте её вручную, когда она будет готова к использованию.
Инструкции по резервному копированию SquashFS и всего устройства смотрите в разделе Резервное копирование MiniOS.
Если сессия завершилась с ошибкой после заполнения хранилища, прерывания записи или при повторном создании пустых сессий, прекратите любые изменения на этом хранилище. Сначала экспортируйте читаемую неактивную сессию, если это возможно, затем следуйте инструкциям в разделе Устранение неполадок.
Начинайте диагностику без изменения данных сессии:
sudo minios-session list
sudo minios-session active
sudo minios-session running
sudo minios-session status
sudo minios-session infoПри загрузке файловые системы контейнеров проверяются до активации на запись. При серьёзных ошибках проверки файловой системы контейнер сохраняется для восстановления и не монтируется для записи. SquashFS обнаруживает некорректное предыдущее состояние и восстанавливает последний успешно сохранённый снимок. Удаляйте сессии только через Менеджер сессий MiniOS или minios-session delete; не удаляйте каталоги сессий вручную.
В Session Manager щёлкните правой кнопкой мыши по сессии DynFileFS, DynBlk или VMDK и выберите Освободить пространство.... Диалоговое окно работает как для запущенных, так и для неактивных поддерживаемых сессий, а также повторно использует уже смонтированную сессию через Session Manager. Для сессии в открытом виде MiniOS выполняет FITRIM на внутренней ext4-файловой системе, а затем запрашивает у соответствующего бэкенда возврат свободного пространства. Отключённые сессии временно подключаются и освобождаются только после корректного размонтирования файловой системы.
Для возврата пространства DynFileFS требуется DynFileFS версии 4.6.0 или новее. Если пакет был обновлён, но старый демон DynFileFS всё ещё работает, перезагрузите систему с обновлённым бэкендом перед возвратом пространства в этой сессии.
sudo minios-session reclaim 3 --json
# Explicitly permit live-data relocation (additional flash writes):
sudo minios-session reclaim 3 --compact --jsonФлажок сжатия по умолчанию отключён, в том числе для exFAT. Автоматическое сжатие не применяется. В зашифрованных сессиях освобождается только пространство, уже известное бэкенду; эта операция не включает поддержку discard через LUKS и не раскрывает схему выделения пространства. Ошибки устройств и неудачный trim останавливают выполнение операции.
При использовании текущего бэкенда DynBlk native или split VMDK, удаление целых зерен делает их размещение доступным для повторного использования. На файловой системе ext4 освобожденные диапазоны также могут автоматически освобождаться с помощью hole punching. На exFAT автоматическая очистка только усекает полностью свободные хвосты файлов. Автоматическая очистка никогда не перемещает активные данные.
Используйте fstrim на смонтированной внутренней файловой системе изменений (не на объединённом AUFS/OverlayFS
корне), чтобы получить отчёт об удалённых блоках, затем dynblk reclaim /dev/dynblkN --execute для
очистки без перемещения данных. Выбирайте фактическое устройство сессии, а не предполагаемый индекс.
Чтобы вручную запросить ресурсоёмкую компактацию на месте, добавьте --compact.
Это работает без конвертации образа или изменения размера виртуальной файловой системы;
другие операции чтения/записи могут выполняться между этапами освобождения. Это не автоматический режим.
Опциональная --scan-zeroes читает отображённые зерна и по умолчанию не включена.
Эти команды также доступны в обновлённом initrd DynBlk CLI. Автоматическая
компактация при запуске не активируется. Для зашифрованных сессий сохраняется текущая политика удаления;
инструменты не включают прозрачную передачу discard для dm-crypt без уведомления.
Только для чтения или cache=unsafe вложения не подлежат очистке. Сообщаемые освобождённые
диапазоны и усечённые длины не совпадают с измеряемым свободным пространством файловой системы.
VMDK — это отдельный режим сессии, а не новый кодек сжатия. Создание, активация, изменение размера, экспорт/импорт, копирование, клонирование и конвертация выполняются через тот же Менеджер сессий, что и для других режимов контейнера:
minios-session create vmdk 16384 --activate
minios-session copy 3 --to-mode vmdk --size 16384
minios-session import /path/to/session.tar.zst --force-mode vmdkАрхивы сессий содержат логические файлы и метаданные, а не произвольные внешние
VMDK-образы. Управляемые сессии VMDK используют канонический volume.vmdkдескриптор
и все его volume-sNNN.vmdkсвязанные файлы. Не переименовывайте части и не копируйте активный образ
в обход драйвера. Переключение между собственным DynBlk и VMDK требует явного
копирования или конвертации; ручное изменение session_modeне является конвертацией.
Установщик предлагает VMDK только если это поддерживается средой выполнения, и отклоняет исходные
образы, у которых скопированные initrd не содержат vmdk-session-v1необходимой функциональности. Перед созданием сессий VMDK обновите CLI,
драйвер, инструменты работы с сессиями и загрузочные скрипты.
🌐 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
- Устранение неполадок
- Безопасность
- Производительность
- Виртуализация
📖 Справочник
- Архитектура системы
- Процесс загрузки
- Параметры загрузки
- Конфигурация
- Содержимое пакета и редакций
🛠️ Разработка