Barium:Системы сохранения — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
 
(не показаны 4 промежуточные версии этого же участника)
Строка 18: Строка 18:
 
   - включается параметром '''uird.mode=clean''', в большинстве конфигураций это состояние по умолчанию.
 
   - включается параметром '''uird.mode=clean''', в большинстве конфигураций это состояние по умолчанию.
  
* Если смонтировать туда папку на диске или по сети, не принципиально) или файл-образ , то данные будут сохраняться после перезагрузки. Таких папок может
+
* Если смонтировать туда папку на диске или по сети (не принципиально), или файл-образ , то данные будут сохраняться после перезагрузки. Таких папок может
быть несколько, с разным набором установленного софта и настройками. Такие папки или файлы-образы мы называем - профилями. Такой режим используется в  
+
быть несколько, с разным набором установленного софта и настройками. Эти папки или файлы-образы мы называем - профилями. Такой режим используется в  
MagOS по умолчанию.
+
по умолчанию в MagOS.
 
   - включается '''uird.mode=changes uird.chages=/куда/писать'''  
 
   - включается '''uird.mode=changes uird.chages=/куда/писать'''  
  
 
* В барии для установки на сменные носители используется вариант объединяющий первые два. Во время работы изменения пишутся в папку в ОЗУ, точнее на блочное  
 
* В барии для установки на сменные носители используется вариант объединяющий первые два. Во время работы изменения пишутся в папку в ОЗУ, точнее на блочное  
 
устройство zram со сжатием. При выключении машины эти изменения пакуются в модули. За это отвечает специальный режим.
 
устройство zram со сжатием. При выключении машины эти изменения пакуются в модули. За это отвечает специальный режим.
   - включается  '''uird.mode=toxzm uird.changes=/где/конфиг.cfg uird.shutdown  
+
   - включается  '''uird.mode=toxzm uird.changes=/где/конфиг.cfg uird.shutdown'''
'''
+
 
 
Режим имеет возможность очень тонкой настройки сохранений, можно указать для любого файла или папки нужно ли сохранять и в какой модуль.
 
Режим имеет возможность очень тонкой настройки сохранений, можно указать для любого файла или папки нужно ли сохранять и в какой модуль.
 
Для каждого модуля в конфигурационном файле который указываете в uird.changes для этого режима есть отдельная секция состоящая из нескольких параметров.
 
Для каждого модуля в конфигурационном файле который указываете в uird.changes для этого режима есть отдельная секция состоящая из нескольких параметров.
Строка 50: Строка 50:
 
''Сохраняем пользовательские данные в модуль homes.xzm''
 
''Сохраняем пользовательские данные в модуль homes.xzm''
  
     XZM0=homes.xzm
+
     XZM0="homes.xzm"
     MODE0='copy'
+
     MODE0="copy"
     REBUILD0='no'
+
     REBUILD0="no"
     ADDFILTER0='/home'
+
     ADDFILTER0="/home"
     DROPFILTER0=''
+
     DROPFILTER0=""
 
     SQFSOPT0='-comp lz4 -b 512k'
 
     SQFSOPT0='-comp lz4 -b 512k'
 
     MAXCOPYSIZE0=300
 
     MAXCOPYSIZE0=300
  
''Системные изменения сохраняем в свой модуль для каждой машины.
+
''Системные изменения сохраняем в свой модуль для каждой машины.''
(если имя для модуля не указано, оно генерируется на основе железа)''
+
''(если имя для модуля не указано, оно генерируется на основе железа)''
  
     XZM1='sys.xzm'
+
     XZM1=""
     MODE1='mount'
+
     MODE1="mount"
     REBUILD1='no'
+
     REBUILD1="no"
     ADDFILTER1=''
+
     ADDFILTER1=""
 
     DROPFILTER1="$GARBAGE /home "  
 
     DROPFILTER1="$GARBAGE /home "  
     SQFSOPT1='-comp lz4 -b 512k'
+
     SQFSOPT1="-comp lz4 -b 512k"
     MAXCOPYSIZE1=''
+
     MAXCOPYSIZE1=""
  
 
''Примеры с отключенной пересборкой''
 
''Примеры с отключенной пересборкой''
Строка 75: Строка 75:
 
     REBUILDpam='no'
 
     REBUILDpam='no'
 
     ADDFILTERpam="$PAM"
 
     ADDFILTERpam="$PAM"
     DROPFILTERpam=''
+
     DROPFILTERpam=""
 
     SQFSOPTpam='-comp xz -b 512k'
 
     SQFSOPTpam='-comp xz -b 512k'
     MAXCOPYSIZEpam=''
+
     MAXCOPYSIZEpam=""
  
 
''Контрольные суммы cts''
 
''Контрольные суммы cts''
Строка 85: Строка 85:
 
     REBUILDcts='no'
 
     REBUILDcts='no'
 
     ADDFILTERcts="/etc/cts /etc/prelink.conf.d/cts.conf"
 
     ADDFILTERcts="/etc/cts /etc/prelink.conf.d/cts.conf"
     DROPFILTERcts=''
+
     DROPFILTERcts=""
 
     SQFSOPTcts='-comp xz -b 512k'
 
     SQFSOPTcts='-comp xz -b 512k'
     MAXCOPYSIZEcts=''
+
     MAXCOPYSIZEcts=""
  
 
[[Категория:Barium]]
 
[[Категория:Barium]]

Текущая версия на 19:00, 11 августа 2022

Большая часть особых свойств, что отличает ОС Барий от других дистрибутивов росы, собранных на той же пакетной базе, заложены в UIRD. UIRD это init ram disk (initrd) собираемый с использованием dracut, но кардинально отличающийся сценарием загрузки ОС. Предназначен для загрузки модульных дистрибутивов. В настоящее время используется в MagOS, Барии, ublinux, доступен как дополнительный initrd в дистрибутивах puppyrus.

Именно UIRD отвечает за то как будут сохраняться ваши данные.

Немного теории чтобы дальше было проще.

Модульными дистрибутивами называются сборки где корневая ФС линукс собирается на этапе initrd из слоев. Каждый из слоев содержит свою часть файлов. В качестве слоя может быть все что возможно смонтировать в линукс: раздел, папка, iso, img. Но чаще всего это squashfs архивы это и есть модули. Все эти слои объединяются с пощью aufs/overlayfs в один каталог, который и будет корнем "/" для дальнейшей загрузки дистрибутива. Все эти слои монтируются read only, кроме последнего, верхнего слоя. Еще немного и будет понятного к чему вся эта предыстория. Итак. Система загружена, модули RO. А что будет если добавить в систему файл или изменить существующий? Все эти изменения фиксируются в последнем слое, который мы называем changes. При удалении существующего файла, в changes будет оставлена метка (тень или whiteout), и объединяющая модули ФС будет считать что этого файла нет. А что может быть смонтировано в верхний слой? Опять же все что можно смонтировать в Линукс с возможностью записи.

  • Если смонтировать туда каталог в tmpfs, то все изменения будут храниться в ОЗУ и после выключения исчезнут. Это называем - "чистый режим"
 - включается параметром uird.mode=clean, в большинстве конфигураций это состояние по умолчанию.
  • Если смонтировать туда папку на диске или по сети (не принципиально), или файл-образ , то данные будут сохраняться после перезагрузки. Таких папок может

быть несколько, с разным набором установленного софта и настройками. Эти папки или файлы-образы мы называем - профилями. Такой режим используется в по умолчанию в MagOS.

 - включается uird.mode=changes uird.chages=/куда/писать 
  • В барии для установки на сменные носители используется вариант объединяющий первые два. Во время работы изменения пишутся в папку в ОЗУ, точнее на блочное

устройство zram со сжатием. При выключении машины эти изменения пакуются в модули. За это отвечает специальный режим.

 - включается  uird.mode=toxzm uird.changes=/где/конфиг.cfg uird.shutdown

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

 XZM - имя модуля, если оставить пустым то будет сгенерировано по характеристикам железа, то есть модуль будет иметь свое имя на каждой машине
 MODE - режим подключения модуля при загрузке, варианты: copy, mount, mount+wh.
 REBULID - нужно ли пересобрать модуль при выключении машины, варианты: yes, no, once
 ADDFILTER - фильтры (grep) для получения списка файлов и каталогов, которые нужно сохранить в модуль
 DROPFILTER - фильтры для исключения файлов и каталогов из списка полученного после ADDFILTER
 SQFSOPT - опции для mksquashfs, обычно это алгоритм сжатия и размер блока
 MAXCOPYSIZE - Максимальный размер разрешенный для модуля, после чего параметр MODE модуля будет переведен в 'mount', REBUILD в 'no' и создана новая секция с MODE=copy и REBUILD=yes


Далее на примере конфигурационного файла из бария:

Для удобства списки можно заносить в переменные

   GARBAGE="/var/log /var/spool /var/tmp /var/cache"
   PAM="/etc/pam.d /etc/pam_pkcs11 /etc/pki /xdg/autostart/"

Сохраняем пользовательские данные в модуль homes.xzm

   XZM0="homes.xzm"
   MODE0="copy"
   REBUILD0="no"
   ADDFILTER0="/home"
   DROPFILTER0=""
   SQFSOPT0='-comp lz4 -b 512k'
   MAXCOPYSIZE0=300

Системные изменения сохраняем в свой модуль для каждой машины. (если имя для модуля не указано, оно генерируется на основе железа)

   XZM1=""
   MODE1="mount"
   REBUILD1="no"
   ADDFILTER1=""
   DROPFILTER1="$GARBAGE /home " 
   SQFSOPT1="-comp lz4 -b 512k"
   MAXCOPYSIZE1=""

Примеры с отключенной пересборкой

   XZMpam='pam.xzm'
   MODEpam='copy'
   REBUILDpam='no'
   ADDFILTERpam="$PAM"
   DROPFILTERpam=""
   SQFSOPTpam='-comp xz -b 512k'
   MAXCOPYSIZEpam=""

Контрольные суммы cts

   XZMcts='cts.xzm'
   MODEcts='copy'
   REBUILDcts='no'
   ADDFILTERcts="/etc/cts /etc/prelink.conf.d/cts.conf"
   DROPFILTERcts=""
   SQFSOPTcts='-comp xz -b 512k'
   MAXCOPYSIZEcts=""