Введение / Зачем это нужно
Проблемы с загрузкой — одна из самых частых и критичных ошибок в Linux. Причины могут быть разными: от случайного удаления файлов загрузчика и повреждения файловой системы до конфликтов драйверов после обновления ядра. Этот гайд предоставляет универсальный алгоритм диагностики и восстановления, который работает для большинства популярных дистрибутивов, использующих GRUB 2 и systemd. По итогу вы сможете вернуть систему в рабочее состояние без переустановки.
Требования / Подготовка
Перед началом убедитесь, что у вас есть:
- Другой работающий компьютер для создания загрузочного носителя.
- Пустой USB-накопитель (от 4 ГБ).
- Возможность загрузиться с USB (настройте приоритет загрузки в UEFI/BIOS).
- Базовые навыки работы с терминалом Linux: навигация, редактирование файлов (
nano,vim), выполнение команд сsudo. - Знание пароля root (или возможность использовать
sudo) для целевой системы.
Важно: Если вы не можете определить, какая именно проблема, начните с Шага 1 (Диагностика).
Пошаговая инструкция
Шаг 1: Диагностика этапа загрузки
Первым делом определите, где именно процесс останавливается. Это ключевой шаг.
- Экран POST/BIOS/UEFI пустой или зависает на логотипе производителя? → Проблема с оборудованием (RAM, SSD/HDD) или настройками UEFI/BIOS (Secure Boot, Fast Boot). Попробуйте сбросить настройки BIOS/UEFI до заводских.
- Появляется меню GRUB, но при выборе ядра система зависает или перезагружается? → Проблема с ядром, драйверами (чаще всего видеодрайверы
nvidia,amdgpu) или файловой системой. - Появляется ошибка
grub rescue>илиerror: no such partition? → GRUB не может найти свои модули или конфигурацию. Повреждён раздел или загрузчик. - Видите много текста, заканчивающееся на
Kernel panic - not syncing: VFS: Unable to mount root fsилиFailed to mount /? → Ядро не может смонтировать корневую файловую систему. Причины: неверные параметры ядра (например,root=), повреждение файловой системы, отсутствие драйвера для контроллера диска. - Загрузка останавливается на
Loading basic kernel...илиLoading initial ramdisk...? → Проблема с initramfs (внутренним образом начальной файловой системы). - Система начинает загружаться (видно
systemd-логи), но зависает на определённом юните (например,NetworkManager-wait-online.service)? → Проблема с конфигурацией systemd или конкретным сервисом.
Вывод: Запишите последнее сообщение на экране. Оно — главная подсказка.
Шаг 2: Создание и загрузка с Live-носителя
- На другом компьютере скачайте ISO-образ любого современного дистрибутива (Ubuntu, Fedora, Manjaro).
- С помощью
dd(Linux/macOS) или Rufus (Windows) запишите образ на USB-накопитель.# Пример для Linux (замени /dev/sdX на ваше устройство!) sudo dd if=ubuntu-22.04.iso of=/dev/sdX bs=4M status=progress oflag=sync - Вставьте USB в проблемный компьютер, включите его и нажмите клавишу для выбора загрузочного устройства (F12, F10, Esc — зависит от производителя). Выберите ваш USB-накопитель.
- Загрузитесь в Live-сессию (Try Ubuntu / Start Fedora Live).
Шаг 3: Определение разделов и монтирование
В окне терминала Live-системы выполните:
# Показать все диски и разделы
lsblk -f
Вы увидите список устройств (/dev/sda, /dev/nvme0n1) и их разделов. Вам нужно найти:
- Корневой раздел (обычно с файловой системой
ext4,btrfsилиxfs). - EFI-системный раздел (ESP, обычно
vfat, размер 100-500 МБ, типEFI System). Он есть только при загрузке в режиме UEFI. - Раздел /boot, если он используется отдельно (тоже часто
ext4).
Пример вывода для UEFI-системы:
NAME FSTYPE LABEL UUID MOUNTPOINT
nvme0n1
├─nvme0n1p1 vfat ESP ABCD-1234 # Это ESP
├─nvme0n1p2 ext4 root 1234abcd-5678-ef90-1234-567890abcdef # Это корень
└─nvme0n1p3 swap swap 5678abcd-1234-ef90-5678-90abcdef1234
Монтируем разделы:
# Создайте точку монтирования
sudo mkdir -p /mnt/root
# Смонтируйте корневой раздел (замените /dev/nvme0n1p2 на ваш)
sudo mount /dev/nvme0n1p2 /mnt/root
# Если у вас отдельный /boot (не в ESP), смонтируйте его
# sudo mount /dev/nvme0n1p3 /mnt/root/boot
# Если у вас UEFI, смонтируйте ESP в /mnt/root/boot/efi
sudo mount /dev/nvme0n1p1 /mnt/root/boot/efi
Проверьте монтирование:
lsblk
# Убедитесь, что ваши разделы имеют точку монтирования /mnt/root (и /mnt/root/boot/efi)
Шаг 4: Переход в chroot-окружение
Теперь мы "поставим" корень вашей системы на /mnt/root и переключимся в неё, чтобы выполнять команды от её имени.
# Смонтируйте псевдо-файловые системы, необходимые для работы chroot
sudo mount --bind /dev /mnt/root/dev
sudo mount --bind /proc /mnt/root/proc
sudo mount --bind /sys /mnt/root/sys
sudo mount --bind /run /mnt/root/run # Важно для systemd
# Если у вас UEFI, убедитесь, что /dev/sdX1 (ESP) смонтирован в /mnt/root/boot/efi
# Переключитесь в chroot
sudo chroot /mnt/root
После этого вы окажетесь в терминале вашей восстанавливаемой системы. Приглашение командной строки может измениться (например, с $ на #). Все дальнейшие команды выполняются внутри chroot.
Шаг 5: Переустановка и настройка GRUB
Выбор команд зависит от типа загрузки (BIOS/Legacy или UEFI).
1. Для систем с загрузкой в режиме BIOS/Legacy:
# Установить GRUB на диск (не на раздел!), обычно /dev/sda
grub-install /dev/sda
# Обновить конфигурацию GRUB (сгенерировать новый grub.cfg)
update-grub
Ожидаемый вывод: Installing for i386-pc platform... Installation finished. No error reported.
2. Для систем с загрузкой в режиме UEFI:
# Убедитесь, что ESP смонтирован в /boot/efi (проверьте командой mount)
mount | grep efi
# Установите GRUB для UEFI
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
# Принудительно обновите конфигурацию
update-grub
Ожидаемый вывод: Installing for x86_64-efi platform... Installation finished. No error reported.
3. Дополнительно: восстановление конфигурации GRUB (если файлы есть, но config сломан)
# Пересоздаёт конфиг на основе установленных ядер
grub-mkconfig -o /boot/grub/grub.cfg
Шаг 6: Проверка и восстановление файловых систем
Если проблема была в файловой системе (например, после внезапного отключения питания), выполните проверку.
ВНИМАНИЕ: fsck можно запускать только на размонтированных разделах! В нашем случае раздел смонтирован в /mnt/root. Нужно размонтировать его изнутри chroot, но это невозможно, так как это корень. Поэтому:
- Выйдите из chroot:
exit - Размонтируйте корневой раздел (и другие, если нужно):
sudo umount /mnt/root/boot/efi # если было sudo umount /mnt/root - Запустите
fsckна размонтированном разделе:# Для ext4/ext3/ext2 sudo fsck -y /dev/nvme0n1p2 # Для Btrfs (осторожно, --repair может повредить данные!) # sudo btrfs check --readonly /dev/nvme0n1p2 # Сначала только чтение # Если ошибки, и вы готовы к риску: # sudo btrfs check --repair /dev/nvme0n1p2 # Для XFS (только чтение, для исправления нужно xfs_repair после монтирования с -o recovery) sudo xfs_repair /dev/nvme0n1p2 - После успешной проверки снова смонтируйте разделы и войдите в chroot (Шаги 3 и 4), чтобы продолжить, если нужно.
Шаг 7: Обновление initramfs и ядра
Часто проблема в устаревшем или повреждённом образе initramfs (initial ramdisk). В chroot выполните команду, соответствующую вашему дистрибутиву.
- Debian, Ubuntu и производные:
update-initramfs -u -k all - RHEL, CentOS, Fedora:
dracut --force - Arch Linux, Manjaro:
mkinitcpio -P - openSUSE:
mkinitrd
Что это делает? Создаёт новый образ initramfs для всех установленных ядер. Этот образ содержит драйверы, необходимые для монтирования корневой ФС (например, драйвер NVMe, LVM, DM-RAID).
Шаг 8: (Опционально) Проверка конфигурации ядра
Если проблема проявляется после обновления ядра, попробуйте загрузиться с предыдущей версией ядра из меню GRUB (Advanced options). Если это сработало, вам нужно в chroot:
- Сделать текущее (сломанное) ядро старым по умолчанию или вовсе его удалить.
# Для Debian/Ubuntu: посмотреть список установленных ядер dpkg -l | grep linux-image # Удалить проблемное ядро (например, linux-image-5.15.0-50-generic) apt remove linux-image-5.15.0-50-generic - Обновить GRUB, чтобы он не показывал удалённое ядро:
update-grub
Шаг 9: Выход и перезагрузка
- Выйдите из chroot (если ещё не вышли):
exit. - Размонтируйте все смонтированные файловые системы (в правильном порядке):
sudo umount /mnt/root/boot/efi # если было sudo umount /mnt/root - Перезагрузите компьютер, предварительно извлеките USB-носитель.
sudo reboot
Проверка результата
- Система должна загрузиться доgraphical login manager (GDM, SDDM, LightDM) или текстового логина.
- Если загрузка прошла успешно, немедленно создайте резервную копию важных данных.
- Проверьте журналы systemd на наличие ошибок после загрузки:
journalctl -p 3 -xb # Показать только критические ошибки текущей загрузки - Убедитесь, что все разделы монтируются автоматически (проверьте
/etc/fstab).
Возможные проблемы
- GRUB продолжает выдавать
grub rescue>после переустановки.- Причина: Неправильно указан диск при
grub-installили неверно определён ESP. - Решение: В chroot убедитесь, что ESP смонтирован в
/boot/efi(для UEFI). Для BIOS проверьте, что вы указали весь диск (/dev/sda), а не раздел (/dev/sda1).
- Причина: Неправильно указан диск при
- После восстановления загрузчик GRUB не видит мои ядра (
no such deviceв меню).- Причина: GRUB не может прочитать модули с диска, так как не найден драйвер для вашего контроллера (например,
nvme). - Решение: В chroot переустановите
grubиshim(для UEFI Secure Boot), а также пакетыlinux-imageиgrub-common. Убедитесь, что в/boot/grubесть папкиi386-pcилиx86_64-efiс модулями.
- Причина: GRUB не может прочитать модули с диска, так как не найден драйвер для вашего контроллера (например,
- Система загружается, но сразу падает с
Kernel Panicпосле обновления.- Причина: Сломанное или несовместимое с желепом ядро/драйвер (часто проприетарные драйверы NVIDIA).
- Решение: Загрузитесь с предыдущего ядра из меню GRUB (Advanced options). Войдите в систему и удалите/откатите проблемное ядро или драйвер. Для NVIDIA можно временно загрузиться с параметром ядра
nomodeset.
- Ошибка
Failed to mount /илиVFS: Unable to mount root fs.- Причина: Неверный параметр
root=в конфиге GRUB, повреждение суперблока ФС или отсутствие драйвера контроллера диска в initramfs. - Решение: В chroot проверьте
/etc/default/grub(строкаGRUB_CMDLINE_LINUX). После правки выполнитеupdate-grub. Пересоберите initramfs (Шаг 7). Если проблема в ФС — проверьте еёfsck(Шаг 6).
- Причина: Неверный параметр
- Зависание на
Loading basic kernel...илиLoading initial ramdisk....- Причина: Повреждённый образ initramfs или медленный/неисправный носитель (если загружаете с USB).
- Решение: Пересоберите initramfs (Шаг 7). Попробуйте загрузиться с другого USB-порта (USB 2.0 часто надёжнее). Если проблема в initramfs — проверьте его целостность в
/boot/.
- Не могу смонтировать ESP в
/boot/efi. Ошибкаwrong fs type, bad option, bad superblock.- Причина: ESP отформатирован не в
vfat(FAT32) или повреждён. - Решение: Проверьте тип раздела
fdisk -l. Если это не FAT32, его нужно пересоздать (это удалит загрузчики Windows и других ОС!). Создайте новыйvfatраздел, отформатируйте его (mkfs.vfat) и смонтируйте заново. Затем переустановите GRUB.
- Причина: ESP отформатирован не в
- После всех действий
update-grubне находит ядра.- Причина: Раздел
/boot(или корневой) не смонтирован в chroot, или в нём нет каталога/boot/grub. - Решение: В chroot выполните
ls /boot. Если папка пуста или нетvmlinuz-*, значит, вы смонтировали не тот раздел. Размонтируйте всё, найдите правильный раздел с ядрами (обычно это корень или отдельный/boot) и смонтируйте заново.
- Причина: Раздел
Профилактика проблем с загрузкой
Чтобы минимизировать риски в будущем:
- Не отключайте питание во время обновления системы или записи на диск.
- Регулярно создавайте резервные копии важных данных и снимки системы (если используете Btrfs или ZFS).
- При обновлении ядра (особенно проприетарных драйверов NVIDIA) не удаляйте старое ядро сразу. Оставьте хотя бы одно рабочее предыдущее, чтобы можно было загрузиться через меню GRUB.
- Включайте Secure Boot только если уверены в совместимости драйверов. Он может блокировать загрузку неподписанных модулей.
- Создавайте загрузочный Live-USB заранее и храните его в надёжном месте. Это ваш главный инструмент для восстановления.
Заключение
Восстановление загрузки Linux — это в первую очередь систематическая диагностика. Определите этап, на котором происходит сбой, загрузитесь с Live-носителя, смонтируйте разделы и переустановите GRUB. В большинстве случаев этого достаточно. Если же проблема в файловой системе или initramfs, используйте fsck и пересборку образа. Главное — действовать последовательно и не паниковать. Большинство проблем с загрузкой решаемы без потери данных.