Grub2 Usability

Directhex has been playing with Grub Themes, the screen that first shows up when your computer is switched on. I want to thank Jo for having a go at this, his designs don’t look nearly as bad as the comments to his blog indicate, although the big difference between the screenshot in Jo’s blog and the previous entry that showed a grub menu is that the fancy one wasn’t real and working, where as this one is.

It would also be really great if directhex adds his design to deviantArt, so I could add it to the new Ubuntu Artists group as a good example of design UI.

It’s certainly an area that needs help, although what I notice isn’t so much that the visuals are ugly (they are, generally) but to me more importantly it’s that the text is confusing and unhelpful. An example:

  • Ubuntu, with Linux 2.6.31-17-generic
  • Ubuntu, with Linux 2.6.31-17-generic (Recovery Mode)
  • Ubuntu, with Linux 2.6.31-16-generic
  • Ubuntu, with Linux 2.6.31-16-generic (Recovery Mode)
  • Ubuntu, with Linux 2.6.31-13-generic
  • Ubuntu, with Linux 2.6.31-13-generic (Recovery Mode)
  • Windows NT
  • Windows XP

This text is some of the easiest to change, we don’t need to recode grub or change anything, it can be back ported to grub1. What we need to do is clear up this text. What are all these numbers? what is Linux? why is there a Windows NT and Windows XP? I think what it should say is this:

  • Ubuntu 9.10 (v17)
  • Ubuntu 9.10 Recovery Mode
  • Ubuntu 9.10 Before Last Update (v16)
  • Windows XP
  • Windows Recovery Disk (DANGEROUS!)

Or something similar. It would take a bit of detection for the windows stuff (I’ve had people trip up on the whole windows nt thing and wipe out their computer) But the Ubuntu labels should be clear about what they mean. For instance, why are we giving the entire kernel version by default? Linux 2.6, it’s ALWAYS going to be 2.6, why bother printing it. .31, well that’s the kernel shipped with Ubuntu 9.10, no point in printing that. Perhaps the details can be printed at the bottom for the geeks, but the labels should be clear.

Perhaps we can have an option or some sort of added text that automatically gets compiled into your grub options when you have more than one linux distro installed or some set thing you can set called “I like to think I’m 1337er haxor grub user”

Tags: , , , , , , ,

No Responses to “Grub2 Usability”

  1. ScottK says:

    If you still have a kernel from a previous release (common for upgrades), then selecting that kernel won’t boot you into the previous release, just the current one, so 2.6.31, means 2.6.31, not Ubuntu 9.10.

  2. nixternal says:

    Hrmm, your post got me thinking, and I don’t like to think :p

    Anyways, say you have Ubuntu 9.10 and Windows XP installed. Say you have another kernel install for Ubuntu 9.10 as well. In the main display of grub, the box area that lists everything, have:

    * Ubuntu 9.10
    * Windows XP

    And then something like:

    F9: Extra boot options

    Instead of listing everything? Just a thought I had.

  3. Martin Owens says:

    That would certainly make sense wouldn’t it. Although if you don’t show the recovery mode and previous version options, then your likely to get users who don’t know those options exist… although we get than now when your not duel booting so perhaps that’s not an issue.

    Though I’m limiting myself to what is currently possible. So not blue sky.

  4. Martin Owens says:

    Er what, you would of course regenerate the entire list on a kernel update, not just one entry. So if you did upgrade it would change “Ubuntu 9.04 (v22)” to “Ubuntu 9.10 Before Upgrade (9.04-22)” You wouldn’t keep every previous kernel kicking around, but even if you did there are ways of communicating what it means without resorting to kernel versions.

    There is NO need to confuse users with Linux kernel versions. The numbers are arbitrary and meaningless to normal people.

  5. woozy says:

    Here’s what I think:
    – Present labels that identify what’s actually going to be booted (i.e. if it’s Ubuntu 9.10 that’s installed on that partition, then label it as such. If I can boot 9.10 with a kernel from 9.04 after a release-upgrade, it’s still 9.10).

    – There exists a default kernel (/vmlinuz?) that is going to be booted when I select to boot an OS.

    – Earlier kernels are not to be displayed by default, but available as an “advanced option” to a boot entry. One shouldn’t be able to accidently bring up that list of kernels as it just confuses people.

    – I do not have to know that what I’m looking at is called grub (offer sensible boot options, don’t advertise your bootloader!), neither do I have to know its version number.

    – Offer visual feedback when you’re doing something that could take a while (I have Lucid installed on an ancient and slow usb drive. If I select a boot entry and it goes to load the kernel, it’s taking 5 seconds before the kernel is even executed. During those 5 seconds I am currently presented a grub menu that appears to have locked up, thanks to the quiet-patches in Ubuntu. 5 seconds can be a long time if nothing appears to be happening). Don’t give me technical details on what you’re doing, “Starting…” or something similar is sufficient:

    Just let me know that you’re working, not what you’re really doing because I don’t care a bit about that unless you’re broken.

    Under normal circumstances I don’t care what kernels are installed, just have grub boot the most recent one. If a newly installed kernel fails to boot (which arguably shouldn’t happen in the first place), then provide means for grub to detect that failure and have it offer to boot the last known working kernel (only if I try to boot that installation again) and an explanation why it is offering that (“The last boot was unsuccessful. Do you want use the last known working configuration?”).
    This is also the only time I want grub to offer me something other than the default boot options. Don’t offer me a recovery boot option that boots into single user mode, this should be handled by the OS itself. It knows more about what’s actually failing and what it can offer you to do about it than grub. If it’s so broken that it can’t even do that anymore, there’s not even a point in offering a recovery boot option in grub since it won’t work anyway.

    If there is more than one installation of the same version of Ubuntu/Fedora/whatever, distinguish them by partition and/or fs-label. Otherwise, just call it what it is, e.g.:

    – Ubuntu 9.10
    – Fedora 12
    – Windows XP


    – Ubuntu 9.10 (on first disk, second partition)
    – Ubuntu 9.10 (on first disk, third partition)
    – Fedora 12
    – Windows XP

    If there is only one OS installed, don’t display anything other than progress indication (see above) until the kernel is actually executed. The current approach to only show a boot menu when you hold down shift before/while grub starts is absolutely fine.

    Oh, and don’t present me something called “memtest86”. What are the chances I want to test my memory on every bootup (if at all)? You don’t offer me to run badblocks on my harddisks, so why memtest?

    I hope I made some sense 🙂

  6. nixternal says:

    Honestly I don’t even know what is possible with Grub2. I haven’t even read up on it (yet?). Luckily there are people way more interested in its workings than I am 🙂

  7. WindPower says:

    Don’t forget memtest86 which appears twice in the list for some reason…
    And on Macbooks, there’s also “Mac OS X (on /dev/sdaX)”, and while it’s nice that it detected it, if one attempts to boot it via grub, it just yields a kernel panic.

  8. ethana2 says:

    I basically just want rEFIt on Dell..

  9. Bluezork says:

    i just love the (DANGEROUS) warning on the win recovery partition

  10. Bluezork says:

    anyway grub MUST be eficient a buggy grub can be a serious problem for a regular user, just imagine a user who have always used windows and the he installs ubuntu just to try and after rebooting he founds that grub is too complex coz it have tons of options, or worse someone have made it graphically prettier and it dont loads coz the video card is no compatible or is not supported.
    just keep it as simple as possible

  11. alex says:

    I think all of this extra options are way too complicated for average user. Don’t forget Ubuntu distro is for average user. That is the user that normally does NOT!!! install any new kernel etc. But if this gets installed they just don’t care.

    I just have a call few months from user that told me over the phone, that something is wrong, something got displayed on boot menu. Then I figured out that just new kernel was installed, don’t know how he installed it, probably some kind of update.

    I think that there should be only this displayed:
    – Ubuntu 9.10
    – Windows XP
    and nothing more!!!

    There should be some kind of function key like or something like this for geeks only.

    I don’t like idea “Before Last Update” – the average user does not know which upgrade? Was this the upgrade of web browser? No, no, the average user does not know that this is before last kernel upgrade. And what the hell is kernel – average user does not know what is kernel and why should he/she bother with the “kernel”. He/she most probably will never install new version of kernel by hand. So he/she could make vital mistake to think that this is before last update of system (like Firefox) and make a rollback to previous kernel. This is way way way too geeky for average user. Please remove any kind of “recovery” or “before last update” options. If something gets messed up, average user calls geeks to repair there computer, no mater if this is Windows or Ubuntu or something else.

    Then when I have to explain what is purpose of this kernel options in boot menu, then I get question: “You said that Ubuntu is stable system, but you need multiple recovery options. Windows doesn’t get this, so Ubuntu is less stable then Windows?”

    Maybe there should be three options like:
    – Ubuntu 9.10,
    – Windows XP,
    – more options …

    I prefer idea with key, but this could also be nice.

  12. alex says:

    I see on this blog are some bugs too. Lower then and More then keys are not displayed. 🙁

  13. shermann says:


    you won’t do it…but some people won’t dist-upgrade but they do a standard upgrade, which means “no kernel”, or they are pinning the kernel packages…

    depending on the user base, the plain user won’t do that, but as we (linux user, not ubuntu) have more then 90% power user, they do this quite often 🙂



  14. alexef says:

    I think woozy and nixternal have a good point here. First step, I think, is to have GRUB hidding options, and display them only on an “Advanced options” command/keyboard shortcut. Of course, simplified naming can and should be done.

    Theming is not important here, I would rather have a black uncluterred GRUB, than some nice backround and a ton of options.

  15. 2cents says:

    hi Martin,

    please, don’t play with users freedom:

    – grub2 is still in beta and not working as good as grub1, don’t need to add confusion.

    – the simpler is the better: by default, don’t turn the menu in confusion:
    it’s good to know what we boot on (distro,name,version,kernel), where is it (sda1, sdc5, …), but if the user wish to customize it give him the choice to do it (and save that choice for further upgrades)
    – don’t forget that users can be:
    . home user with single or dual boot and one hd or multiple hd, extern devices
    . pro/tester/geek with multiple hardware, multiple distro, multiple graphics, kernel backport, different format partitions:ext2, ext3, ext4,…, raid, etc . Remember that time to time we have some trouble xserver, udev, ext4, dbus or else: so, simply saying 9.10=9.10 is stupid.

    For my own wish, i hope you introduce an easy way from the standard menu ( with F10 for example), where user could customized the menu with disk name, label, comment)

  16. Mokup says:

    Agree with 2cents,

    i have several distro, same distro with several kernels, xorg: always have a oldish distro but stable in case the actual turn in troubles: so, my grub menu have to give me that choice without confusion as said by 2cents.

    When grub2 cames up in ubuntu, it’s was 0.96 and ext4 was introduce too. At that time we was able to use grub2 with Jaunty and Karmic. Now that grub2 is 1.98, Jaunty can’t use it coz dependencies even with backports ppa, there is no built for Jaunty in grub-ppa !!! (since Hardy, Jaunty is the last stable distro, Karmic have introduce too many changes and troubles)

    Hope that devs don’t only think eyes candy kiddings to clone others main distro.

  17. I agree and like your ideas a lot, but also a good GUI for grub is required.

    I have given multiple courses at a local computerclub here on ubuntu and linux in general, and most people find it highly frustrating that they can’t change the order of their operating systems with a simple, build-in app on ubuntu.

  18. This new found willingness to fix Grub Usability kinda sums up the best and worst about Linux to me. The best in the sense that one guy wrote a blog post about it and now loads of people in the community are coming together to fix this problem for the future, and the worst in the sense that if this was a commercial OS they would never dream of shipping such a clunky interface and would have fixed this by now. I can’t imagine a scenario where an average user wouldn’t be confused by these kernel entries and memory test options. Why it has taken until now for any effort from the community to fix it is beyond me.

  19. Victor says:

    >Why it has taken until now for any effort from the community to fix it is beyond me.

    This is really crazy, imho. Three years ago when i started with Ubuntu – i had the same ideas, which are very simple to implement. This is so obvious, but no one did it.
    So, i agree:
    >This new found willingness to fix Grub Usability kinda sums up the best and worst about Linux to me.

  20. I miss the ease of editing the Grub menu.lst file.

    I currently have five versions of Ubuntu on my machine:

    – Ubuntu Studio 8.04 (LTS)
    – Ubuntu Studio 8.04 (LTS) for development
    – Ubuntu Studio 9.10
    – Ubuntu 9.10
    – Ubuntu Studio 10.04 (LTS) for testing

    When I don’t boot into on of the other ones for a while I tend to forget exactly which one is which under Grub2, especially when you forget to remove old kernels.

    With Grub I could easily moderate the description to something akin to what Martin suggested.

    I really do need to know that I’m picking the Hardy install or Hardy Dev install rather than the kernel version (which could be the same kernel for various installs).

    So I’m currently resolved to making sure I pick the entry with the right partition number.

  21. Dave says:

    In a previous discussion of this issue someone claimed that the recovery option doesn’t even work in Ubuntu, which I find equal parts sad and amusing.

  22. Martin Owens says:

    Of course it does.

  23. Martin Owens says:

    If you need to customise it, I see not reason why you should be prevented. But at the same time I see no reason why your freedom to be geeky should play with other user’s freedoms to not be geeky.

    Simple Options by Default
    Clever Options by Generation
    Complex Options Manually

  24. Randall says:

    A couple of thoughts:

    1) This is an excellent candidate to get direction/input from the Ayatana (Ubuntu usability) team. As an Ubuntu project, I feel the focus needs to be on Ubuntu and the Ubuntu ethos is “user first”.

    2) We should not be investing energy (design/engineering/programming) resources on making that “other” operating system (the one from the Monopolist) any more convenient to run/enable than it already is. See Bug #1.


  25. Randall says:

    Better late than never. Ubuntu tends to take user experience pretty seriously.

  26. Randall says:

    Dave please cite your sources.

  27. seb says:

    woozy to me you made perfect sense.
    I fully agree that if everything works and in most cases I don’t need to know the tech bits and details.

    For geeks and if something is broken there can be and advancced page or function key.

  28. seb says:

    I agree here too,

    the question what is the simples and most entry user friedly apperance of grub2 should be up to the Ayatana (Ubuntu usability) team.

    I think that on many occasions the poweruser need to be aware of that Ubuntu is aimed at the entry user (too).

    So I vote for a sleek and simple grub2 start page with the option for full geekiness (advanced/function key/…)

    btw. this blog post is #8 when seaching for “Ayatana (Ubuntu usability) team” in google !!!

  29. […] el blog de DoctorMO se da un ejemplo de ello, veamos un listado de Grub2: Ubuntu, with Linux […]