Различия
Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
soft:arch-initrd-rootaufs2 [2017/11/20 10:39] |
soft:arch-initrd-rootaufs2 [2023/02/15 15:17] (текущий) sfs [changes[=path]] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== mkinitcpio-rootaufs2 , mkinitcpio-rootofs====== | ||
+ | *[[soft/arch-initrd#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B_%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B8_%D1%8F%D0%B4%D1%80%D0%B0_arch_initrd|Параметры загрузки ядра Arch initrd]] | ||
+ | *Пакет находится в http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/ | ||
+ | *Работает только с [[setups/aufs|aufs]] ядрами. Такие ядра в дистрибутивах [[http://mirror.yandex.ru/mirrors/manjaro/pool/overlay/|manjaro]], ubuntu, magos, porteus, [[http://mirror.yandex.ru/puppyrus/puppyrus-a64/pra64-07/pkg/pra6407extra/|PRA]] | ||
+ | *Лог загрузки /var/log/initrd.log | ||
+ | *Форкнуты [[https://github.com/fandrieu/archlinux-aur/tree/master/mkinitcpio-rootaufs|mkinitcpio-rootaufs]], [[https://aur.archlinux.org/packages/mkinitcpio-loop-subdir/|mkinitcpio-loop-subdir]] и доработаны [[http://forum.puppyrus.org/index.php?action=profile;u=4423|sfs]] в стиле [[http://wiki.puppyrus.org/soft/porteus-initrd|porteus-initrd]] | ||
+ | *Создает корневую aufs файловую систему из каталогов и(или) [[/puppyrus/pr218/pfs3|модулей.pfs]] (squashfs). Т.е. [[setups/full-vs-frugal|frugal и full]] c сохраненкой в раздел, каталог или файл | ||
+ | *[[users/totiks2012/ventoy#rootaufs2_initrd_prar|Загрузка дистрибутивов в Ventoy из iso]] | ||
+ | |||
+ | ====== Параметры загрузки ====== | ||
+ | *Структура каталогов, слои aufs, параметры загрузки : **dir changes extramod load noload ramsize copy2ram rammod debug sort noauto base_only zram** - см. в документации [[http://wiki.puppyrus.org/soft/porteus-initrd|porteus-initrd]] | ||
+ | *noauto реализовано в системе (systemd: mountall.service), а не initrd | ||
+ | |||
+ | ===== break= ===== | ||
+ | |||
+ | Отладочная остановка в процессе загрузки initrd. Аналогично step, но реже | ||
+ | pre|aufs|post - в начале , середине и конце хука | ||
+ | ===== changes[=path] ===== | ||
+ | |||
+ | Включает прочие опции хука rootaufs2 (т.е. без changes или dir= - hideroot и пр. не работают) | ||
+ | rootdir работает, т.к. это хук subdir2 | ||
+ | |||
+ | Добавляет верхний RW слой в AUFS ("сохраненку") | ||
+ | changes - сохранение изменений в tmpfs (RAM) | ||
+ | changes=/dev/sdb1 - в ext* (btrfs или т.п.) раздел hdd. При FULL нельзя сохранять на root= (т.е. на тот же раздел) | ||
+ | changes=/test/ext2.img - в файл на разделе root= (единственный вариант для fat, ntfs и сохранения FULL на root= раздел) | ||
+ | changes=dirname - только для FRUGAL. В каталог, располагающийся на ext* разделе, указанном в root= | ||
+ | Пример : dir=pra changes=pra - в директории pra c модулями дистрибутива создаст каталог changes с сохранением состояния | ||
+ | |||
+ | *Неправильным использованием changes __можно испортить прочие установленные системы__. Например: root=/dev/sda1 changes=/dev/sda2 сделает сохранение в корень sda2. Если на sda2 установлен дистрибутив - он будет испорчен. При отсутствии опыта - экспериментируйте на флэшке с отключенным hdd | ||
+ | *changes=/test/ext2.img может располагаться на любой поддерживаемой файловой системе (ФС): ext2, ext4, btrfs ... | ||
+ | *прочие варианты - только на linux ФС (fat, ntfs не годится) | ||
+ | *changes=/test/ext2.img при использовании rootdir=dirname должен располагаться на root=partition : /dirname/test/ext2.img | ||
+ | *Создание ext2.img : | ||
+ | |||
+ | truncate -s 2G /test/ext2.img && losetup /dev/loop150 /test/ext2.img && mkfs.ext2 /test/ext2.img && losetup -d /dev/loop150 | ||
+ | Примонтировать для редактирования: | ||
+ | mkdir /tmp/img && mount /test/ext2.img /tmp/img | ||
+ | Отмонтировать: | ||
+ | umount /tmp/img | ||
+ | |||
+ | ===== delay= ===== | ||
+ | *С версии 230107 | ||
+ | *Для совместимости с [[soft/porteus-initrd?&#delay|porteus-initrd]] | ||
+ | *Аналогично [[soft/arch-initrd#rootdelay|rootdelay=]] | ||
+ | ===== dir=dirname ===== | ||
+ | |||
+ | Как overlay, но по аналогии с porteus-initrd ( http://wiki.puppyrus.org/soft/porteus-initrd ) | ||
+ | Т.е. загружаются squashfs модули.pfs из dirname/base & dirname/modules | ||
+ | - noload=squashfs1[;squashfs2;squashfsN] | ||
+ | - load=squashfs1[;squashfs2;squashfsN]: загружаются указанные модули из dir/optional/ | ||
+ | roothide & chandes (если не определено) при наличии dir=, добавляются автоматически. | ||
+ | |||
+ | dirname должен располагаться на разделе, указанном в root= | ||
+ | root= можно не указывать. В этом случае будет произведен автопоиск (немного дольше) | ||
+ | В отличии от porteus, модули загружаются только из корней каталогов /base /modules /optional. | ||
+ | Из подкаталогов - нет. | ||
+ | |||
+ | |||
+ | ===== mopt= ===== | ||
+ | *С версии 230107 | ||
+ | *Для совместимости с [[soft/porteus-initrd?&#mopt|porteus-initrd]] | ||
+ | *Аналогично [[soft/arch-initrd#rootdelay|rootflag=]] | ||
+ | ===== noswap ===== | ||
+ | Отключает (комментирует в /etc/fstab) все строки со swap | ||
+ | |||
+ | По умолчанию (без параметра noswap) раскомментирует swap(разделы и файлы) в /etc/fstab | ||
+ | При отсутствии swap в /etc/fstab - добавляет все имеющиеся разделы | ||
+ | |||
+ | *swap разделы полностью автоматически управляются параметром noswap | ||
+ | *swap файл(ы) нужно [[https://wiki.archlinux.org/index.php/Swap#Swap_file|создать и дописать в /etc/fstab]] | ||
+ | |||
+ | ===== overlay=path1[,path2,pathN] ===== | ||
+ | |||
+ | Перечисление. Это был единственный вариант в исходной версии rootaufs | ||
+ | Удобно только для малого количества модулей. | ||
+ | Вместо overlay= рекомендуется использовать dir= | ||
+ | Можно добавлять модули к FULL (не тестировалось) | ||
+ | |||
+ | Отключает (комментирует в /etc/fstab) все строки с " / " | ||
+ | |||
+ | ===== ro;rw ===== | ||
+ | *С версии 230107 можно принудительно не задавать. | ||
+ | *Всегда будет [[soft/arch-initrd#rorw|rw]]. Перемонтировать : | ||
+ | |||
+ | mount -o remount,ro /run/archroot/root_ro | ||
+ | ===== root= ===== | ||
+ | *С версии 230107 можно принудительно не задавать. Добавлен автопоиск. | ||
+ | *Если задать - загрузка будет быстрее | ||
+ | ===== rootdir=dirname ===== | ||
+ | |||
+ | Запуск full дистрибутива, установленного в каталог dirname | ||
+ | ===== roothide ===== | ||
+ | НЕ добавляет реальный корень ФС в нижний слой aufs | ||
+ | По умолчанию, раздел, указанный в root= добавляется | ||
+ | roothide актуально использовать только для frugal установки дистрибутива | ||
+ | |||
+ | ===== step ===== | ||
+ | |||
+ | Загрузка в пошаговом решиме. Дает доступ к командной строке. | ||
+ | По сравнению с debug выводит меньше информации. Работает только в пределах хука rootaufs2 | ||
+ | |||
+ | |||
+ | ====== Варианты установки дистрибутива ====== | ||
+ | |||
+ | ===== full установка ===== | ||
+ | -**root=/dev/sda1** - стандартный запуск дистрибутива из корня раздела sda1. Хуки rootaufs2 subdir2 не используются | ||
+ | -root=/dev/sda1 **rootdir=dirname** - запуск дистрибутива из каталога dirname на разделе sda1. | ||
+ | *Хук rootaufs2 не используeтся. | ||
+ | *sda1 монтирован в /mnt/sda1. | ||
+ | *Позволяет иметь несколько дистрибутивов на одном разделе | ||
+ | -root=/dev/sda1 ro rootdir=dirname **changes** - "заморозка состояния" - запуск дистрибутива в RO (read only) с сохранением изменений в памяти (после перезагрузки не сохраняются). | ||
+ | *sda1 монтирован в /mnt/sda1. | ||
+ | *rootdir= не обязательный параметр. Если rootdir используется - корнем / является /mnt/sda1/dirname. Если не используется - /mnt/sda1 | ||
+ | *Вместо ro можно rw (read-write). Или после загрузки дистрибутива : remountro remountrw | ||
+ | *Позволяет экспериментировать, не затронув установленный дистрибутив. Объединение RO и RW слоя : //[[puppyrus/pr218/pfs3#mkpfs|mkpfs]] RO RW -o RO+RW.pfs// (файлы RW перекроют файлы RO) | ||
+ | -root=/dev/sda1 roothide **changes=/test/ext2.img** - запуск дистрибутива из файла. Файл может располагаться на любой ФС. В том числе на fat и ntfs (т.е., например, на одном разделе вместе с windows). Этот вариант актуален только для fat, ntfs. | ||
+ | |||
+ | ===== frugal установка ===== | ||
+ | *root=/dev/sda1 монтируется в /mnt/sda1 | ||
+ | *changes в /mnt/live/memory/changes | ||
+ | *squashfs в /mnt/live/memory/images | ||
+ | *copy2ram копирует в /mnt/live/memory/changes | ||
+ | *Все файлы, кроме changes=каталог_или_раздел, можно располагать на fat и ntfs | ||
+ | |||
+ | -root=/dev/sda1 **dir=dirname** - включает режим porteus-initrd (работают только перечисленные выше параметры) | ||
+ | *Автоматически включается roothide и changes (т.е. сохранение в память, если не определено дополнительно) | ||
+ | -root=/dev/sda1 roothide changes **overlay=squashfs1,squashfs2** - как в исходной версии rootaufs | ||
+ | *squashfs1 - верхний слой AUFS (перекрывает файлы прочих squashfs) | ||
+ | *changes - перекрывает все слои | ||
+ | *overlay после добавления dir потерял актуальность при большом количестве squashfs | ||
+ | |||
+ | |||
+ | |||
+ | ====== Сравнение mkinitcpio-rootaufs2 с альтернативными initrd ====== | ||
+ | ===== porteus ===== | ||
+ | *http://wiki.puppyrus.org/soft/porteus-initrd | ||
+ | *За счет использования только busybox, скомпиленного статически с uclibc - размер меньше (а значит загружается быстрее) | ||
+ | *full в porteus отсутствует | ||
+ | *frugal в porteus более функционален (from= sgnfile=) | ||
+ | *Для porteus необходимо использование монолитных спец. ядер. С версии 221224 есть [[soft/porteus-initrd?&#аналог_udev|аналог udev]] | ||
+ | *porteus не требует пересборки при смене спец. ядер | ||
+ | *Нет системы пересборки, т.е. добавить LVM или т.п. не получится | ||
+ | |||
+ | ===== UIRD ===== | ||
+ | *http://wiki.puppyrus.org/soft/uird | ||
+ | *http://neobht.github.io/uird/ ; https://habrahabr.ru/post/270337/ | ||
+ | *Функционал больше. Синтаксис сложнее. [[http://forum.puppyrus.org/index.php?topic=19923.msg132460#msg132460|Подробнее]] | ||
+ | ===== archiso ===== | ||
+ | *https://github.com/alfredopalhares/Archiso/blob/master/README ; https://wiki.archlinux.org/index.php/Archiso | ||
+ | *Можно использовать ядра без AUFS | ||
+ | *Прочий функционал меньше. Особенно многомодульный frugal | ||
+ | ====== Примеры использования ====== | ||
+ | |||
+ | ===== <kernel cmd> root=/dev/sda1 ro changes ===== | ||
+ | |||
+ | FULL установка в RO, изменения ("сохраненка") в tmpfs RW | ||
+ | т.е. любые эксперименты без изменения установленного дистрибутива | ||
+ | |||
+ | ===== <kernel cmd> changes=/dev/sdb1 ===== | ||
+ | |||
+ | Сохраненка в пустой (без установленных систем) раздел /dev/sdb1. | ||
+ | Актуально без roothide (когда сохранение в каталог не работает) | ||
+ | |||
+ | ===== <kernel cmd> changes=/test/ext2.img ===== | ||
+ | |||
+ | Сохраненка в файл /test/ext2.img. Файл создается заранее (см. выше) | ||
+ | Актуально только если сохранение в раздел и файл не возможны | ||
+ | ===== <kernel cmd> roothide changes=/test/ext2.img ===== | ||
+ | |||
+ | Вся система в файле /test/ext2.img (RW). Файл создается заранее, монтируется : | ||
+ | sudo mkdir -p /tmp/img && sudo mount -o loop /test/ext2.img /tmp/img | ||
+ | и система устанавливается в него. | ||
+ | Актуально на одном разделе с windows | ||
+ | ===== <kernel cmd> changes=/test/ext2.img overlay=/test/root.squash roothide ===== | ||
+ | |||
+ | Система в /test/root.squash (RO), сохранение в /test/ext2.img (RW) | ||
+ | |||
+ | |||
+ | ===== <kernel cmd> changes=dirname1 dir=dirname2 copy2ram rammode=01;firmware load=nvidia noload=ati ===== | ||
+ | |||
+ | Как в porteus-initrd. | ||
+ | Модули.pfs системы в каталоге "dirname2" RO, сохранение в "dirname2" (fat, ntfs нельзя) | ||
+ | Модули по маске *01* и *firmwar* копируются для ускорения доступа в память | ||
+ | Модули по маске dirmane2/optional/*ati* используются | ||
+ | Модули по маске *ati* не используются | ||
+ | Параметры roothide и chandes автоматически добавляются при использовании параметра dir= | ||
+ | |||
+ | ====== mkinitcpio-rootofs ====== | ||
+ | Находится в пакете mkinitcpio-rootaufs2 | ||
+ | |||
+ | [[https://forum.puppyrus.org/index.php?topic=23646.msg181041#msg181041|Обсуждение]] | ||
+ | |||
+ | Аналогично mkinitcpio-rootaufs2, но | ||
+ | *Вместо AUFS используется OverlayFS | ||
+ | *при котором "горячее", т.е. на загруженной системе, подключение модулей.pfs невозможно | ||
+ | *Большая часть pfs-utils не работает. [[https://forum.puppyrus.org/index.php?topic=23518.0|Альтернатива]] | ||
+ | *Вместо dir= используется diro= | ||
+ | *Вместо changes используется changeso |