13
декабрь
2024
Как устроено Постоянство Стойкость Persistence в antiX и MX Linux
11:57

Как устроено Постоянство / Стойкость / Persistence в antiX и MX Linux

13 декабрь 2024 11:57

Persistence - это сохранение состояния ОС и домашнего каталога, настроек при работе в режиме Live CD.

Что такое Постоянство / Стойкость / Persistence в antiX Linux. Какие у него преимущества?

Persistence можно перевести на русский язык как Постоянство или Стойкость. Действительно, при завершении работы ОС antiX или MX Linux, эти операционные системы при выборе режиме "persistence" умеют сохранять последнее состояние на носитель - USB или жесткий диск, который не зависит от внешнего питания. Спустя некоторое время, можно включить ПК, загрузиться с флешки и при выборе Постоянства восстановить систему на момент завершения работы - со всем дополнительно установленными приложениями, настройками и файлами пользователя и даже "мусором" - временными файлами и куками браузера. Также, в отличие от классических ОС, где резервная копия делается при помощи timeshift или iSCSI или rsync, достаточно долго, т.к. копируются все файлы, здесь сохраняются лишь изменения по сравнению с исходным образом, и в единый файл, что значительно сокращает время записи. При отсутствии обновлений и дополнительных программ, размер файлов Постоянства около 200 МБ, а в сжатом виде - 30 Мбайт. Главное, что не нужно копировать множество файлов - лишь два: rootfs и homefs.

Существует два типа Постоянства / Стойкости / Persistence:

  • статическое (данные сразу записываются на носитель - медленно, но требования к ОЗУ отсутствуют)
  • динамическое (данные вначале записываются в ОЗУ - быстрый способ, но требует выполнения persist_save для сохранения изменений. Удобство динамического способа с выбором - сохранять или нет (полуавтоматический или ручной) - изменения можно не сохранять на носитель если они не нужны. Например, если выполнена команда ping или traceroute, или lshw и результаты прочитаны с экрана и сохранение состояния ОС не требуется.

Принцип действия Постоянства / Стойкости / Persistence

Постоянство использует поверх файловой системы слой OverlayFS, которая представляет собой абстракцию на основе объектов, через которые производится доступ к файлам.
OverlayFS — реализована в Linux начиная с версии ядра 3.18, но широко не использовалась до настоящего времени. Предназначена OverlayFS для объединения нескольких различных базовых точек монтирования от разных физических носителей в одну, что приводит к единой структуре каталогов, содержащей базовые файлы и подкаталоги из всех источников. Обычные приложения накладывают раздел чтения/записи на раздел только для чтения, например, с LiveCD и устройствами IoT с ограниченными циклами записи флэш-памяти.

overlayfs

При включенном режиме Постоянство типа persistence_root, в ОЗУ загружаются оба раздела homefs и rootfs. Если питание компьютера пропадёт, все изменения исчезнут. Об этом написано тут:
https://download.tuxfamily.org/antix/docs-antiX-23/FAQ/persistence.html#under-toc.

Каковы недостатки режима Постоянство / Стойкость / Persistence в antiX Linux / MX Linux?

Режим root persistence позволяет сохранять изменения в системе и личные настройки и предпочтения пользователя. У режима есть два существенных ограничения. Эти ограничения связаны с тем, что во время работы системы изменения сохраняются в оперативной памяти и будут утеряны, если они специально не будут скопированы обратно в файл rootfs.
1) Если ваш компьютер внезапно отключится или выйдет из строя до того, как изменения будут скопированы обратно, ваши изменения будут утеряны.
2) Другое ограничение заключается в том, что объем новой информации, которую вы можете сохранить, ограничен объемом свободной оперативной памяти.

Динамическое сохранение root сохраняет изменения файловой системы в оперативной памяти (как при загрузке с обычного LiveCD/USB). Программа persist-save должна быть запущена, чтобы скопировать эти изменения в файл rootfs на носитель, чтобы их можно было запомнить при перезагрузках. Используйте persist-config, чтобы установить режим сохранения - либо Автоматический, либо Полуавтоматический или Ручной. При автоматическом режиме программа persist-save автоматически запускается при выключении/перезагрузке.

На флеш - накопителя USB 2.0 время чтения файлов persistence объёмом 200 Мбайт составляет около 15-20 секунд, для 2 ГБ - порядка 1,5 минут. Нужно стараться создавать файлы минимально необходимого объёма - например, 100 МБ. Файл rootfs, который грузится в ОЗУ, разрастается при установке обновлений ОС, но не превышает 2 ГБ. Для работы функции Persistence нужен объём ОЗУ 4-6 ГБ.

Варианты расположения файлов persistence на носителях информации

Вариант 1: Файлы rootfs и homefs находятся рядом с linuxfs в том же каталоге на том же физическом носителе (по умолчанию). Размер rootfs и homefs можно увеличивать, но он не может превосходить размера первого раздела на носителе. Загрузка с "флешки" происходит одинаково и успешно с любых ПК, с различным количеством дисков, т.к. и загрузочный раздел и persistence фактически на одном томе. Объём флешки - 4 ГБ достаточен (можно больше).

Расположение файлов на диске по умолчанию - на первом разделе загрузочного диска, там же где находится linuxfs:
Разбивка диска USB

Файлы Постоянства / Стойкости / Persistence называются rootfs и homefs. Последний создаётся по желанию с помощью утилиты "Настройка постоянства" с фиолетовым значком.
antix-usb2
В rootfs хранятся изменения программ и настроек по отношению к эталонном образу системы linuxfs. В homefs хранятся пользовательские настройки интерфейса и файлы в домашней папке.

Вариант 2: Файл linuxfs находится на основной флешке, в первом разделе. Файлы rootfs и homefs на той же флешке во втором разделе. При запуске указание параметра pdev=/dev/sde2. Нужно указывать реальную букву например /sdb2 или /sdc2 т.к. наименование дисков меняется от ПК к ПК. Это является недостатком №1. Недостаток №2 - достаточно медленная флешка, нет скорости при сохранении и восстановлении состояния. С другой стороны, при использовании с одним и тем же ПК буква буква X в параметре pdev=/dev/sdx2 будет всегда одна и та же.

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

Второй раздел для хранения persistence был создан после сжатия пространства диска с помощью gparted. Затем на него сохранил файлы при помощи ключа см. выше.
antix-usb3

Вариант 3. Файл linuxfs находится на основной флешке, в первом разделе. Файлы rootfs и homefs - на жестком диске /dev/sda1 в папке /antiX . При запуске ОС в параметр ядра дописать pdev=/dev/sda1. Достоинство - очень высокая скорость работы в режимах чтения и записи при вызове persist-save и практически не ограниченный размер rootfs ил homefs. Но нужно переносить данные файлы, например, с того же диска USB flash перед первым запуском ОС. Это можно сделать загрузкой с LiveCD и копированием файлов rootfs ил homefs на жесткий диск. Сам жесткий диск должен быть в исправном состоянии. Файловая системе /dev/sda1, на которую будет производиться сохранение файла roofts, может быть любая - EXT3, EXT4, FAT32 или NTFS.

antix_persistence_ext_disk

Вариант 4. Все три файла на двух разных "флешках" - на первой (загрузочный диск) linuxfs, на второй (данные) rootfs и homefs. Данный вариант актуален, если жесткий диск ПК неисправен или отсутствует, а объём USB диска не позволяет хранить все три файла как в варианте №1.

Замечание: при первом создании rootfs будет запрошено создание паролей для пользователей root и demo.

Настройки и параметры ядра при загрузке antiX / MX Linux

В меню при запуске системы нужно нажать F5, выбрать persist_all (для динамического сохранения в ОЗУ rootfs, но без home) или persist_root (для динамического сохранения в ОЗУ содержимого разделов rootfs и homefs).

Все параметры и ключи для запуска начального окна antiX / MX Linux (включая Persistence Location "pdev=") описаны здесь:
https://antixlinuxfan.miraheze.org/wiki/Table_of_antiX_Boot_Parameters

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

Если Вы забыли пароль пользователя demo, просто удалите rootfs и homefs, запуск системы с Постоянством начнётся как-бы с "чистого листа", будет запрошен новый пароль.

antix_linux_core_startup_parameter

Примечания:



Похожие публикации