Stuck at GRUB? Recovery Mode Won't Load – Fix It
When GRUB shows but recovery mode fails to boot, you're not bricked. Here's how to get in – from a quick edit to a chroot repair.
Quick Fix: Edit the Recovery Entry in GRUB (30 seconds)
Sometimes the recovery mode just needs a tiny nudge. When you see the GRUB menu, highlight the recovery mode entry (usually says “Advanced options” or “recovery mode”). Don’t press Enter yet. Press e to edit the boot parameters.
Look for the line starting with linux. It has a bunch of kernel options. At the end, you’ll see something like ro recovery nomodeset or just ro single. If your screen goes black or hangs, the recovery mode is hitting a graphics issue or a root delay.
Change ro to rw – this mounts the root filesystem as read-write instead of read-only. Also add break=mount after rw. So the line looks like this:
linux /vmlinuz-... root=/dev/sda1 rw break=mount quiet
Press Ctrl+X or F10 to boot. If it works, you’ll drop to a shell right after mounting. From there, you can run fsck /dev/sda1 or fix GRUB with grub-install /dev/sda.
I had a client last month whose Ubuntu 22.04 recovery mode just sat at a black screen. This single edit got them in. The real fix? Their disk had a corrupt superblock, but at least they could run fsck afterward.
Moderate Fix: Add Kernel Parameters to Bypass the Hang (5 minutes)
If the quick edit didn’t work, the hang is probably deeper – maybe a driver or service that fails during recovery. Try adding more kernel parameters.
Boot to GRUB again, highlight the recovery entry, press e. Find the linux line again. Add these after rw:
systemd.unit=rescue.target
Or if you want to skip all services entirely:
systemd.unit=emergency.target
Emergency target drops you to a bare root shell with almost nothing running. Rescue target starts a minimal system. Both are more reliable than the default recovery mode which tries to start network and other services.
Also add nomodeset if you suspect a graphics driver hang. And acpi=off if it’s an old machine that locks up during power management.
Here’s a full example that works on most systems:
linux /vmlinuz-... root=/dev/sda1 rw nomodeset acpi=off systemd.unit=emergency.target
Boot with Ctrl+X. You’ll get a shell prompt. Now you can check logs with journalctl -xb to see what actually failed. Common culprits: a bad fstab entry, a broken initramfs, or a kernel module that panics.
Pro tip: If you get a kernel panic instead of a shell, the issue is likely the kernel itself. Try booting an older kernel from the GRUB advanced menu – the recovery mode for that older kernel might work.
Advanced Fix: Chroot from a Live USB and Repair GRUB (15+ minutes)
When nothing above works – not even emergency.target – your GRUB config or initramfs might be truly broken. Time to use a live USB. Boot from any Linux live USB (Ubuntu, Debian, whatever). Open a terminal.
First, find your root partition. Run lsblk or fdisk -l. It’s usually /dev/sda1 or /dev/nvme0n1p1. Mount it:
sudo mount /dev/sda1 /mnt
Mount the other important directories:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
If you have a separate /boot partition, mount that too on /mnt/boot.
Now chroot in:
sudo chroot /mnt
Inside the chroot, you have full control. Reinstall GRUB and regenerate initramfs:
grub-install /dev/sda
update-grub
update-initramfs -u -k all
For Ubuntu or Debian, the update-grub command rebuilds the GRUB config from scratch. That usually fixes corrupted entries. The update-initramfs rebuilds the initial ramdisk, which can fix kernel module loading issues.
If you had a bad fstab entry (e.g., wrong UUID), fix it now with nano /etc/fstab. Comment out any suspect partitions by adding a # at the start of the line. Then reboot.
Real story: A sysadmin called me last year – their Debian 11 server wouldn’t boot into any recovery mode. Turned out a systemd update broke the initramfs. A simple update-initramfs -u from a live USB fixed it in 10 minutes. They’d spent two days trying random GRUB edits.
Prevention: Keep a Bootable USB Handy
This whole mess happens because GRUB’s recovery mode is fragile. It tries too much stuff and fails silently. My advice: always have a live USB with your distro. It’s your emergency key. Once you’re back in, run dpkg --configure -a (if Debian/Ubuntu) to fix any half-installed packages that might break boot again.
And if your disk is old, check its health with smartctl -a /dev/sda. A dying disk will cause random hangs. Recovery mode doesn’t stand a chance against hardware failure.
Stick to the simplest fix first. Most of the time, adding rw and nomodeset gets you in. If not, use the live USB. You’ll be back up in no time.
Was this solution helpful?