Initrd UIRD (Unified Init Ram Disk system). Примены использования

Официальная документация

Сборка в разных дистрибутивах

Arch

Debian

Роса

Принципы работы UIRD

Указываем:

  • Где? uird.from
  • С чем сделать что? Фильтры под режим монтирования: uird.ro, uird.rw
  • С чем сделать что? Фильтры режима копирования: uird.cp
  • Что оставить и что убрать? Фильтры второго уровня : uird.load, uird.noload
  • Не забываем про дефолтные параметры из uird_configs/basecfg.ini.
    • += добавить к значению из basecfg.ini. Пример uird.from+=
    • =»» обнулить значению из basecfg.ini. Именно кавычки »», а не пустота.

Варианты установки дистрибутива

Примеры приведены для дефолтного конфига uird_configs/basecfg.ini

uird.config=MagOS.ini
uird.ramsize=70%
uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs
uird.rw=*.rwm;*.rwm.enc
uird.cp=*.xzm.cp,*/rootcopy
uird.load=/base/,/modules/,rootcopy
uird.noload=/MagOS-Data/changes,/MagOS-Data/homes
uird.from=/MagOS;/MagOS-Data
uird.find_params=-maxdepth_3
uird.mode=clean
uird.changes=/MagOS-Data/changes
uird.syscp=/livekitlib::/usr/lib/magos/scripts;/uird.scan::/usr/lib/magos/scripts;/liblinuxlive::/mnt/live

full установка

  1. uird.from=/dev/sda1 uird.ro=*layer-base/0 uird.load=* - запуск дистрибутива из корня sda1.
    • layer-base/0 - здесь маска для точки монтирования источника из uird.from
    • То же с автопоиском uird.sсan=legacy
  2. uird.from=/dev/sda1 uird.ro=*0/dirname uird.load=dirname - запуск дистрибутива из каталога dirname на sda1 в RO (read only) с сохранением изменений в памяти (после перезагрузки не сохраняются). Позволяет иметь несколько дистрибутивов на одном разделе
    • uird.ro=*0/dirname - 0 это точка монтирования первого источника
    • Указав uird.mode=changes uird.changes= можно использовать другие типы сохранения
    • Позволяет экспериментировать, не затронув установленный дистрибутив
  3. uird.from=/boot uird.mode=changes uird.changes=/dev/sda1 - близкий к стандартному запуск дистрибутива из корня раздела sda1.
    • uird.from=/boot - любой каталог без модулей
    • uird.from=pra@ - вместо метки можно /dev/sda1 или UUID
  4. uird.from=pra@ uird.ro=*0/full uird.load=full uird.mode=changes uird.changes=pra@/changes - запуск с раздела с меткой pra из каталога full с сохранением в каталог changes на этом же разделе
  5. uird.from=/dev/sda1/dir uird.load=/base.img uird.ro=*0/base.img запуск дистрибутива из файла /dev/sda1/dir/base.img. Файл может распологаться на любой ФС. В том числе на fat и ntfs (т.е., например, на одном разделе вместе с windows). Этот вариант актуален только для fat, ntfs.

frugal установка

  • changes в /mnt/live/memory/changes
  • squashfs в /mnt/live/memory/images
  • copy2ram копирует в /memory/copy2ram ($SYSMNT/copy2ram. /memory можно заменить в initvars внутри uird).
  • Все файлы, кроме changes=каталог_или_раздел, можно располагать на fat и ntfs
  1. uird.from=/dir uird.load+=/optional/module1.pfs;/optional/module2.pfs uird.copy2ram=001,070 - эмуляция pra-porteus: модули из dir/base и dir/modules + перечисленные из dir/optional + копирование поверх содержимого /rootcopy.
    • Модули по маске uird.copy2ram=001,070 копируются в память
    • Слои по алфавиту dir/dir/*.pfs (т.е. сортировка по dir/*.pfs ,вместе с каталогом). z - верхний
    • Сохраненка в памяти. Прочие варианты сохранения
    • Чтобы модули 08* 09* были в верхнем слое, как в pra-porteus - переложите их в /optional и добавьте в конец uird.load+=0[89]-. Чтобы такое расположение модулей правильно заработало c pra-porteus : load=08;09
    • Можно дополнительно подключить домашний каталог, swap, монтировать произвольный каталог
  2. uird.from=LABEL@/ISO/R81.iso;/LiveOS/squashfs.img;LABEL@/MagOS-Multi/ uird.load=* uird.noload=»» uird.ro=*.xzm,*/*fs.img uird.config=MagOS-Full.in - загрузка xzm и ext3fs.img из squashfs.img, находящегося в R81.iso (Роса)

Загрузка по сети

  • Скорость работы системы будет пропорцианальна скорости сети. Обойти это можно использованием uird.copy2ram (потребуется много RAM)
  • Аналогична примерам выше. В uird.from нужно указывать сетевые источники
  • Авторизация добавляется через uird.netfsopt[+]=. В коде UIRD подставлется так:
OPTIONS="-o $(cmdline_value $UIRD_NETFSOPT)"
$BIN_SSHFS ${1/ssh:??/} $2 $OPTIONS
Печать/экспорт