mkinitcpio-rootaufs2

Параметры загрузки

  • Структура каталогов, слои aufs, параметры загрузки : dir changes load noload ramsize copy2ram rammod debug sort noauto base_only - см. в документации porteus-initrd
  • noauto реализовано в системе (systemd: mountall.service), а не initrd

changes[=path]

  Включает прочие опции хука rootaufs2 (т.е. без changes или dir= - hideroot и пр. не работают)
  rootdir работает, т.к. это хук subdir2
  
  Добавляет верхний RW слой в AUFS ("сохраненку")
  changes - сохранение изменений в tmpfs (RAM)
  changes=/dev/sdb1 - в ext* (btrfs или т.п.) раздел hdd
  changes=/test/ext2.img - в файл (единственный вариант для fat и ntfs)
  changes=dirname - в каталог, располагающийся на ext* разделе, указанном в root= (работает только вместе с roothide)
  • Неправильным использованием 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/loop0 /test/ext2.img && mkfs.ext2 /test/ext2.img

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=
  В отличии от porteus, модули загружаются только из корней каталогов /base /modules /optional. 
  Из подкаталогов - нет.

noswap

  Отключает (комментирует в /etc/fstab) все строки со swap
  
  По умолчанию (без параметра noswap) раскомментирует swap(разделы и файлы) в /etc/fstab
  При отсутствии swap в /etc/fstab - добавляет все имеющиеся разделы

overlay=path1[,path2,pathN]

  Перечисление. Это был единственный вариант в исходной версии rootaufs
  Удобно только для малого количества модулей. 
  Вместо overlay= рекомендуется использовать dir=
  Можно добавлять модули к FULL (не тестировалось)
  
  Отключает (комментирует в /etc/fstab) все строки с " / "

rootdir=dirname

   Запуск full дистрибутива, установленного в каталог dirname

roothide

 НЕ добавляет реальный корень ФС в нижний слой aufs
 По умолчанию, раздел, указанный в root= добавляется
 roothide актуально использовать только для frugal установки дистрибутива

step

  Загрузка в пошаговом решиме. Дает доступ к командной строке. 
  По сравнению с debug выводит меньше информации. Работает только в пределах хука rootaufs2

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

full установка

  1. root=/dev/sda1 - стандартный запуск дистрибутива из корня раздела sda1. Хуки rootaufs2 subdir2 не используются
  2. root=/dev/sda1 rootdir=dirname - запуск дистрибутива из каталога dirname на разделе sda1.
    • Хук rootaufs2 не используeтся.
    • sda1 монтирован в /mnt/sda1.
    • Позволяет иметь несколько дистрибутивов на одном разделе
  3. root=/dev/sda1 ro rootdir=dirname changes - запуск дистрибутива в RO (read only) с сохранением изменений в памяти (после перезагрузки не сохраняются).
    • sda1 монтирован в /mnt/sda1.
    • Корнем / является /mnt/sda1/dirname.
    • Вместо ro можно rw (read-write). Или после загрузки дистрибутива : remountro remountrw
    • Позволяет экспериментировать, не затронув установленный дистрибутив
  4. 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
  1. root=/dev/sda1 dir=dirname - включает режим porteus-initrd (работают только перечисленные выше параметры)
    • Автоматически включается roothide и changes (т.е. сохранение в память, если не определено дополнительно)
  2. root=/dev/sda1 roothide changes overlay=squashfs1,squashfs2 - как в исходной версии rootaufs
    • squashfs1 - верхний слой AUFS (перекрывает файлы прочих squashfs)
    • changes - перекрывает все слои
    • overlay после добавления dir потерял актуальность при большом количестве squashfs

Сравнение mkinitcpio-rootaufs2 с альтернативными initrd

porteus

  • full в porteus отсутствует
  • frugal в porteus более функционален
  • Для porteus необходимо использование спец. ядер
  • porteus не требует пересборки при смене спец. ядер

UIRD

archiso

Примеры использования

<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=
Печать/экспорт