CentOS CentOS

CentOS: система не загружается, зависает на GRUB

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

Сообщение значит, что загрузчик не нашёл свои модули. Ниже — причины и порядок действий от простого к сложному.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Из строки grub rescue
  5. Через rescue-режим
  6. Ядро и initramfs

#Что означает ошибка

Сообщение
error: file '/grub2/i386-pc/normal.mod' not found

После обновления ядра или GRUB в CentOS система падает в grub> или grub rescue>, либо показывает error: file '/grub2/i386-pc/normal.mod' not found, unknown filesystem. Причины: повреждена конфигурация, неполная установка пакетов, изменение разметки, проблемы EFI.

Данные целы — нужно восстановить загрузчик.

Потребуется загрузочная ISO CentOS/Alma/Rocky или любой live-образ.

Сообщение значит, что загрузчик не нашёл свои модули. Запустите установочный диск в режиме восстановления и переустановите GRUB.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Повреждён GRUBПосле сбоя.grub2-install.
Изменён дискПорядок.Проверьте BIOS.
Нет раздела /bootНе смонтирован.Смонтируйте.
Ошибки дискаСбои.Проверьте.

#Пошаговое решение

  1. Определите, где остановилась загрузкаНа экране загрузки запишите точный симптом: появляется ли меню GRUB, ошибка grub rescue>, kernel panic, отсутствие файла ядра или пустой экран. От этого зависит порядок восстановления. Не запускайте grub2-install и не меняйте порядок разделов, пока не определено, на каком этапе остановилась загрузка. Если есть предыдущая версия ядра в меню GRUB, сначала попробуйте её и сделайте копию данных.
  2. Загрузитесь с ISO в режим RescueС другого компьютера получите официальный установочный или аварийный ISO, соответствующий выпуску вашей CentOS, запишите его на пустую флешку (она будет очищена) и загрузите компьютер через меню выбора загрузочного устройства. Выберите Troubleshooting → Rescue a CentOS system, если такой пункт есть в конкретном образе. Перед входом в установленную систему проверьте lsblk -f, режим UEFI/BIOS и наличие резервной копии; не соглашайтесь на стирание разделов.
  3. Войдите в chrootЭто действие предназначено только для восстановления незагружающейся системы с Live-USB. Сначала загрузитесь в Live-режим той же архитектуры и проверьте разделы командой lsblk -f; при возможности сохраните образ диска. Для Manjaro штатный sudo manjaro-chroot -a предложит обнаруженную установленную систему, если она найдена. Убедитесь, что выбрана нужная установка, и только после этого выполняйте команды её загрузчика внутри chroot. Для других дистрибутивов порядок отличается.
  4. Переустановите GRUB и пересоздайте конфигgrub2-install, grub2-mkconfig. Изменения могут повлиять на запуск системы. Перед ними запишите исходные значения и подготовьте резервную копию или способ восстановления.
  5. Пересоберите initramfs и проверьте /bootТолько если ошибка связана с загрузкой после обновления ядра: убедитесь, что выбран правильный установленный корневой раздел и сделана резервная копия. В Debian/Ubuntu из восстановленной системы используют sudo update-initramfs -u -k all, а в Fedora/RHEL — sudo dracut --regenerate-all --force. Это не взаимозаменяемые команды; не запускайте их из неподготовленного Live-сеанса. После выполнения проверьте сообщения об ошибках и состояние /boot.
  6. Проверьте версию CentOS до работы с загрузчикомЗагрузитесь в совместимый Rescue, затем посмотрите /etc/redhat-release в установленной системе и схему lsblk -f. На CentOS 7, 8/Stream и UEFI-платформах способы изменения меню и загрузочных записей различаются; полагаться на единственный путь grub2.cfg нельзя. Если система использует BLS, проверьте соответствующие записи отдельно.
  7. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Пример установки загрузчика на /dev/sda небезопасен без проверки BIOS/UEFI и конкретных разделов. Запуск: терминал Linux с правами, указанными в команде. Сначала проверьте имя устройства и целевой путь.
    lsblk -f && findmnt /boot/efi

#Из строки grub rescue

Если вы видите grub rescue>: ls покажет разделы, найдите корневой: ls (hd0,msdos1)/ и т.д., затем set root=(hd0,msdos1), set prefix=(hd0,msdos1)/grub2, insmod normal, normal. Если появилось меню, после загрузки восстановите постоянно: sudo grub2-install /dev/sda и sudo grub2-mkconfig -o /boot/grub2/grub.cfg (для UEFI конфигурация лежит в /boot/efi/EFI/centos/grub.cfg).

#Через rescue-режим

Загрузитесь с установочного ISO → Troubleshooting → Rescue a CentOS system → пункт 1 (Continue). Корень смонтируется в /mnt/sysroot: chroot /mnt/sysroot. BIOS: grub2-install /dev/sda, grub2-mkconfig -o /boot/grub2/grub.cfg. UEFI: переустановите пакеты dnf reinstall grub2-efi-x64 shim-x64 и grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg. Проверьте /etc/fstab и blkid. Выйдите exit и перезагрузитесь.

#Ядро и initramfs

Если GRUB загружается, но ядро не стартует: выберите предыдущее ядро в меню. Пересоберите initramfs: dracut -f /boot/initramfs-$(uname -r).img $(uname -r). Проверьте свободное место на /boot (df -h /boot); удалите старые ядра: dnf remove --oldinstallonly --setopt installonly_limit=2 kernel. Убедитесь, что порядок загрузки в UEFI указывает на centos: efibootmgr -v. Сделайте резервную копию /boot перед правками.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.