Ubuntu 11.04 stops booting at grub console
I never got in trouble by using these instructions:
https://wiki.ubuntu.com/Grub2#Recover
First of all, you must start your system from a live cd. Then
"METHOD 3 - CHROOT
This method of installation uses the chroot command to gain access to the broken system's files. Once the chroot command is issued, the LiveCD treats the broken system's / as its own. Commands run in a chroot environment will affect the broken systems filesystems and not those of the LiveCD.
1) Boot to the LiveCD Desktop (Ubuntu 9.10 or later). Please note that the Live CD must be the same as the system you are fixing - either 32-bit or 64-bit (if not then the chroot will fail).
2) Open a terminal (Applications > Accessories > Terminal).
3) Determine your normal system partition - (the switch is a lowercase "L")
sudo fdisk -l
If you aren't sure, run
df -Th
Look for the correct disk size and ext3 or ext4 format.
4) Mount your normal system partition:
Substitute the correct partition: sda1, sdb5, etc.
sudo mount /dev/sdXX /mnt
Example: sudo mount /dev/sda1 /mnt
5) Only if you have a separate boot partition: sdYY is the /boot partition designation (for example sdb3)
sudo mount /dev/sdYY /mnt/boot
6) Mount the critical virtual filesystems:
sudo mount --bind /dev /mnt/dev sudo mount --bind /dev/pts /mnt/dev/pts sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys
7) Chroot into your normal system device:
sudo chroot /mnt
8) If there is no /boot/grub/grub.cfg or it's not correct, create one using
update-grub
9) Reinstall GRUB 2:
Substitute the correct device - sda, sdb, etc. Do not specify a partition number.
grub-install /dev/sdX
10) Verify the install (use the correct device, for example sda. Do not specify a partition):
sudo grub-install --recheck /dev/sdX
11) Exit chroot: CTRL-D on keyboard
12) Unmount virtual filesystems:
sudo umount /mnt/dev/pts sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys
13) If you mounted a separate /boot partition:
sudo umount /mnt/boot
14) Unmount the LiveCD's /usr directory:
sudo umount /mnt/usr
15) Unmount last device:
sudo umount /mnt
16) Reboot.
sudo reboot"
Here is how you can solve this problem without using a LiveCD:
-
Search the root disk.
grub> search -f /vmlinuz -s root
-
Set root disk.
grub> root ($root)
-
Use these commands to find out root disk's information.
grub> ls -l ($root)
-
Set linux kernel. There are three ways to do it.
- Change the red number with your root disk number.
If your root disk is
(hd0, msdos1)
, then use/dev/sda1
grub> linux /vmlinuz root=/dev/sda1
- Change red text with your disk label, which can get by using
ls -l ($root)
grub> linux /vmlinuz root=LABEL=LABEL
- Change red text with your disk uuid, which can also get by using
ls ($root)
grub> linux /vmlinuz root=UUID=UUID
- Change the red number with your root disk number.
If your root disk is
-
Set ramdisk.
grub> initrd /initrd.img
-
Now, you can boot your system.
grub> boot
-
When you are logged in, type this command from terminal to fix your grub menu.
$ sudo update-grub