Table of Contents
Ubuntu - Boot - Error - File '/boot/grub/i386-pc/extcmd.mod' not found
Starting the system and got the following message:
error: file '/boot/grub/i386-pc/extcmd.mod' not found. Entering rescue mode... grub rescue>'
Solution
Probably grub boot loader is corrupt.
To Fix:
- Boot from your installation CD or USB.
- Choose Try Ubuntu without installing.
- Open a terminal.
- Enter the following commands:
ALERT: This assumes that your hard drive is showing as /dev/sda.
You may need to adjust.
If you computer is under 10 years old and has only one hdd and your not running under a virtual machine then your hdd is probably labelled /dev/sda.
These are the commands to reinstall the boot loader.
sudo mount /dev/sda1 /mnt sudo grub-install --boot-directory=/mnt /dev/sda sudo reboot
Try using Boot-Repair
Try Manual Fix
List the hard drives and partitions
ls
returns:
(hd0) (hd0,gpt1) (hd0,gpt2) (hd1) (hd1,gpt1) (hd1,gpt2)
Try to recognize which partition is hd0,gpt1
If you know anything about your own system you probably know that (hd0,gpt1) or (hd1,gpt1) is the EFI system partition and the second partition on the same drive is probably your root partition.
So you check
ls (hd0,gpt1)/
A list of the files in the partition is shown.
If it's the EFI system partition then great.
If not then try with one of the other drives.
Determine the mount points
set
A bunch of stuff will come up including the prefix=(hd0,gpt1)/boot/grub or something like that and root=(hd0,gpt1).
NOTE: If you do not see these options then try another drive.
Set the root
set root=(hd0,gpt1)
Set the Prefix
Set prefix to [partition]/boot/grub.
set prefix=(hd0,gpt1)/grub
NOTE: If this produced an error, reset root and prefix to something else.
Also try
set prefix=(hd0,1)/boot/grub
Get you out of the rescue mode to the normal terminal mode
n the terminal mode you have more commands with increased functionality.
insmod normal normal
Select the initrd image
initrd /initrd.img
NOTE: You may need to try alternative options here, such as:
insmod linux * linux /vmlinuz root=/dev/sdXY ro
or
linux /boot/vmlinuz-3.2.0-14-generic root=/dev/sda1 ro
Reboot
boot
Update the GRUB config file
sudo update-grub
Reinstallation of Grub on the device:
sudo grub-install /dev/sdX
NOTE: Replace sdX with whichever drive is your actual boot drive.
Usually this will be sda.