Rescue Your System from an MBR corruption? grub rescue>

At the failed grub boot prompt you can assume the the non booting drive is /dev/sda1 to start and see if the insmod files are found: 

set prefix=(hdX,Y)/boot/grub

Or use the values determined by attaching the drive to a working linux install to find the partition order:

sudo fdisk -l
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x64a1f25a

Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 231241727 231239680 110.3G 83 Linux
/dev/sda2 231241728 250068991 18827264 9G 5 Extended
/dev/sda5 231243776 250068991 18825216 9G 82 Linux swap / Solaris


sudo blkid
[sudo] password for stevee:
/dev/sda1: UUID="1d9ac196-b1df-4dd0-994d-b9c9b1e8f23f" TYPE="ext4" PARTUUID="64a1f25a-01"
/dev/sda5: UUID="82fc41dd-56d4-41e4-99a8-85338bbdf01b" TYPE="swap" PARTUUID="64a1f25a-05"
/dev/sdb1: UUID="f92a3d3c-adf4-48e0-8964-83f2b52e251c" TYPE="ext4" PARTUUID="b060933f-01"
/dev/sdb5: UUID="e1a2c04b-3517-47aa-9636-3d713b864cdd" TYPE="swap" PARTUUID="b060933f-05"

Back in the failed grub menu, type:

Example: If the Ubuntu system is on sda1, enter: set prefix=(hd0,1)/boot/grub

set root=(hdX,Y)

Confirm the correct X,Y values and press ENTER.

Example: If the Ubuntu system is on sda5, enter: set root=(hd0,5)

insmod normal

Load the normal module.

If the module loads there will be no message.

If the module fails to load, try the full path: insmod (hdX,Y)/boot/grub/normal.mod


Transition to the normal GRUB 2 mode with increased functionality.

If the module loads there will be no message, and may go to the next stage boot menu as normal.

If not, but the module loads, HELP, TAB completion and command recall using the UP/DN keys should be available. Check current settings:


(Optional) Review the current settings.

insmod linux

Load the linux module. An error message usually means the path is incorrect.

linux /vmlinuz root=/dev/sdXY ro

Selects the latest kernel.

Example: linux /vmlinuz root=/dev/sda5 ro

If the vmlinuz symlink does not exist in /, use the full path to the kernel in /boot

Example: linux /boot/vmlinuz-3.2.0-14-generic root=/dev/sda1 ro

initrd /initrd.img

Selects the latest initrd image.

If the initrd symlink does not exist in /, use the full path to the initrd image in /boot

If successful, after ENTER there will be a slight delay and no messages.


Boot to the latest kernel on the selected partition.

In the worst case, you may need to re-install grub via a working system, say a bootable USB drive then find the drive with the broken grub menu (say /dev/sda) and:

sudo grub-install.real /dev/sda


sudo update-grub2

This will allow the USB pen drive to boot the broken drive from the USB pen grub menu. When back in the prior broken system if it boots OK, remove the USB pen drive and re-run:

sudo update-grub2

You should now be able to reboot into this drive as the only drive on a system.