10
ноябрь
2023
Режимы persistence и frugal в MX Linux и antiX
13:20

Режимы persistence и frugal в MX Linux и antiX

10 ноябрь 2023 13:20

Для использования на работе и дома может пригодится загрузочный USB носитель, содержащий всё самое необходимое для работы - ОС Linux, драйверы, браузер, утилиты.

Введение

Данная статья о том, как создать Live USB с возможностью поддержания состояния между сеансами. Речь идёт об MX Linux 23.1 (Libretto), который вышел в середине октября 2023. Рассмотрена редакции "32.1_minimal" для DVD диска, с объемом дистрибутива 1.8 ГБ. Эта же статья годится для любой редации MX Linux и antiX.

Образы установочных дисков можно скачать по ссылкам:

  • Файлы ISO MX Linux в редакции MX-Minimal
  • Файлы ISO MX Linux основной редакции MX Linux XFCE
  • Файл ISO antiX Linux последней редакции antiX ISO

MX Linux и antiX имеют возможность для создания автономного Live USB с 2019 года. Это гибридный режим загрузки с Live USB, названный разработчиком. "Persistence" - в переводе "Стойкость". Режим "persistence" сохраняет состояние между загрузками - программы и данные на LiveUSB не сбрасываются с исходное состояние.

При загрузке с USB носителя Live USB операционной системы MX Linux можно не только выбрать язык и запустить установку, но настроить параметры перед запуском, в графическом меню. В пункте меню "Расширенные опции" присутствует множество пунктов со словами frugal или persistence, каждый из которых имеет варианты.

Для чего предназначены режимы Live CD "Frugal" и "Persistence"?

Frugal (переводится "бережливый" или "экономичный") - возможность установки ОС на компьютеры с малым объёмом жесткого диска (менее 6 ГБ). При использовании frugal на диске вместо множества файлов в каталогах папки /root хранятся лишь 2 сжатых файла, содержащие разделы дисков root и home. Режим Frugal используется только с HDD (НЖМД).

Persistence (переводится как "стойкость", "настойчивость", "упорство") - хранение данных между сессиями на USB Flash накопителе. При её использовании загрузочную флешку можно переносить между различными ПК, изменения в домашнем каталоге /home и в корневой файловой системе / будут записаны на USB диск при выключении или перезагрузке MX Linux или antiX. При следующей загрузке Live USB обнаруживает данные в дополнительном разделе на флешке и загружает их. Получается такой гибридный режим - загрузка с неизменной части Live USB ("только для чтения" ISO 9660") и изменяемая в зарезервировнном при создании Live USB пространстве, содержимое которого может изменяться с каждой новой сессией.

Требования для применения Persistence

1) Объём флешки нужен 16 ГБайт:

  • 1.8-2.2 ГБ отводится под дистрибутив операционной системы, в виде диска формата DVD ISO9660,
  • до 0.5 ГБ - под хранение изменяемых данных корня "rootfs". Размер rootfs не может быть больше ОЗУ.
  • 0.5 ГБ - 10 ГБ для домашней папки "homefs". При малом количестве "своих" данных можно выделять всего 300 МБ.
  • ~ 1ГБ на временные файлы при операциях с "динамическим" persistence: создаются 2 резервных *.bak-файла
  • 0.2 ГБ на файл rootfs.new при ремастеринге.
  • временный файл linuxfs.bak который также можно удалить, но он занимает место,
    На практике, на флешке используется около 10 ГБ.

2) При записи загрузочного USB flash накопителя нужно использовать Unetbootin (Linux) или Rufus (Windows), т.к. консольная команда dd не годится для резервирования свободного места.
Перед записью образа ISO на USB носитель необходимо не только выбрать файл ISO с образом диска, но и указать размер резервного пространства на диске 8 ГБ (8000 МБ) в строке "persistence" (пространство, которое выделяется под данные, которые переносятся между сессиями).

3) Нужен один работающий порт USB в ПК, с которого будет производится загрузка. Очень желательно, чтобы скорость USB порта и USB носителя была максимально возможной - например, USB 3.2. Стабильно работающий USB 2.0 тоже годится. Этот порт USB должен принадлежать материнской плате ноутбука или ПК (платы расширения USB работать не будут).

4) Для возможности динамических способов persistence, необходим чуть больший объём объём оперативной памяти (ОЗУ), чем обычно необходимо Linux - минимум 3 ГБ для комплекта ОС + браузер Firefox. Поскольку при динамических способах раздел изменений с USB диска загружается в память. При статических способах persistence это требование не является обязательным.

5) Должен быть доступен вход в BIOS или boot menu, где можно включить загрузку с USB flash.

6) При использовании прозрачного сжатия в lz4 и извлечения в ОЗУ при работе с USB Flash, требования к процессору не высокие. Для выполнения же операции "ремастеринга", т.е. компиляции изменений в новый образ DVD ISO9660 для записи на флешку, слабый процессор Intel Atom не подойдет, нужен хотя бы AMD Phenom II 710 / Intel Core2Duo 8200.

Условия для применения опции Frugal

При опции Frugal происходит сжатие файловой системы и запись в 2 файла на жёстком диске (+ копии, итого 4). Этот способ повышает скорость обмена в десятки раз по сравнению с USB flash, но требует наличия как жесткого диска, так и раздела для сохранения (объёмом около 8 ГБ). При использовании "на лету" сжатия lz4, мощность процессора не играет роли, но при более эффективном сжатии gzip, которое применяется при нехватке места на диске, можно предположить, что требования к процессору выше. Пока я не пользовался опцией frugal и данная статья посвящена, главным образом, режиму "стойкости" ("persistence").

Варианты выбора в опциях MX Live CD или antix Live CD

Все опции разделены на 2 большие группы:

  • frugal - опции экономии жесткого диска (для машин с малым объёмом HDD)
  • persistence - опция сохранения данных при запуске с Live USB от сессии к сессии.

Persistence ("стойкость" или "упорство") делится на 2 большие группы - динамическая (ОЗУ) и статическая (изменения пишутся сразу на USB диск).

Динамическая persistence:

  • persist_all - считывать корень диска "/" в ОЗУ, за исключением домашней папки /home (статическая). При корректном выключении ПК изменения rootfs будут записаны на USB диск. Способ стоит первым в списке, но не самый быстрый, оставил не самые хорошие впечатления (измерения скорости см. в конце статьи).
  • persist_root - писать изменения всей ОС в ОЗУ. Включая систему "/" и папку пользователя "/home". Быстрый режим, но при выключении нужно сохранять изменения на диск. Либо в середине работы запускать persist-save.

Статическая persistence:

  • persist_static - самый медленный способ, который имеет смысл применять лишь для сильно устаревших ПК, имеющих ОЗУ менее 3 ГБ: записывать изменения на USB не дожидаясь завершения работы или перезагрузки.
  • p_static_root - то же что _persiststatic, быстродействие повышено вдвое, для ПК с малым объемом ОЗУ.
  • persist_home - ОС грузится с Live USB, а данные домашней папки при изменении сразу записываются на USB диск. Также медленный способ.

Отключение persistence:

  • Если не заходить в расширенные настройки, Live USB запустится с опцией persist_off - запуск Live CD происходить "на чистую", и никакие данные между сессиями не сохраняются, не передаются. Данный режим используется для установки ОС на стационарный ПК или ноутбук (вначале запускается Live режим, а из него можно запустить установку ОС.

Для текущего запуска ОС применяются те настройки, которые выбрал пользователь.
Чтобы не изменять настройки при каждом включении ПК, для следующих запусков, нужно выполнить в меню "Вернуться в главное меню"- сохранение настроек в пункте графическом меню "Сохранение" GRUB SAVE, который изменит файл меню grub.

Запись USB флешки с MX Linux для опции Persistence

1) Загружаем исполнимый файл Unetbootin с сайта http://unetbootin.github.io/#distros. Для Linux Mint также нужно скачать BIN-файл со страницы http://unetbootin.github.io/linux_download.html

2) Чтобы флешка USB определилась в системе, вытащите и вставьте, чтобы сработало монтирование.

3) Если ничего не делалось с ней (чистая флешка из магазина) данный пункт пропускаем.

Если что-то было записано, очищаем флешку:

lsblk

Находим внешний USB диск, например /dev/sdd

sudo fdisk /dev/sdd

Команда (m для справки): d (клавиша Enter)

Выбранный раздел 1
Раздел 1 был удален.

Команда (m для справки):n (клавиша Enter)

Тип раздела
p основной (0 primary, 0 extended, 4 free)
e расширенный (контейнер для логических разделов)
Выберите (по умолчанию - p): p (клавиша Enter)
Номер раздела (1-4, по умолчанию 1): 1 (клавиша Enter)
Первый сектор (2048-30719999, по умолчанию 2048): (клавиша Enter)
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-30719999, по умолчанию 30719999): (клавиша Enter)

Возможен вопрос
Удалить сигнатуру? [Y] Да/[N] Нет: y (клавиша Enter)

Команда (m для справки): t (клавиша Enter)
Hex code or alias (type L to list all): 7 (клавиша Enter)

Тип раздела 'Linux' изменен на 'HPFS/NTFS/exFAT'.

Команда (m для справки): w

Таблица разделов была изменена.
Синхронизируются диски.

Создаем файловую систему типа FAT32 командой mkfs.fat:

sudo umount /dev/sdd1
sudo mkfs.fat /dev/sdd1

4) Чтобы флешка USB определилась в системе, вытащите и вставьте, чтобы сработало монтирование.

5) Запуск Unetbootin (версия может быть любая, здесь 702):

mv unetbootin-linux64-702.bin  unetbootin
chmod +x unetbootin
sudo ./unetbootin

6) Выбираем второй пункт - образ диска ISO, указываем ранее загруженный файл дистрибутива MX Linux или antiX (ISO)
Обязательно резервируем свободной пространство: 8000 MB (более чем достаточно, обычно используется до 3 ГБ)

7) Для начала записи нажимаем кнопку OK.

8) Ждём минут 20, пока идёт запись файлов на "флешку". (Индикация прогресса выполнения будет вначале двигаться медленно, надолго "зависнет" на значении 8 из 994, но процесс записи идет, это отображение процентов выполнения в программе Unetbootin неточное).

Если будет выведено окно, что файл существует, нажмите Yes (или нажмите Tab - Enter).

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

9) Когда запись завершится, будет выведено сообщение "Installation complete". - нажимаем "Выход".

Запуск компьютера в режиме Live USB

В BIOS выбираем загрузку с USB флешки (меню "Boot" - Boot Option #1 - UEFI Disk), сохраняем настройки (F10) и загружаемся с неё.

Варианты выборе режима "Стойкость" (persistence)

Меню загрузки LiveUSB в различных версиях MX Linux и antiX может отличаться, но пункты приблизительно те же.
Для выбора нужного режимя в начальном меню загрузочного USB диска выбираем русский язык и пункт "Расширенные опции" ("Advanced options") - "Параметры сохранения" ("Persistance option").

Режимы "стойкости" (persistence) с сохранением состояния в ОЗУ
и / или на раздел USB носителя

Название режима Хранение root_fs Хранение home_fs Тип Сохранение изменений Скорость работы
persist_all ОЗУ <=> USB flash USB flash Динамический root - статический home По желанию* Низкая
persist_root ОЗУ <=> USB flash ОЗУ <=> USB flash Динамический По желанию* Высокая
persist_static USB flash USB flash Статический Немедленно Низкая
p_static_root USB flash USB flash Статический Немедленно Низкая
persist_home нет USB flash Статический Немедленно Низкая

* при запуске persist_save или при положительном ответе на вопрос о сохранении изменений ФС при перезагрузке ПК.

Варианты "Экономного" режима установки на жесткий диск ("frugal")

Режим экономной установки позволяет сократить требуемый объём раздела жесткого диска в 4 раза. Поскольку данные хранятся в сжатом виде (squshfs) в отличие от развернутых программ (на ext4). Например, если ОС требуется 12 ГБ корневой ОС (/bin, /boot, /etc, /lib, /lib64, /sbin и т.д.), то при использовании frugal-раздела требуется такой же размер, какой имеет исходный установочный носитель, т.е. 2-3 ГБ.

Режимы с сохранением системы в специальный раздел на жёстком диске (frugal)
(Используется в случае доступности жесткого диска и возможности создать на нём пустой раздел).

Также, выигрыш быстродействия по сравнению с USB за счет скорости чтения при обращении к HDD / SSD.

Название режима Хранение root_fs Хранение home_fs Тип Сохранение изменений Скорость работы
frugal_persist ОЗУ <=> НЖМД спец. раздел НЖМД Динамический root - НЖМД - статический Home По желанию* Высокая
frugal_root ОЗУ <=> НЖМД ОЗУ <=> НЖМД Динамический - НЖМД По желанию* Очень высокая
frugal_static спец. раздел НЖМД спец. раздел НЖМД Статический - НЖМД Немедленно Высокая
f_static_root спец. раздел НЖМД спец. раздел НЖМД Статический - НЖМД Немедленно Высокая
frugal_home нет спец. раздел НЖМД Статический - НЖМД Немедленно Высокая
frugal_only нет нет Статический
Без сохранения home
Нет ?

* при запуске persist_save или при положительном ответе на вопрос о сохранении изменений ФС при перезагрузке ПК.

Отличие persistence / frugal от режима toram

В режиме toram, включаемом через меню дополнительных опций (F6), содержимое загрузочного USB носитель перед запуском ОС загружается в оперативную память (ОЗУ):

  • при включении toram - может быть долгое копирование с носителя USB 1.1 в ОЗУ, но затем загрузочный диск можно вытащить (когда светодиод флешки перестанет мигать)
  • при одновременном использовании флага toram и динамического способа persist_root наблюдается отличная отзывчивовость системы (см. измерения скорости в конце статьи).

Для чего нужен режим toram?

1) Например, если ПК имеет очень медленный порт USB 1.0 и много ОЗУ, в начале работы можно загрузить весь носитель в память за 30 минут = 2100 MB / 1.2 MB/сек., но затем заниматься с системой (установкой и настройкой) будет приятнее, система будет работать быстро.
2) Для максимального быстродействия ОС в режиме "persist_root".

Другой способ создания системы на USB со "стойкостью" (persistence)

В MX Linux и antiX есть программа live-usb-maker (В загруженной ОС antiX / MX Linux - меню "Пуск" - "MX Инструменты" - "Создание USB носителя". Этим режимом я не пользовался.

Изменение режима "стойкости" после установки системы на LiveUSB

Сохраненение настроек "стойкости" применяется при выборе пункта меню grubsave и запуске загрузки с USB носителя с помощью первого пункта верхнего уровня меню.

Статическую "стойкость" можно заменить на динамическую в меню начальной загрузки (синее окно):

  • изменить способ persistence / frugal в меню
  • Сохранить настройку "Расширенные опции" ("Advanced options") - Параметры сохранения - grubsave
  • выполнить загрузку ОС (верхний, первый пункт загрузочного меню).

Что такое ремастеринг и зачем он нужен?

При ремастеринге изменения rootfs, связанные с установкой пользователем программ, переносятся в состав загрузочного livecd. Например, Вы установили новую программу - браузер Chromium и обновления для пакетов ОС. На разделе rootfs, где хранятся изменения файловой системы относительно исходного варианта LiveUSB, увеличилось использование диска на 200 Мбайт и при загрузке с динамическим типом "стойкости" будет тратиться время при старте компьютера на чтение в ОЗУ. Ремастеринг сокращает используемый размер диска (с 200 до 20 Мбайт), интегрируя браузер Chromium и обновления в сам LiveUSB, возвращая LiveUSB отзывчивость, скорость работы. То есть процесс ремастеринга похож на создание "сборок", но под свои нужды. Время, необходимое на ремастеринг - примерно 20-30 минут на среднем ПК (требуется много ядер c высокой тактовой частотой). Для слабых ПК вроде eeePC / Intel Atom ремастеринг можно выполнять на более мощных ПК (AMD Phenom, Athlon, Ryzen 3, Ryzen 5 или Intel Core i3 / i5 / i7.

Как запустить ремастеринг?

В меню "Пуск" - "MX Tools" - "Центр управления ремастерингом" нажать кнопку "Ремастеринг".

Как настроить размеры файлов rootfs и homefs после установки?

  • Сразу после установки системы можно зайти в "Центр управления ремастерингом" и задать размеры файлов rootfs и homefs в меню "Настройка сохранения данных". После перезагрузки рекомендую удалить временные файлы bak с помощю этой же программы (меню обслуживание).

Как правильно указать размеры rootfs и homefs, файла swap

  • rootfs - от 400 МБ до 3 ГБ (при ремастеринге создаётся файл rootfs.new, поэтому выделать более 3 ГБ нежелательно. При обычных действиях в файле хранится не более 80 МБ, так что достаточно и 200-400 МБ.
  • home - от 200 МБ до 1 ГБ (можно и больше, вплоть до 10 ГБ, но в этом нет смысла - загрузочная "флешка" не предназначена для скачивания больших объемов из Интернет)
  • swap - 200 МБ (минимальный объём, т.к. swap практически не используется).

Как изменить способ сохранения состояния ручной / автоматический / полуавтомат?

  • В меню в строке поиска вводим "rem" - "MX центр ремастеринга" - 4-й пункт "Настройка сохранения данных" - Save-mode - рекомендую вариант **2 Полуавтоматически" - OK.

Как сохранить состояние перед перезагрузкой или выключением ПК?

Если в конфигурации "persistence" было указано автоматическое сохранение состояния, при перезагрузе сообщения не выдаются. Если полуавтоматическое сохранение состояния - пользователь может решить, сохранять ли состояние (потребуется время около 80 секунд) или нет (завершить работу ОС немедленно).
Если ответить "n" (нет) - состояние сеанса не сохранится, "y" (да) - состояние rootfs и home на устройстве храрения будет обновлено.
Положительный ответ 'y' о необходимости сохранения сеанса

Также состояние можно сохранить в Пуск - MX Инструменты в приложениии "Центре управления ремастеринга" - первый пункт "Сохранение состяния".

Пароль по умолчанию для пользователя demo таккой же - demo

Выбрать

  • action "Root: Создать сохранение корневой папки" - OK; Size - 100 MiB. (обязательно)
  • action "Home: Создать сохранение домашней папки" - OK: Size: 100 MiB. (по желанию)

(Размер домашней папки можно изменить в этом же меню в дальнейшем).

Время создания файла 1 Gib составляет несколько минут, 100 МБ - несколько секунд. В конце выведено окно, что файл был успешно создан.

В версии 23.3 при завершени работы можно сохранить сеанс автоматически при завершении работы - галочка "Сохранить сеанс"., что эквивалентно описанным выше действиям в "Центре управления ремастеринга".

Баг дистрибутива 23.1_minimal

Сборка MX Linux 23.1 "minimal" не выложена на официальный сайт MXlinux.org, это так называемый вариант от / для "community", т.е. минимальная сборка лишь с самым необходимым, созданная по просьбам пользователей: MX-Minimal на SourceForge.
В сборке "minimal" есть ошибка - при запуске не загружается boot меню grub2. Выводится сообщение:

"gfxboot.c32 not a COM32R IMAGE".

Здесь нужно ввести с клавиатуры слово
grub
и нажать Enter.

Сравнение скорости работы при разлиных вариантах "стойкости" persistence

Выполнил сравнение при сценарии использования:

  • запуск ОС
  • запуск браузера Mozilla Firefox и автоматичекое открытие домашней страницы
  • завершение работы ОС без сохранения rootfs.

Способы persistence отсортированы по скорости работы:

Способ Загрузка ОС, мин:сек Запуск FireFox, мин:сек Завершение ОС, мин:сек
persist_root + toram 3:40 0:05 0:10
persist_root 2:25 0:16 0:15
persist_all 2:40 5:13 0:57
persist_home 2:13 4:38 0:48
p_static_root 5:30 4:30 3:30
persist_static 9:00 10:00 4:47

При использовании persist_root + toram нет ощущения, что запуск ОС произведён с флешки, браузер и веб страницы открываются мгновенно.

Как сохранить изменения на USB?

В версиях до 23.3:
Если включен "полуавтоматический" способ сохранения, перед перезагрузкой в текстовом окне будет выведен вопрос - сохранять или нет изменения. Для сохранения нужно нажать Enter.

Если используется "автоматический" способ сохранения, изменения запишутся на USB без вопросов при перезагрузке или выключении ПК.

Запись изменений rootfs и homefs из ОЗУ на флеш накопитель можно выполить досрочно при помощи команды persist-save:

sudo persist-save

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

Загрузка ОС с USB

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

Пользователь root.
New password:
(введите новый пароль пользователя root)

Затем
Пользовател demo
New password
(введите новый пароль пользователя demo)

После чего - в текстовом режиме будет запрошен режим сохранения rootfs - рекомендую полуавтоматический "2. Semi-Automatic".

Создание нового пользователя

При первом запуске система загрузится в профиль пользователя demo.
Добавить иного пользователя можно командой

sudo useradd -m user
sudo passwd user

После чего сохраняем состояние раздела корневой папки root, как написано выше.

Смена пользователя: нажать на верхюю иконку и нажать "Выйти". В меню окна приглашения выбрать пользователя №2 - user и его пароль - войти.

После загрузки рабочего стола можно продолжать работу в ОС или завершить работу. При завершении: поставьте галочку "Сохранить сеанс" и нажимете кнопку "Выключить".

Накопление и сокращение изменений

Изменения в системе в ходе работы не пишутся в образ, а лишь в папки rootfs (различия операционной системы) и homefs (изменения домашней папки пользователя). Когда в системе накопится много изменений, использование этих разделов возрастет. Для rootfs рекомендуется выполнить ремастеринг, который добавит накопленные изменения в образ, что сократит использование файла rootfs. Сократить размер домашней папки - удалить ненужные файлы которые были скачаныв неё (например, очистить кеш браузера).

Ссылки:

Последнее изменение документа: 11.03.2024