Это старая версия документа.
Содержание
mkinitcpio-rootaufs2 , mkinitcpio-rootofs
- Пакет находится в http://mirror.yandex.ru/puppyrus/2a-aarch64/pkg-repo/2a-any/
- Лог загрузки /var/log/initrd.log
- Создает корневую aufs файловую систему из каталогов и(или) модулей.pfs (squashfs). Т.е. frugal и full c сохраненкой в раздел, каталог или файл
Параметры загрузки
- Структура каталогов, слои aufs, параметры загрузки : dir changes load noload ramsize copy2ram rammod debug sort noauto base_only - см. в документации 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/loop40 /test/ext2.img && mkfs.ext2 /test/ext2.img && losetup -d /dev/loop40
Примонтировать для редактирования:
mkdir /tmp/img && mount /test/ext2.img /tmp/img
Отмонтировать:
umount /tmp/img
delay=
- Для совместимости с porteus-initrd
- Аналогично 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. Из подкаталогов - нет.
noswap
Отключает (комментирует в /etc/fstab) все строки со swap По умолчанию (без параметра noswap) раскомментирует swap(разделы и файлы) в /etc/fstab При отсутствии swap в /etc/fstab - добавляет все имеющиеся разделы
- swap разделы полностью автоматически управляются параметром noswap
- swap файл(ы) нужно создать и дописать в /etc/fstab
overlay=path1[,path2,pathN]
Перечисление. Это был единственный вариант в исходной версии rootaufs Удобно только для малого количества модулей. Вместо overlay= рекомендуется использовать dir= Можно добавлять модули к FULL (не тестировалось) Отключает (комментирует в /etc/fstab) все строки с " / "
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 слоя : 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
- За счет использования только busybox, скомпиленного статически с uclibc - размер меньше (а значит загружается быстрее)
- full в porteus отсутствует
- frugal в porteus более функционален (from= sgnfile=)
- Для porteus необходимо использование монолитных спец. ядер. С версии 221224 есть аналог udev
- porteus не требует пересборки при смене спец. ядер
- Нет системы пересборки, т.е. добавить LVM или т.п. не получится
UIRD
- Функционал больше. Синтаксис сложнее. Подробнее
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
Аналогично mkinitcpio-rootaufs2, но
- Вместо AUFS используется OverlayFS
- при котором «горячее», т.е. на загруженной системе, подключение модулей.pfs невозможно
- Большая часть pfs-utils не работает. Альтернатива
- Вместо dir= используется diro=
- Вместо changes используется changeso