====== Initrd UIRD (Unified Init Ram Disk system). Примены использования ====== [[http://forum.puppyrus.org/index.php?topic=16558.0|Обсуждение]] ====== Официальная документация ====== *https://github.com/neobht/uird#uird---unified-init-ram-disk-system *[[http://forum.puppyrus.org/index.php?topic=22543.0|PRA Roll + UIRD]] *https://github.com/neobht/uird/tree/master/i18n/usr/share/uird.help/ru_RU.UTF-8 *http://neobht.github.io/uird/ *https://habrahabr.ru/post/270337/ ====== Сборка в разных дистрибутивах ====== ===== Arch ===== http://forum.puppyrus.org/index.php?topic=20164.0 ===== Debian ===== ===== Роса ===== ====== Принципы работы UIRD ====== Указываем: *Где? [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.from.help|uird.from]] *С чем сделать что? Фильтры под режим монтирования: [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.ro.help|uird.ro]], [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.rw.help|uird.rw]] *С чем сделать что? Фильтры режима копирования: [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.cp.help|uird.cp]] *Что оставить и что убрать? Фильтры второго уровня : [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.load.help|uird.load]], [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.noload.help|uird.noload]] *Не забываем про дефолтные параметры из uird_configs/basecfg.ini. *+= добавить к значению из basecfg.ini. Пример uird.from+= *Если параметр перенесен из ini в параметры ядра : uird.load=/base/,/modules/,rootcopy uird.load+=123 - работать не будет *Правильно : uird.load=/base/,/modules/,rootcopy;123 *="" обнулить значению из 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 установка ===== - uird.from=/dev/sda1 uird.ro=*layer-base/0 uird.load=* - запуск дистрибутива из корня sda1. *layer-base/0 - здесь маска для точки монтирования источника из uird.from *То же с автопоиском [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.scan.help|uird.sсan=legacy]] - uird.from=/dev/sda1/dirname uird.ro=*0/dirname uird.load=* - запуск дистрибутива [[http://forum.puppyrus.org/index.php?topic=20164.msg151429#msg151429|из каталога dirname]] на sda1 в RO (read only) с сохранением изменений в памяти (после перезагрузки не сохраняются). Позволяет иметь несколько дистрибутивов на одном разделе *uird.ro=*0/dirname - 0 это точка монтирования первого источника *Указав uird.mode=changes [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.changes.help|uird.changes=]] (можно использовать другие типы сохранения) *uird.changes=/dev/sda1/dirname/changes - в каталог changes (который надо заранее создать) *Позволяет экспериментировать, не затронув установленный дистрибутив - uird.from=/boot uird.mode=changes uird.changes=/dev/sda1 - близкий к стандартному запуск дистрибутива из корня раздела sda1. *uird.from=/boot - любой каталог без модулей *[[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.from.help|uird.from]]=pra@ - вместо метки можно /dev/sda1 или UUID - uird.from=pra@ uird.ro=*0/full uird.load=full uird.mode=changes uird.changes=pra@/changes - запуск с раздела с меткой pra из каталога full с сохранением в каталог changes на этом же разделе -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 -uird.from=/dir uird.load+=/optional/module1.pfs;/optional/module2.pfs uird.copy2ram=001,070 - эмуляция pra-porteus: модули из dir/base и dir/modules + перечисленные из dir/optional + копирование поверх содержимого /rootcopy. *Модули по маске [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.copy2ram.help|uird.copy2ram=]]001,070 копируются в память *Слои по алфавиту dir/dir/*.pfs (т.е. сортировка по dir/*.pfs ,вместе с каталогом). z - верхний *Сохраненка в памяти. [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.changes.help|Прочие варианты сохранения]] *Чтобы модули 08* 09* были в верхнем слое, как в pra-porteus - переложите их в /optional и добавьте в конец uird.load+=0[89]-. Чтобы такое расположение модулей правильно заработало c pra-porteus : load=08;09 *Можно дополнительно подключить [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.home.help|домашний каталог]], [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.swap.help|swap]], монтировать [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.mounts.help|произвольный каталог]] - 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) *Аналогична примерам выше. В [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.from.help|uird.from]] нужно указывать сетевые источники *Авторизация добавляется через [[https://github.com/neobht/uird/blob/master/initrd/usr/share/uird.help/ru_RU.UTF-8/uird.netfsopt.help|uird.netfsopt]][+]=. В коде UIRD подставлется так: OPTIONS="-o $(cmdline_value $UIRD_NETFSOPT)" $BIN_SSHFS ${1/ssh:??/} $2 $OPTIONS ===== Загрузка из iso в grub2 ===== menuentry "LFD10 iso uird" { set iso=/lfd10-ventoy-230105-x86_64.iso set d=lfd10 set k=6.0.0-pf2-pts+ search --set=root --no-floppy --file ${iso} loopback loop $iso set v=uird.mounts=$iso linux (loop)/${dk}/vmlinuz-${k} ${f} ${u} $v uird.from=$d uird.shutdown uird.preinit initrd (loop)/${dk}/initrd-uu3uxx-03.xz }