Содержание

Arch Linux initrd

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

Общие параметры загрузки ядра

Наиболее важные:

root=

Обязательно указать : root=раздел_c_файлами_системы . Примеры:

root=/dev/sda1                                                # /dev node
root=LABEL=CorsairF80                                         # label
root=UUID=ea1c4959-406c-45d0-a144-912f4e86b207                # UUID
root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660            # GPT partition UUID

Определять uuid загрузочного раздела по файлу дистрибутива на нем

ro ; rw

Тип монтирование корня файловой системы только чтение. Перемонтировать в rw:

sudo mount -w -n -o remount /

rootdelay=

Устанавливает задержку (в секундах) перед попыткой монтировать корневую файловую систему root=. Начинайте с rootdelay=5

Необходимо на старом железе при ошибке загрузки:

mount: /mnt/home: special device /dev/sdb1 does not exist

rootflag=

Параметры монтирования раздела, указанного в root=

Для fat используйте:

rootflags=umask=0,check=s,quiet,utf8=true

init=

init=/lib/systemd/systemd - прямое указание (если не находит или несколько)

quiet

Минимум вывода в консоль

net.ifnames=

Чтобы любой ethernet интерфейс имел имя eth0, а wifi - wlan0 : net.ifnames=0 biosdevname=0

break= ; disablehooks= ; earlymodules=

https://wiki.archlinux.org/index.php/Mkinitcpio#init_from_base_hook

Сборка initrd

Загрузка с iso

MODULES="iso9660"

Загрузка с ntfs

Актуально только для FRUGAL с сохранением в модуль или файл

MODULES="fuse"
BINARIES="ntfs-3g"

Без этого корневой ntfs раздел будет примонтирован только на чтение , без возможности перемонтировать (если не используется ntfs3)

autodetect - универсальный initrd или только под свое железо

HOOKS="autodetect block"
HOOKS="block autodetect"

Спец. ядро, как в PRA, porteus

MODULES=""
BINARIES="ntfs-3g"
HOOKS="base  autodetect filesystems keyboard fsck rootaufs2 subdir2"

Упрощенный вариант сборки для любого линукса

Собрать LF-initrd (не в Arch) или UIRD - не самая простая задача. Можно собрать только initrd с нужными модулями ядра (стандартным для Вашего линукса способом) для Вашего ядра

cd /lib/modules/версия_ядра && grep aufs modules.builtin modules.dep
initrd /путь/initrd_с_модулями_ядра /путь/uird1811.xz

Hooks - модули Arch Linux initrd

mkinitcpio-rootaufs2

mkinitcpio-rootofs

archiso

mkinitcpio-loop-subdir

truncate -s 2G /test/ext2.img && losetup /dev/loop0 /test/ext2.img && mkfs.ext2 /test/ext2.img

mkinitcpio-dir

https://aur.archlinux.org/packages/mkinitcpio-dir

Аналогично mkinitcpio-loop-subdir, но без aufs и overlayfs фич

mkinitcpio-overlayfs , mkinitcpio-lf-overlayfs , mkinitcpio-lf-aufs

«Заморозка» состояния системы. Все изменения в tmpfs или в отдельном каталоге на диске (если их скопировать в корень - получим новое состояние системы).

Удобно использовать для

liveroot ; rootmp-hook - overlayfs [+zram] поверх корня системы

mkinitcpio-squashfs , mkinitcpio-squashfs2

В mkinitcpio-squashfs2 вместо wget и find - busybox

mkinitcpio-lf-shutdown

break=down

  Отладочная остановка в процессе выключения системы для проверки, что все корректно отмонтировалось