My feelings about GRUB 1 versus GRUB 2

March 12, 2015

I have been dealing with CentOS 6 recently (since I didn't give in to temptation), which has been an interesting experience. In many ways CentOS 6 is a real blast from the past, with all sorts of packages that I just don't use any more. One of those is that CentOS 6 still uses GRUB 1 (which is really just plain 'GRUB') instead of GRUB 2, which basically all of our other Linux systems use.

Boy was fiddling with the machine's boot configuration an eye-opening experience, in a good way. I've become so used to GRUB 2's insane level of complications and opacity that I'd forgotten how pleasant and simple GRUB 1 is by comparison. You have menu entries. They say things. Normally it boots the first menu entry. Your entire GRUB file probably fits on a screen (certainly if you have only one or two kernels and a 50-line xterm window). There is not a shell language in sight.

GRUB 2? Well, I was going to quote a bit of the start of one of our grub.cfgs, but it's way too long. You don't edit GRUB 2 config files, or even look at them; they are simultaneously verbose and opaque, generated by scripts (often scripts that leave you lies in comments). GRUB 2 has an entire Bourne shell like programming language (and the Bourne shell is not a good programming language), for what I'm sure is reasons that makes sense to the GRUB 2 maintainers. The result is the traditional new Linux pile of mud where you make any changes (very) indirectly, magic happens, everything is supposed to work, and if it doesn't you are up the creek.

In case it's not obvious, I don't particularly like GRUB 2. No doubt it helps someone, but on all of our machines it just complicates my life (and this includes my desktops and my laptop). Using the original GRUB again was a breath of fresh air, one that I'll now be sad to give up when I work on our other machines.

(I was going to say that some of the complexity of GRUB 2 grub.cfg files was partly the fault of distributions but no, this appears to be from a standard config builder that's part of GRUB 2 itself.)

PS: Even if GRUB 1 is still available and supported on our Linux distributions and our hardware, it is not worth fighting city hall on this issue (and then finding out all of the things that are undoubtedly broken despite GRUB 1 theoretically being supported). This nicely illustrates how you lose by an inch at a time and then wind up with an entire collection of sprawling mudpiles.


Comments on this page:

By Paul Tötterman at 2015-03-12 02:43:52:

I've heard a thing or two about extlinux http://www.syslinux.org/wiki/index.php/EXTLINUX from people who value simplicity.

By Mike at 2015-03-12 15:21:37:

Well...

 set timeout=3
 set default=0

 menuentry "with dracut" {
  linux /vmlinuz ro consoleblank=0 root=LABEL=root rd.luks.uuid=XXX rd.lvm.vg=base rd.dm=0 rd.md=0 audit=0
  initrd /dracut.xz
 }

Could be distros' fault that they have such a complicated sh magic to generate their configs, I didn't even notice the difference from grub1, except for those curly braces and "set" before vars on top (iirc).

By Anon at 2015-03-13 06:34:59:

I'll second extlinux too. If you have a simple setup it works fine (although it lacks niceties like immediate boot unless shift is being held down). I found it via the Fedora cloud image - http://fedoraproject.org/wiki/Features/SyslinuxOption .

I share your feelings about grub 2. Another bundle of mud seems to be EFI. However, I have some hope that something like rEFIt or rEFInd might prove able to manage the horror of EFI and move away from grub entirely. I just haven't spent much time messing around with them to be sure.

Written on 12 March 2015.
« The irritation of being told 'everyone who cares uses ECC RAM'
The puzzle of packets to your host that your host doesn't respond to »

Page tools: View Source, View Normal, Add Comment.
Search:
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Thu Mar 12 00:02:14 2015
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.