Slashdot Mirror


The Boot Loader Showdown

An anonymous reader writes "What utility do practically all Linux users use, regardless of their job or expertise? A boot loader. In this article from IBM, see how a boot loader works, meet two popular loaders -- LILO (LInux LOader) and GNU GRUB (GRand Unified Boot loader) -- and review the pros and cons of each." From the article: "Most simply, a boot loader loads the operating system. When your machine loads its operating system, the BIOS reads the first 512 bytes of your bootable media (which is known as the master boot record, or MBR). You can store the boot record of only one operating system in a single MBR, so a problem becomes apparent when you require multiple operating systems. Hence the need for more flexible boot loaders.""

38 of 281 comments (clear)

  1. more like dupeloader by Anonymous Coward · · Score: 5, Funny

    so, which dupeloader is the best?
    I use CmdrTaco, works best with my old version of the beowulf cluster....

  2. ahh by nomadic · · Score: 4, Funny

    Whoa, tone down the technical mumbo-jumbo a bit, I'm having trouble following. So now what you're saying is that Linux thing is now on computers?

    1. Re:ahh by rco3 · · Score: 5, Funny

      So now what you're saying is that Linux thing is now on computers?

      That's right. It's not just for toasters any more.

      --

      Ce n'est pas un vrai mouvement de robot!
  3. Both! by crow · · Score: 4, Interesting

    On my dual-boot laptop, the virus protection in Windows doesn't recognize Grub, so it will wipe the boot sector if it's the primary boot loader. But I realy like not having to do anything after installing a new kernel, so I want to use Grub.

    The solution? Install Grub on the Linux partition, and use Lilo to load it. It is rather funny watching the boot messages go through Lilo to get to Grub.

    1. Re:Both! by Hal_Porter · · Score: 4, Informative

      You can specify a boot sector in boot.ini. It needs this so it can boot Win98, Dos and so on. You can use it to load pretty much any OS though.

      http://www.highlandsun.com/hyc/linuxboot.html

      Or you could turn off boot sector checks in the virus protection.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
    2. Re:Both! by alexhs · · Score: 4, Informative

      > Install Grub on the Linux partition, and use Lilo to load it.

      Why use LILO at all, then ? You can use mbr (http://packages.debian.org/stable/base/mbr), or even the dos / windows one (fdisk /mbr), which will silently boot the active partition, that you will set to the one containing the secondary boot loader you're using.

      --
      I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
    3. Re:Both! by Eli+Gottlieb · · Score: 4, Funny

      Apparently the virus protection doesn't recognize Windows for what it is, either.

  4. Which is EXACTLY Why... by eno2001 · · Score: 4, Insightful

    ...GRUB is the ultimate choice. It understands multiple OSes (including Windows XP), is very flexible and easy to use and uses a highly ethical license. Oh... and it doesn't require you to reinstall it after you make a change to it's config file like LILO does. No need to read any further. I have spoken.

    --
    -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
    1. Re:Which is EXACTLY Why... by eno2001 · · Score: 3, Informative

      It's all about what you're familiar with. I used to be a LILO affectionado and moaned when Redhat moved to GRUB. But once I learned GRUB, I found it to be much more powerful and easier to use than LILO. That's just me though. I'm the same guy who tells everyone I know, "If there's a hard way to do something, I'm there before anyone else". ;P

      --
      -"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
  5. Need LILO for VMWare by div_2n · · Score: 3, Informative

    For anyone getting ready to load a Linux instance on a VMWare virtual machine, save yourself some time and use LILO. GRUB does not work as best I can tell. Boots to a fun error message after initial install. LILO works like a charm.

    1. Re:Need LILO for VMWare by bunyip · · Score: 3, Informative

      Boots to a fun error message?

      Would this be error 18? How large is your partition?

      The quick fix for this is repartitioning so that /boot is small and the first partition on the disk, then it will work fine. I use Grub to boot SuSE 10 with VMware on my system at work (where Windows is the corporate standard). If this is not the fix, try Google - it's your friend.

      Alan.

  6. I was going to post by pklong · · Score: 5, Funny

    I was going to post but computer says LIL-

    --

    Philip

    Signatures are broken

  7. Re:DUPE by hackstraw · · Score: 4, Funny

    Yeah, you have posted this before!

    Yeah, but there is a big:

    diff -u post1 post2
    --- post1 Tue Jan 3 09:35:05 2006
    +++ post2 Tue Jan 3 09:34:20 2006
    @@ -1,4 +1,6 @@
    -Francesca
    +An
    +anonymous
    +reader
      writes
      "What
      utility
    @@ -125,4 +127,4 @@
      more
      flexible
      boot
    -loaders."
    +loaders.""


    If the authors would have been the same and the second one didn't have an extra '"' at the end of it, it would have been the perfect dupe.

  8. Exact Dupe!! by ltwally · · Score: 3, Funny
    Oh, and not only is it a dupe, but it's an exact duplicate. Word-for-word. Someone copy & pasted the entire article description of the one from august, and Taco still let it get through!

    Notice that it's an AC that did it, too. It's actually pretty funny, in a sorry sort of way.

    --



    /dev/random
  9. Re:Is it really that important? by hal2814 · · Score: 4, Interesting

    Nothing serious. GRUB doesn't have to be reloaded each time you add or take away a kernel. It's only a 5 second procedure in LILO (or 2-3 minutes if you have to manually monkey with the lilo.conf file). Personally, I prefer LILO for working with kernels because I touch the lilo.conf file each time a kernel is compiled. It makes it easier for me to weed out possible boot-loading problems when I'm making changes to kernel code.

  10. Showdown??? by LABob · · Score: 3, Informative

    No 'showdown' is needed. Aren't there enough flamewars around the Web as it is? Technically, both bootloaders are good. Use the one that works best for you.

    Politically, if you must use only GPL software, then go with GRUB. LILO has a _very_ open license, but it does not meet RMS's strict and unyeilding requirements.

  11. Auto-dupe check by JLavezzo · · Score: 3, Funny

    That's it!
    I'm going to download the slashcode and hack in an auto-dupe-check using diff... If you are too similar the article get's an automatic first post of "DUPE!"

  12. Other lesser known boot loaders... by ylikone · · Score: 5, Informative
    --
    Meh.
  13. What utliity do practically all Linux users use? by Caspian · · Score: 5, Funny
    What utility do practically all Linux users use, regardless of their job or expertise?
    Windows.

    I keed, I keed! ;)
    --
    With spending like this, exactly what are "conservatives" conserving?
  14. Neither! Luna works best... by justinchudgar · · Score: 5, Funny

    My kitten Luna loads my boots with shredded paper and cat toys every night. She is the best boot loader ever!

    --
    WARNING: Smoking this sig may cause lowered IQ, insanity or short term memory loss. It is also really bad for your monit
  15. My biggest problem for not using GRUB by MikeDawg · · Score: 5, Insightful

    My biggest problem, and why I stick with LILO as opposed to using GRUB, is because of the current state of the GRUB development. I'm not exactly sure what's going on with the GRUB project, I have seen their website, and read their information, but I don't understand where they are at in their development, especially with GRUB 2. GRUB has been labelled their legacy product, which does mean it has been released, and relatively stable. However, they have completely stopped work on their legacy GRUB product and began working on GRUB 2. GRUB 2 doesn't have a stable release yet (they have builds released via CVS or whatever build versioning system they use). What should we expect from GRUB 2, that GRUB or LILO doesn't offer? I don't like the setup and install process for GRUB, I find it more convoluted than the setup, install, and configuration (lilo.conf) of LILO.

    --

    YOU'RE WINNER !
    Another lame blog

    1. Re:My biggest problem for not using GRUB by Fred_A · · Score: 3, Insightful

      Old and crappy it may be but it works and it has been chosen over numerous alternatives in a number of cases. So basically it works, there isn't much to add to it as it is, so unless a major bug is discovered, there's no reason to actively maintain it.
      The main thing Grub has against it is that it's relatively ugly. The fact that the 1.x branch isn't actively developped is quite irrelevant. Because it works. Should it suddenly stop working, well, there are lots of other similar programs available.

      Maybe I'm dense but I really don't get your concern. Are you worried you won't be able to get spare parts when your program will get worn out from booting everyday or something ?

      --

      May contain traces of nut.
      Made from the freshest electrons.
    2. Re:My biggest problem for not using GRUB by Gord · · Score: 3, Informative

      >There's one feature that's been sorely missing: the equivalent of lilo's -R option (boot another OS once).

      You can probably do what you need using Grub's 'savedefault' command, eg

      grub> help savedefault
      savedefault: savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]
              Save DEFAULT as the default boot entry in STAGE2_FILE. If
              '--once' is specified, the default is reset after the next reboot.
      grub> savedefault --default=1 --once

      iirc some distro's come with a 'grub-default' (or similar) command for performing this direct from a shell prompt.

  16. That's a weird problem.. by brunes69 · · Score: 3, Informative

    .. because, an OS has one of two choices. Either it uses it's own boot loader, or it requires a third party one.

    I don't know anything about ReactOS, but Windows ships with it's own, and always has since 95. If you installed "real" Windows on this computer, it would overwrite the MBR and get rid of Grub. But if installing RactOS does *not* do this, then it likely does not ship with it's own boot loader, so you would *have* to use Grub or some other tool to load it.

    Unless it uses the old DOS boot loader but does not ship with it, which would be very weird.

    In any case, you can download DOS boot disk images from bootdisk.com and fdisk /mbr, no problem. (if you don't have a flyppy drive, just use the image to make a bootable CD.)

  17. Re:GRUB! by Lussarn · · Score: 5, Informative

    Try enable "USB Legacy support" or similiar in BIOS. Has helped me every time.

  18. Re:GRUB! by ajs318 · · Score: 3, Informative

    I'm a diehard LILO user, it works for chuff's sake so don't muck with it, but the issue you are seeing is not the fault of the bootstrap loader.

    Any bootstrap loader, be it GRUB, LILO or NTLDR.EXE, must necessarily use the BIOS to interact with the hardware, because no drivers are loaded yet.

    Your BIOS setup should have an option something like "legacy USB keyboard" which takes the keystrokes from the USB keyboard and makes them appear to have come from the "old style" keyboard instead. Enable this and GRUB should work.

    --
    Je fume. Tu fumes. Nous fûmes!
  19. How to program a bootstrap loader by uriah923 · · Score: 5, Informative

    This article explains how to write your own boot sector. The tutorial includes assembly language code to demonstrate loading and executing a binary image from a FAT filesystem. It's also an interesting read if you want to understand the fundamentals of the X86 boot process.

    --
    -Brandon "How much you wanna make a bet I can throw a football over them mountains?"
  20. Re:raid-extra-boot by m50d · · Score: 3, Informative

    What do you use that to do? Grub booted my raid1 flawlessly, just map (hd0) and (hd0,0) to the /dev nodes and install normally.

    --
    I am trolling
  21. Re:LILO v GRUB by FellowConspirator · · Score: 3, Informative

    LILO is still actively developed and handles things like RAID disks and special hardware much better than GRUB (which is why it still ships with all the various distributions).

  22. Re:GRUB! by Anonymous Coward · · Score: 3, Funny

    Yes.

  23. The reason I use LILO by Scott+Wunsch · · Score: 4, Interesting

    There's one key LILO feature missing from GRUB, as far as I know: lilo -R

    This allows me to install a new kernel on a box I'm not in front of, and tell LILO to boot it by default for the next boot only. If the new kernel doesn't work, I only have to ask somebody near the machine to reboot it for me, and it'll come back up in my old, working kernel. With GRUB, I'd have to try to talk somebody through hooking up a monitor and picking the right kernel... when it's a headless colocated server located somewhere far away, that's not always an appealing idea.

    --
    \\'
    1. Re:The reason I use LILO by spinfire · · Score: 3, Informative

      Grub can do it too.

      Check this out: http://gentoo-wiki.com/HOWTO_Remote_Kernel_Upgrade

  24. Re:Unwelcome guest by Fred_A · · Score: 4, Insightful
    I've tried standing on my head spitting wooden nickles, and nothing worked at removing grub.

    Did you wave the dead chicken ?
    You forgot to wave the dead chicken didn't you ?
    Bah, newbie...
    --

    May contain traces of nut.
    Made from the freshest electrons.
  25. boot loaders are evil by Xonstein · · Score: 3, Interesting

    If there were two pieces of software which I would say actively ward off more people from installing Linux, it is the boot loader and X video driver config. Both of them can be installed without issue using any standard installer with a user accepting defaults, and the system can fail to boot properly which are very, very poorly documented to debug and repair, especially in a dual-boot scenario. Recently I did a Suse 10 install, and it installed a video driver which even prevented Sax from working. Also, although I installed it on a secondary partition on my primary boot drive, for some reason it decided to install the boot loader on some other drive. Both were a pain to fix, but I wouldnt know how a first-time Linux user would even know where to start.

  26. LILO forever! by tie_guy_matt · · Score: 3, Insightful

    One of the things I love about linux is that you don't have to re-learn how to use everything with each version of the OS. So you know how to set all of the network setting under NT (that is to say you know where all the happy icons to do it are.) Well with 2000 and then again with XP you have to look like an idiot looking through all of the happy icons trying to find the right one to reset your network configuration (or whatever.) How often have you felt like saying "it was here under NT or 98 or 3.11 or whatever, so why isn't it here now?" Well it is not there anymore under XP! And you are going to have re-learn everything (and maybe re-train your staff) because someone says that this new way is better. If this new way is so much better why didn't they have it set up this way from the very beginning?

    I have used lilo from the beginning of my linux adventure. I know how to configure it and I know how it works. It does everything I need it to do (which is mostly just to load linux and maybe keep track of several kernels/ distros that I am playing with.)

    So why should I even spend 2 seconds trying to figure out how to use grub? Gentoo tells you to use grub by default. I say no I will always install and use lilo until grub does something that I want/need that lilo doesn't do. True if I were just starting out I would learn grub -- but that ship has sailed. Once I know how to do something I don't want to relearn it just because someone says I should.

  27. Conclusion? The PC bios is a relic. by master_p · · Score: 4, Informative

    Why isn't the PC bios responsible for loading O/Ses? because the PC bios is a relic, a leftover from the days of 8086. Why aren't bioses 32-bit? why PCs still have to boot in real mode?

    Bootloaders are very clever pieces of coding, but their presence makes it difficult for PC bioses to be replaced.

  28. Re:Except for one feature by jdoff · · Score: 3, Informative

    How about this?

    grub> savedefault --default=1 --once

    Use it in a script, type it by hand, put it in grub.conf, etc. Works for me.

  29. Another approach - how QNX does it by Animats · · Score: 4, Informative
    QNX has a rather different approach, because it runs on non-PC hardware and can't assume there's a BIOS to get things started. QNX uses a program called "mkifs" to build an "OS file system", which is a bootable image. This contains not only the operating system kernel, but any other programs and files you want available during the boot process. Even user programs and shared objects. You can build your own bootable image, with whatever programs you want in it.

    With this approach, there's no need to put drivers needed at boot time in the kernel. (Drivers are user programs under QNX.) The kernel doesn't need to know about disks. If you want a GUI during boot, you can have it. For embedded systems, the entire "OS file system" can be put in ROM, eliminating any need for a disk. For desktop x86 systems, there's a standard bootable "OS file system" which has all the usual disk and display drivers, the bus enumerators and plug-and-play handler, and the rest of the stuff needed to start an x86 PC. But all that startup stuff isn't in the kernel.

    This is especially useful when your target is something that doesn't have a keyboard and screen. That's why QNX does this. Doing it this way cleans much startup-only junk out of the kernel.

    The Minix 3 people, unfortunately, didn't get this, so their "microkernel" has more stuff in it than it really needs.