Вики / Загрузка
Загрузка системы и GRUB
Этапы загрузки, GRUB, цели systemd, аварийный режим восстановления.
Упрощённая цепочка загрузки:
BIOS/UEFI → GRUB (загрузчик) → ядро + initramfs → systemd (PID 1) → цель (target)
systemd доводит систему до цели (multi-user.target для сервера). Понимание
этапов помогает чинить «не загружается».
Конфиг — /etc/default/grub (не редактируй сгенерированный grub.cfg напрямую):
sudo nano /etc/default/grub # GRUB_TIMEOUT, GRUB_CMDLINE_LINUX, GRUB_DEFAULT
sudo update-grub # пересобрать grub.cfg после правок (= grub-mkconfig)
sudo grub-install /dev/sda # переустановить загрузчик (после замены диска, BIOS)
Частые параметры ядра в GRUB_CMDLINE_LINUX: quiet splash (тихо), убрать их —
видеть загрузку; nomodeset (проблемы видео); systemd.unit=rescue.target;
fsck.mode=force (проверить ФС). В меню GRUB клавиша e — отредактировать строку
ядра разово (например, добавить single или init=/bin/bash).
systemctl get-default # текущая цель по умолчанию
sudo systemctl set-default multi-user.target # сервер без GUI
systemctl isolate rescue.target # однопользовательский (минимум служб)
systemctl isolate emergency.target # ещё раньше (почти ничего не поднято)
systemd-analyze # сколько занял boot (firmware/loader/kernel/userspace)
systemd-analyze blame # что тормозит загрузку (по юнитам)
systemd-analyze critical-chain # критическая цепочка зависимостей
systemd-analyze plot > boot.svg # диаграмма загрузки
| Цель | Что |
|---|---|
multi-user.target |
сервер без графики (норма) |
graphical.target |
+ GUI |
rescue.target |
single-user, корень смонтирован, минимум служб |
emergency.target |
только корень (ro), почти ничего |
Система не загружается до конца
- В GRUB выбери предыдущее ядро (Advanced) — грузится → проблема в новом ядре.
recovery mode→ root shell, чини (fstab, права, конфиги).- После входа —
journalctl -b -1(журнал прошлой неудачной загрузки).
Завис на загрузке из-за fstab
Ошибка в /etc/fstab роняет в emergency. Загрузись в recovery, mount -o remount,rw /,
исправь fstab, проверь mount -a (см. mount).
Долгая загрузка
systemd-analyze blame + critical-chain — какие юниты тормозят (часто зависший
сетевой/монтирование с таймаутом, NetworkManager-wait-online).
Забыл root-пароль
GRUB → e → добавить init=/bin/bash к строке ядра → загрузиться →
mount -o remount,rw / → passwd → exec /sbin/init или ребут.
initramfs prompt после обновления ядра
Не найден корень/модуль. ls, найди раздел, exit для продолжения; затем
sudo update-initramfs -u из рабочей системы.
sudo update-grub # после правки /etc/default/grub
sudo grub-install /dev/sda # переустановить загрузчик
systemctl get-default ; sudo systemctl set-default multi-user.target
systemctl isolate rescue.target # аварийный режим
systemd-analyze blame # тайминги загрузки
journalctl -b -1 # журнал прошлой загрузки
См. также
- Ядро и модули (lsmod, modprobe, dmesg) — Загрузка
- systemd — Службы и systemd
- Монтирование и fstab — Хранилище и ФС