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