28/11/2013

How to Fix a few grub errors | Broken Bootloader and error 17/15

Grub is short for GNU GRand Unified Bootloader. To be simply put, it’s a boot loader package from the GNU Linux project. It’s the common and reference implementation of a multiboot Linux system. It allows you to choose which operating system or specific kernel to boot into.

Repairing a broken Grub 2 bootloader:

People broke their grub thanks to auto-updates through apt or similar. Hopefully, this will allow you with a way to fix your system without needing to reinstall.

Grub now features an advanced rescue mode, truly a godsend for people who somehow messed their MBR tables up.
You want to trigger that and get into grub. Then execute the commands below to get back into an working desktop first.
ls
set prefix=(hdX,Y)/boot/grub
set root=(hdX,Y)
set
ls /boot
insmod /boot/grub/linux.mod
linux /vmlinuz root=/dev/sdXY ro
initrd /initrd.img
boot  

The X and Ys are to be filled in with your own HDD information. If you only have one HDD, it’ll be X=0, Y=1 and so on.
At this point, you should atleast be able to boot up normally. You’re almost done.
sudo update-grub 

sudo grub-install /dev/sdX
Execute those two commands, replacing X with the partition your linux is installed on. For me, it was ‘a’. Voila! You’ve fixed your broken ‘auto-updated’ MBR records.

Fixing grub error 17/15

Grub error 17 is one of the most common error messages that you’re likely to encounter using the Grub bootloader. The root cause behind it is a messed up partition table disk order.
To fix this, grab a live cd and boot into your desktop.
Execute the following:
sudo fdisk –l

You’re likely to get something like the following:

Disk /dev/sdb: 750.1 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000dc2a4
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1275    10238976+  fd  Linux raid autodetect
/dev/sdb2            1275       91074   721306624   fd  Linux raid autodetect
/dev/sdb3           91074       91201     1022976   82  Linux swap / Solaris

Partition table entries are not in disk order
If the bolded line exists, you’ve just found your problem.

Fixing this is easy. Execute the following.

sudo fdisk /dev/hda
hda as in the whole hard disk, not hda1 or stuff like that.
choose option x (extra functionality (experts only)) and enter.
then select f (fix partition order) and enter.
then select option w (write table to disk and exit), and enter. You can exit now.
Now, you need finalize this in grub.
$ sudo grub

grub > root (hd0,1)

grub > setup (hd0)

grub > quit
Obviously, you need to know which HDD houses your OS and replace the 0,1 and hd0 accordingly

No comments:

Post a Comment

Featured post

10 Awesome Widgets to Try on Your Android Phone.

One way Android remains unique from other popular mobile phone operating systems is its embrace of app widgets. Widgets on your home screen...