Grub2 failings

Peter Zoeller peter_zoeller at rogers.com
Sat Aug 4 18:47:33 UTC 2012


I had the pleasure of upgrading my system recently from F15 to F16. The 
upgrade using PreUpgrade worked beautifully.  However what trashed my 
system was Grub2.  In my estimation grub2 is a kludge and it doesn't 
work properly.  Grub was a beautiful step up from Lilo both in 
simplicity, ease of use and ease of control.  Grub2 in my estimation is 
a regression.  It obviously is written by a bunch of Microsoft heads who 
totally miss the KISS principle.  I have gone back to installing and 
using grub.

So how did it break my system.  It doesn't read the drive geometry 
correctly.  It is a step back by assigning hex code to partitions and 
does so incorrectly.  I thought I had seen the last of hex code when I 
left college in the seventies and had to learn to read core dumps.  Now 
I find I have to relearn it in order to deal with UUID assignments.  No 
wonder Linux doesn't make it into the mainstream.

A boot loader is supposed to boot a system and that is all it should do 
which grub does marvelously well.  System setup and configuration should 
and must be left to the operating systems and systemd.  To display what 
I mean by grub2 screwing things up let me show you.

Fdisk of my main drive...

[root at HawksNest grayhawk]# fdisk /dev/sda

Command (m for help): p

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 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
Disk identifier: 0x000b485f

    Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63   144584999    72292468+  83  Linux
/dev/sda2       144585000   186530714    20972857+  83  Linux
/dev/sda3       186530715   225616859    19543072+  83  Linux
/dev/sda4       225616860   312576704    43479922+   5  Extended
/dev/sda5       225616923   264703004    19543041   83  Linux
/dev/sda6       264703068   303789149    19543041   83  Linux
/dev/sda7       303789213   312576704     4393746   82  Linux swap / 
Solaris

Df of my partitions as read when they are mounted.....

[root at HawksNest ~]# df -T
Filesystem     Type     1K-blocks     Used Available Use% Mounted on
rootfs         rootfs    71104256 32761604  34728032  49% /
devtmpfs       devtmpfs    991944        0    991944   0% /dev
tmpfs          tmpfs      1000572      264   1000308   1% /dev/shm
tmpfs          tmpfs      1000572      692    999880   1% /run
/dev/sda1      ext3      71104256 32761604  34728032  49% /
tmpfs          tmpfs      1000572        0   1000572   0% /sys/fs/cgroup
tmpfs          tmpfs      1000572        0   1000572   0% /media
/dev/sda2      ext3      20596820 12864132   6684048  66% /mnt/sda2
/dev/sda3      reiserfs  19542436 14015280   5527156  72% /mnt/sda3
/dev/sda5      reiserfs  19542436 12561496   6980940  65% /mnt/sda5
/dev/sda6      ext3      19191340  4730784  13483404  26% /mnt/sda6

Here is the grub2 configuration file that messed up the system

### BEGIN /etc/grub.d/10_linux ###
menuentry 'Fedora (3.4.6-1.fc16.i686.PAE)' --class fedora --class 
gnu-linux --class gnu --class os {
     load_video
     set gfxpayload=keep
     insmod gzio
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos1)'
     search --no-floppy --fs-uuid --set=root 
abc67dd1-53b1-47ca-a27f-0c7d84829f51
     echo 'Loading Fedora (3.4.6-1.fc16.i686.PAE)'
     linux    /boot/vmlinuz-3.4.6-1.fc16.i686.PAE 
root=UUID=6c3c0e3d-2708-439f-beb7-b9937d1d5f0a ro rd.md=0 rd.lvm=0 
rd.dm=0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 
LANG=en_US.UTF-8
     echo 'Loading initial ramdisk ...'
     initrd /boot/initramfs-3.4.6-1.fc16.i686.PAE.img
}
menuentry 'Fedora Linux, with Linux 3.4.4-4.fc16.i686.PAE' --class 
fedora --class gnu-linux --class gnu --class os {
     load_video
     set gfxpayload=keep
     insmod gzio
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos1)'
     search --no-floppy --fs-uuid --set=root 
abc67dd1-53b1-47ca-a27f-0c7d84829f51
     echo    'Loading Linux 3.4.4-4.fc16.i686.PAE ...'
     linux    /boot/vmlinuz-3.4.4-4.fc16.i686.PAE 
root=UUID=abc67dd1-53b1-47ca-a27f-0c7d84829f51 ro rd.md=0 rd.lvm=0 
rd.dm=0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb rd.luks=0 
LANG=en_US.UTF-8
     echo    'Loading initial ramdisk ...'
     initrd    /boot/initramfs-3.4.4-4.fc16.i686.PAE.img
}
menuentry 'Fedora Linux, with Linux 3.4.4-4.fc16.i686.PAE (recovery 
mode)' --class fedora --class gnu-linux --class gnu --class os {
     load_video
     set gfxpayload=keep
     insmod gzio
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos1)'
     search --no-floppy --fs-uuid --set=root 
abc67dd1-53b1-47ca-a27f-0c7d84829f51
     echo    'Loading Linux 3.4.4-4.fc16.i686.PAE ...'
     linux    /boot/vmlinuz-3.4.4-4.fc16.i686.PAE 
root=UUID=abc67dd1-53b1-47ca-a27f-0c7d84829f51 ro single rd.md=0 
rd.lvm=0 rd.dm=0  KEYTABLE=us quiet SYSFONT=latarcyrheb-sun16 rhgb 
rd.luks=0 LANG=en_US.UTF-8
     echo    'Loading initial ramdisk ...'
     initrd    /boot/initramfs-3.4.4-4.fc16.i686.PAE.img
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Fedora (2.6.38.6-26.rc1.fc15.i686.PAE) (on /dev/sda2)" 
--class gnu-linux --class gnu --class os {
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos2)'
     search --no-floppy --fs-uuid --set=root 
6c3c0e3d-2708-439f-beb7-b9937d1d5f0a
     linux /boot/vmlinuz-2.6.38.6-26.rc1.fc15.i686.PAE ro root=/dev/sda1 
KEYTABLE=us rhgb quiet
     initrd /boot/initramfs-2.6.38.6-26.rc1.fc15.i686.PAE.img
}
menuentry "Fedora (2.6.38.6-26.rc1.fc15.i686.PAE) (on /dev/sda2)" 
--class gnu-linux --class gnu --class os {
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos2)'
     search --no-floppy --fs-uuid --set=root 
6c3c0e3d-2708-439f-beb7-b9937d1d5f0a
     linux /boot/vmlinuz-2.6.38.6-26.rc1.fc15.i686.PAE ro root=/dev/sda2 
KEYTABLE=us rhgb quiet
     initrd /boot/initramfs-2.6.38.6-26.rc1.fc15.i686.PAE.img
}
menuentry "KNOPPIX (on /dev/sda3)" --class gnu-linux --class gnu --class 
os {
     insmod part_msdos
     insmod reiserfs
     set root='(hd0,msdos3)'
     search --no-floppy --fs-uuid --set=root 
8cd61602-4981-4b11-a2f8-8e06bd4baff2
     linux /boot/vmlinuz root=/dev/sda1 rootwait lang=us apm=power-off 
nomce libata.force=noncq tz=localtime loglevel=1 rw
}
menuentry "Debian GNU/Linux, kernel 2.6.37-64 Default (on /dev/sda3)" 
--class gnu-linux --class gnu --class os {
     insmod part_msdos
     insmod reiserfs
     set root='(hd0,msdos3)'
     search --no-floppy --fs-uuid --set=root 
8cd61602-4981-4b11-a2f8-8e06bd4baff2
     linux /boot/vmlinuz-2.6.37-64 root=/dev/sda1 ro lang=us 
apm=power-off tz=localtime vga=791
}
menuentry "KNOPPIX (on /dev/sda5)" --class gnu-linux --class gnu --class 
os {
     insmod part_msdos
     insmod reiserfs
     set root='(hd0,msdos5)'
     search --no-floppy --fs-uuid --set=root 
89b7ce78-6ccf-4fc4-9af2-2a392494473b
     linux /boot/vmlinuz root=/dev/sda5 rootwait lang=us apm=power-off 
vga=791 nomce loglevel=0 quiet rw
}
menuentry "Fedora (2.6.38.6-26.rc1.fc15.i686.PAE) (on /dev/sda6)" 
--class gnu-linux --class gnu --class os {
     insmod part_msdos
     insmod ext2
     set root='(hd0,msdos6)'
     search --no-floppy --fs-uuid --set=root 
44c1d6b1-51f2-4eac-880f-9262996556d6
     linux /boot/vmlinuz-2.6.38.6-26.rc1.fc15.i686.PAE ro 
root=UUID=44c1d6b1-51f2-4eac-880f-9262996556d6 rd_NO_LUKS rd_NO_LVM 
rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us 
rhgb quiet
     initrd /boot/initramfs-2.6.38.6-26.rc1.fc15.i686.PAE.img
}

So what are the issues with this....

I have two fedora partitions sda1 and sda2.  It no longer boots the 
second installation which is a different version of Fedora.  I teach 
Linux and use other installations to learn differences between distros 
in order to bring this knowledge to class.  The second Fedora is not my 
live system but the same as what was being used in the class.

The third partition sda3 is a reiser file system and a Knoppix hard 
drive install installed and modified as a Debian distribution. Under 
grub2 it no longer boots because the kernel can't find the file system.  
Why grub2 is telling it to look in the wrong place.

The fifth partition sda5 is a pure Knoppix hard drive install and funny 
enough it does boot.

The remaining one sda6 is at the moment a bad install and should not be 
part of the boot menu.  It is used to install and test out and learn 
other distros.  With grub it was child's play to install other distros 
make a mod to the grub.conf to include or exclude the new distro.  You 
no longer had to rerun like you did with Lilo and now with grub2 your 
are back to Lilo times where you must rerun grub2 to have the new 
configuration installed.  Talk about taking a step back.

With Lilo and grub it was easy from the boot loader screen to directly 
boot into a kernel shell to rescue a pooched hard drive. Like to see how 
you can do that using grub2?

I have reverted back to using grub, a system that is elegant, simple, 
well designed and dumped the kludge that grub2 is.  I shall continue to 
use grub and our file server at work that I maintain shall also continue 
to use grub.  I will warn my students about the failures of grub2 and 
let them decide whether to upgrade to grub2 or stick with grub.


More information about the advisory-board mailing list