Why Your Linux System Boots into grub rescue> and How to Fix It

Why Your Linux System Boots into grub rescue> and How to Fix It

It can be deeply frustrating when a Linux system fails to boot properly and drops into a grub rescue> prompt. This usually indicates a problem with the GRUB (GRand Unified Bootloader), the software responsible for booting the OS. This guide will help you understand why this happens and how to recover your system—even if you’re using RHEL 7, 8, 9, or 10.

Common Symptoms

You might see one of the following errors on a black-and-white screen:

error: file 'grub/i386-pc/normal.mod' not found
Entering rescue mode...
grub rescue>

Or:

error: file 'grub2/i386-pc/XYZ.mod' not found

Where XYZ could be:

  • normal.mod
  • net.mod
  • boot.mod
  • crypto.mod
  • …and other GRUB modules.

This means GRUB cannot find the module files it needs to load the full boot menu. Your system is now stuck in a minimal shell, waiting for help.

Why This Happens (Root Causes).

  • Accidental Deletion of GRUB Files Sometimes during maintenance or partition changes, files may be deleted from /boot.

  • Filesystem Corruption If /boot is on its own partition and gets corrupted, GRUB will not find what it needs.

  • Wrong Boot Device in BIOS/UEFI If the system tries to boot from the wrong disk, it may not find GRUB or kernel files.

  • Corrupted or Missing /boot Directory Important GRUB files like normal.mod live in /boot/grub2/i386-pc/. If these are missing or corrupted, GRUB will fail

How to Fix It (Quick Recovery Steps)

Step 1: Try Manual Rescue via grub rescue> Prompt

grub rescue> ls (hd0,msdos1)
grub rescue> ls (hd0,msdos1)/boot
grub rescue> set root=(hd0,msdos1)
grub rescue> set prefix=(hd0,msdos1)/boot/grub2
grub rescue> insmod normal
grub rescue> normal

If insmod normal fails, you must use rescue media (like a RHEL installation DVD or USB) to recover.

Booting into Rescue Mode (RHEL 7 and Above)

  1. Boot from a RHEL installation DVD or ISO.
  2. Select “Troubleshooting” > “Rescue a Red Hat Enterprise Linux system”.
  3. Choose Option 1 (Continue) to mount the system at /mnt/sysimage.
  4. Access a shell, then run: chroot /mnt/sysimage

    See the steps in the screenshots:

chroot /mnt/sysimage

Reinstall GRUB Bootloader

Once you’re in chroot, reinstall GRUB with:

grub2-install /dev/sdX   # Replace with your disk, e.g., /dev/sda or /dev/vda

Make sure /boot is mounted before running this. You can check:

ls /boot

Once GRUB is installed successfully, reboot:

exit
exit

The system will likely relabel SELinux contexts during reboot, then boot normally.

Optional Cleanup and Verification

After recovery, verify the presence of required modules:

ls /boot/grub2/i386-pc/normal.mod

If missing, reinstall the grub2-pc-modules package.

Also, ensure /boot contains your kernel and initramfs files:

ls /boot/vmlinuz-* /boot/initramfs-*

Tips to Avoid This in the Future

  • Never delete /boot files manually unless you’re sure.
  • Regularly back up /boot and /etc/fstab.
  • Ensure BIOS is pointing to the correct primary disk.
  • Run dnf update carefully, especially on headless or remote systems.

Conclusion

grub rescue> prompt doesn’t mean your system is dead—it’s asking for your help. With the right tools (like rescue mode and grub2-install), you can bring your server back to life without reinstalling the OS. Bookmark this guide and stay calm the next time it happens.

Posts Carousel

Leave a Comment

Your email address will not be published. Required fields are marked with *

Latest Posts

Most Commented

Featured Videos