[Top][All Lists]

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

Re: Two GRUB setup can boot one each of two installs, but not theother,

From: Tom H
Subject: Re: Two GRUB setup can boot one each of two installs, but not theother, why?
Date: Thu, 24 Dec 2009 23:53:19 +0100

>> Ubuntu must have patched grub1 to use UUIDs because, pre-9.10 and
>> grub2, you could/would use a "uuid=..." instead of a "root=..."
>> statement and the kernel's root reference was "root=UUID=..." so there
>> was no "hd(x,y)" reference in menu.lst.

> You completely misunderstand what's going on. The kernel arguments
> (AKA kernel command line) are NOT PROCESSED by grub; it merely uses a
> known mechanism for providing them to the kernel during load-time.
> Those comments in no way at all effect the process of GRUB loading the
> kernel and initrd in to memory.

> Grub's only objectives are:

> 1) Use the initial bootstrap code (within the first 440 or so bytes of
> sector 0) to load the rest of grub.
> 2) Possibly provide an interactive menu for the user to select an OS
> to load or chain.
> 3) Load one or more blobs of data from the disk, and then hand off a
> set of memory structures inherited from the BIOS to them.

> After stage 3 the OS is loading. In the case of most recent linux
> systems, including ubuntu, an in-memory filesystem is extracted and
> used to setup anything complex (like raid, lvm, or cryptsetup devices)
> is setup before the real system loads.

Thanks for the explanation but you are glossing over the "handover" to
the kernel.

I assume (and I will be happy to be corrected if I am wrong) is that
the "root=" (in grub1's menu.lst) and the "set root=" (in grub2's
grub.cfg) directives allow grub to identify the "/boot" directory
whose kernel is to be loaded with the "kernel" (in grub1) and "linux"
(in grub2) directives.

Usually, the right side of the "root=" and "set root=" directives is
of the "(hdX,Y)" type. However, as I said in my previous email, Ubuntu
must have patched grub1 to understand UUIDs because you could replace
the "root=" directive with a "uuid=" one (and, probably, a
"root=UUID=" one).

In grub2's case, if you have an "insmod fs_uuid" directive before the
"set root=" directives, you can change "set root=" to "set root=UUID="
and boot successfully.

reply via email to

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