SuperGrubDiskProblems
TODO: Put numbers in every step like in Spanish translation.
First of all you should know that you can boot into your system with the Boot Linux option without having to fix grub.
Super Grub Disk hangs when embeding stage1_5.
When using Super Grub Disk to fix Grub boot I see:
running "embed /boot/grub/e2fs_stage1_5 ( hd0)"...
and SGD seems to hang.
You can try to do:
- Choose Language & Help
- English
- Advanced
- GRUB
- Restore GRUB to MBR
- Restore GRUB to MBR (NO stage1_5 link).
- Select your Linux partition
- Select your first hard disk
If it does not work you can also try to run fsck -yc to your root partition from a live cd to see if that helps. Something like:
fsck -yc /dev/sda3
This error happens when you have migrated your Linux distribution or you have created new partitions and the Linux root is another one.
In order to fix it you need to edit your current /boot/grub/menu.lst, search your Linunx entry... edit its root line and modify its partition. I mean you can find something:
title Ubuntu, kernel 2.6.15-25-386 root (hd0,1) kernel /boot/vmlinuz-2.6.15-25-386 root=UUID=2592837FKAJLFJASFASORI7239573495273Y95LKDF ro quiet splash initrd /boot/initrd.img-2.6.15-25-386 savedefault boot
and you might have to change it like this:
title Ubuntu, kernel 2.6.15-25-386 root (hd0,3) kernel /boot/vmlinuz-2.6.15-25-386 root=UUID=2592837FKAJLFJASFASORI7239573495273Y95LKDF ro quiet splash initrd /boot/initrd.img-2.6.15-25-386 savedefault boot
But... here there is the question. How do you find your particular case value?
Boot with Super Grub Disk, go to Super Grub Disk with Help -> Boot & Tools -> Show partitions Select your Linux hard disk and then just look for a line that contains your Linux name. In the beginning of the line, below the GRUB column you will see something as: (hdX,Y). Just write it down to a paper so that you can use it later.
Now reboot. (Press enter to go outside from Show partitions menu and then go back till you can select Exit menu and reboot.) And boot with a Ubuntu Live cd (or another Live cd), edit your Linux partition /boot/grub/menu.lst, find the kernel line from your Linux usual boot, put the value you had written down in the root line substituing the old one.
Save the file. Unmount your Linux partition. Reboot.
Now Grub menu should appear again and when selecting the edited Linux entry it should boot ok.
But there is still some work to do.
From your system you should edit /boot/grub/menu.lst as root and find these three lines:
## default grub root device ## e.g. groot=(hd0,0) # groot=(hd1,0)
You should write down your found new Linux partition next to groot= instead of the old one.
Now you save the file and you open a terminal as root and run: update-grub. This should fix not only the default Linux boot entry but all of the other boot entries and next time your Kernel/System is updated you will not have any problems.
TODO: Write about error 15 and 22.
Fix Boot of Linux does not seem work
If you are able to boot your Linux from SGD you can:
- Open a Terminal (Gnome Toe -> Applications -> System or Utilities -> Terminal)
- Check what's your first hard disk with fdisk -l
Disk /dev/sda: 251.0 GB, 251000193024 bytes 255 heads, 63 sectors/track, 30515 cylinders Units - cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 10171 81698526 7 HPFS/NTFS /dev/sda2 10172 10426 2048287+ 83 Linux /dev/sda3 10427 20342 79650270 5 Extended /dev/sda4 19966 20342 3028221 82 Linux swap/Solaris /dev/sda5 10427 10725 2401654+ 83 Linux
Let's suppose that it is sda.
Run:
sudo -i # in ubuntu su # in debian
Type your root password and press enter. Run:
grub-install /dev/sda sync shutdown -r now # This way you reboot
After rebooting grub should be back.