Перейти к основному содержанию

Как перезагрузиться из initramfs?

Linux

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

Теги

 

Похожие материалы

Перемещение базы данных MariaDB 10 в Ubuntu 20.04

База данных MariaDB 10 при установке на Ubuntu по умолчанию пишется в папку /var/lib/mysql. Со временем база растёт и поднимается вопрос переноса её на другой раздел диска. Перенесём базу данных в /opt/mysql/mysql.

Теги