Is your Linux system stuck at a grub rescue> prompt, or does it jump straight into Windows after a system update or a boot configuration change? Don’t panic — this can usually be fixed without a full reinstall.

The GRUB bootloader, which is responsible for launching your operating system, may be missing, corrupted, or misconfigured. This guide walks you through restoring GRUB and regaining access to your Linux installation so your system boots normally again.

Why Boot Issues Happen

GRUB (Grand Unified Bootloader) is the program that loads your operating system when you power on your computer. It presents a menu where you select which OS to boot. When GRUB fails, you may end up at a rescue prompt or boot directly into Windows.

Common causes include:

  • Failed system updates — Kernel or bootloader updates can sometimes break GRUB.
  • Dual-boot changes — Installing or repairing Windows can overwrite GRUB.
  • BIOS/UEFI changes — Firmware settings may interfere with GRUB.
  • Disk errors — File system or hardware issues can corrupt boot files.

The good news is that GRUB can usually be repaired.

READ 👉  How to Fix USB Devices Not Recognized on Windows 11

Method 1: Restoring GRUB Using a Live Linux USB

This is the most reliable method.

Step 1: Prepare a Live USB

  • Download a Live ISO of your distribution (Ubuntu, Fedora, etc.).
  • Create a bootable USB using Rufus (Windows) or BalenaEtcher (cross-platform).

Step 2: Boot from the Live USB

  • Insert the USB.
  • Press F12, Esc, or Del at startup to open the boot menu.
  • Select the USB and choose Try Linux / Live mode.

Step 3: Identify Partitions

Open a terminal and run:

lsblk -f
# or
fdisk -l

Identify:

  • Root partition (e.g., /dev/sda2, /dev/nvme0n1p7)
  • Boot partition (/boot if separate)
  • EFI System Partition (/boot/efi)

Step 4: Mount Your System

Example:

sudo su
mount /dev/nvme0n1p7 /mnt
mount /dev/nvme0n1p6 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi

For Btrfs

mount -o subvol=@ /dev/nvme0n1p7 /mnt
mount /dev/nvme0n1p6 /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot/efi

For LUKS

cryptsetup luksOpen /dev/sda2 cryptlvm
mount /dev/mapper/cryptlvm /mnt

Step 5: Bind System Directories

mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount --bind /run /mnt/run
mount --bind /sys/firmware/efi/efivars /mnt/sys/firmware/efi/efivars

Step 6: Chroot

chroot /mnt

Step 7: Reinstall GRUB

Ubuntu/Debian

apt update
apt install --reinstall grub-efi-amd64
update-grub

Fedora/RHEL

dnf reinstall grub2-efi grub2-efi-modules shim-*-signed
grub2-mkconfig -o /boot/grub2/grub.cfg

Step 8: Register Boot Entry (if needed)

efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Linux" -l '\EFI\fedora\shimx64.efi'

Step 9: Exit and Reboot

exit
umount /mnt/boot/efi
umount /mnt/boot
umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
umount /mnt/run
umount /mnt
reboot

Remove the USB when prompted.

Method 2: Using Boot Repair (Ubuntu-based Systems)

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt update
sudo apt install boot-repair
boot-repair

Select Recommended repair, wait, then reboot.

Method 3: Recovery from grub rescue> Prompt

ls
set root=(hd0,gpt2)
set prefix=(hd0,gpt2)/boot/grub
insmod normal
normal

Once booted, reinstall GRUB permanently.

Additional Tips

  • Disable Windows Fast Startup
  • Check Secure Boot
  • Repair EFI partition if corrupted: fsck.vfat
  • Double-check device names
  • For systemd-boot: bootctl install

Conclusion

A broken GRUB installation is annoying, but rarely fatal. With a Live USB and a few commands, you can restore your system and avoid reinstalling Linux. Always verify your partitions, proceed carefully, and consult your distro’s documentation when in doubt.

READ 👉  CSMWrap: How to Enable Legacy BIOS Support on Modern UEFI PCs
Did you enjoy this article? Feel free to share it on social media and subscribe to our newsletter so you never miss a post!

And if you'd like to go a step further in supporting us, you can treat us to a virtual coffee ☕️. Thank you for your support ❤️!
Buy Me a Coffee

Categorized in: