grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: my thoughts about grub 2


From: Brendan Trotter
Subject: Re: my thoughts about grub 2
Date: Thu, 19 Aug 2010 04:47:06 +0930

Hi,

On Thu, Aug 19, 2010 at 3:27 AM, Lennart Sorensen
<address@hidden> wrote:
> On Thu, Aug 19, 2010 at 03:18:53AM +0930, Brendan Trotter wrote:
>> Um, what?
>
> Well at least update-grub reads from /etc to generate the final config
> (which is still /boot/grub/grub.cfg, so it does go in /boot, but since
> it is generated (at least on my debian system), I don't consider it
> config anymore).
>
>> Imagine you've got 3 OSs: Hiaku, FreeDOS and ReactOS. Given that none
>> of these OSs normally have an "/etc" directory, which "/etc" should be
>> used to store GRUB's configuration?
>
> Well whichever one is responsible for generating the grub.cfg could
> store the files wherever is normal on that OS.
>
>> Perhaps you're saying that GRUB should be useless for anything that
>> isn't a Unix clone. In that case, imagine you've got 3 Unix clones. Of
>> course all of them want to automatically update their boot loader's
>> configuration when their kernel is updated, and they can't all share
>> the same "/etc". Does the user nominate one Unix clone as "working"
>> and let the other 2 OSs fail?
>
> I honestly don't personally care at all about any OS that isn't a unix
> clone anymore.  Fortunately, I am only a grub user and not one of the
> developers.  They seem to care.

You missed my point - it doesn't work for Unix clones either. You
could even have 2 copies of the exact same OS (something like Ubuntu)
installed on the same computer (in different partitions), and it fails
because both copies of the OS can't share the same "/etc". Any changes
to "/etc" done by one copy won't be seen by the other copy.

>> Using a separate partition for "/boot" that contains GRUB's
>> configuration for all OSs worked (at least in theory) because all OSs
>> that are installed could mount that partition without conflicts (as
>> long as you use a file system that all OSs understand).
>
> grub2 certainly has no issue with that.  The default is to use grub.cfg
> in the /boot/grub directory.
>
>> I was talking about boot managers, not boot loaders.
>
> Why should there be a difference?

A few sayings come to mind:
- "Write programs that do one thing and do it well" (
http://en.wikipedia.org/wiki/Unix_philosophy )
- "jack of all trades" (
http://en.wikipedia.org/wiki/Jack_of_all_trades,_master_of_none )

A boot manager can be very simple to install and very simple to
configure. You should probably take a look at a few (I created a list
including URLs earlier). A few of them even claimed to have "single
click configuration" because they automatically detect installed OSs.

A pure boot loader (something without "boot manager" features, that is
designed specifically for one OS only) typically needs a single
command to install and doesn't need any configuration.

>> Conceptually you have a boot manager (to select which OS to boot) that
>> doesn't really need to care about any of the details for any
>> particular OS; plus a boot loader for each OS which is designed
>> specifically for that OS (and doesn't really need to care about other
>> file systems, etc). The difference between them often gets blurred
>> because feature creep is tempting (for example, a lot of the boot
>> managers I looked at earlier had features for creating/removing
>> partitions, even though this is normally done using separate utilities
>> designed for the purpose, like fdisk, parted, etc; and a lot of boot
>> loaders are probably able to chainload).
>>
>> GRUB is different in that it's intended to be a boot manager and a
>> boot loader for many OSs (and isn't primarily intended for a single
>> role); and I'd guess that is the reason it has to be too complex to be
>> "user friendly" for any specific role.
>
> Almost every x86 boot loader for linux has also been a boot manager
> (through chainloading if nothing else).  Even the ntldr can do that.  It
> seems to me that a boot manager is a stripped down boot loader that
> doens't do very much.  Seems like a completely useless piece of software
> to me.  I don't get it.

SYSLINUX is a collection of pure boot loaders. ELILO is a pure boot
loader too. In the old days so was loadlin. If I remember correctly,
early versions of Linux also had a boot loader built directly into the
kernel (but I think that was only for booting from floppies). GRUB,
LILO, SILO and PALO are a mixture. I can't think of any other Linux
loaders.


Cheers,

Brendan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]