Initramfs (initial RAM file system) — это временная файловая система, которая загружается в оперативную память (RAM) вместе с ядром Linux на начальном этапе загрузки системы.
Зачем нужен initramfs?
Когда компьютер включается, ядро должно получить доступ к настоящей корневой файловой системе (там, где лежат ваши программы и настройки, например /, /home, /usr). Но чтобы прочитать эту корневую файловую систему, ядру часто нужны драйверы (например, для жесткого диска NVMe, RAID-массива, LVM или шифрования). Возникает парадокс: драйверы лежат на корневой файловой системе, но чтобы их прочитать, ядру нужно уже знать, как работать с диском.
Initramfs решает эту проблему: она содержит минимальный набор утилит, драйверов и скриптов, который ядро может запустить сразу. Эта мини-система обнаруживает диски, загружает нужные модули, открывает шифрование (спрашивая пароль), находит настоящую корневую файловую систему и монтирует её. После этого initramfs передаёт управление реальному процессу init (например, systemd), а сама выгружается из памяти.
(initramfs)
Если система не может найти корневой раздел, вы увидите аварию initramfs и приглашение командной строки (initramfs) для ручного восстановления.
Попадание в аварийную оболочку (initramfs) — пугающая, но часто разрешимая ситуация. Это минимальный BusyBox-шелл, где крайне мало команд, но есть всё необходимое для диагностики и ручного запуска системы. Обычно если всё сломано, ваши данные на диске почти наверняка целы — просто не смонтировался корень.
И вот я что-то потыкал, что-то восстановил, нужно перезагрузить систему. Пишу reboot, — не работает. А вот команда, которая точно позволит отправить сервер в перезагрузку из initramfs:
echo b > /proc/sysrq-trigger