Grub Manual ... Solved

Les Mikesell lesmikesell at gmail.com
Sat Oct 20 17:29:05 UTC 2007


Gene Heskett wrote:

> 
> That is this line in a verse of grub.conf:
>         root (hd0,0)
> which defines that its the drive normally set for master on the IDE0 cable, 

Not necessarily...

> the one on the end of the cable, thats the hd0 portion, and its the first 
> partition on that drive, which is the second 0 since all this crap runs on a 
> base zero numbering system.

Any resemblance between a Linux hd? device and a grub hd? is purely 
coincidental.  In Linux the hd?'s are strictly IDE (and they are going 
away).  In grub, the hd?'s refer to the bios bootable devices.  If, for 
example, you have scsi devices and have configured your motherboard bios 
  to boot from them, grub's hd0 will be your booting scsi drive even if 
you also happen to have an IDE present that linux will see as /dev/hda.


> It could just as easily say root (hd3,2) to 
> indicate that it would be 3rd partition in, of the drive set as slave on the 
> IDE1 cable, that is just as valid.  I haven't tried it set for an 'extended' 
> partition, and I'd assume it would take a smarter than the average bear bios 
> to handle that.

Many (most?) motherboards only see 2 disks in the boot process, although 
they may let you select from a larger number of choices which order to 
try.  So you may have trouble using anything higher than hd1 - which 
again refers to what bios is using, not a particular ide position.  And 
you may have non-bootable disks that have no bios driver at all, but 
which linux will use normally.

> This is the usage that I would have changed, were I the one who wrote grub, 
> from root to boot, because it actually tells grub where its boot files are.

Grub has to know the bios notation, since that is all it can use to 
access the files until the kernel and driver modules are installed.

> Its second usage, the argument in the kernel string, tells the kernel, in very 
> similar drive & partition syntax, where the partition to be mounted as '/' 
> is.
> 
> That is this line in a given grub verse:
> 
>         kernel /vmlinuz-2.6.23 ro root=/dev/VolGroup00/LogVol00 rhgb
> 
> And this could just as easily say root=/dev/hda7 since by this time, the 
> kernel is initializing and knows about extended partitions by then.  This to 
> me is the correct usage of the word 'root' because it truly is the root of 
> all the filesystems mounted.

But at this point the kernel is running, has loaded its device drivers, 
has access to all devices, even ones bios doesn't handle, and this 
reference must be in linux terms where, for example /dev/hda7 does in 
fact refer to a disk with a particular IDE controller and selection. 
Even if you booted from a scsi drive that bios saw as the 0x80 device 
and grub called hd0, the kernel can mount a partition on /hda (an IDE 
device) as the root filesystem.

> But I didn't write grub, so we're stuck with the double usage of 'root' and 
> the confusion factor it creates for newbies.

They are double because they are entirely different things.

> 
> AIUI, grub, if not dealing with a LVM system, can function without a /boot 
> partition, in which case the above syntax must be modified, and the grub 
> installer does this, to gave a full path like this:
> 
>         kernel /boot/vmlinuz-2.6.23 ro root=/dev/hda1
> 
> (a base 1 numbering scheme is used here, furthering the newbie confusion 
> quotient, that is equ to (hd0,0) in the other syntax)

One is linux, one is a peculiar adaptation of a bios concept.

> assuming the /boot directory is in fact available in the drive & partition 
> specified by the first usage above, but its not an optional setup I've ever 
> used and I go back to RH5.0.

On older machines (circa RH5 era...) PC bios was limited to accessing 
1024 cylinders for some time after larger drives were available.  If the 
kernel and initrd files were in the filesystem in a location beyond that 
limit, the boot loader would be unable to access them to complete the 
boot.  Thus the installer always tries to make boot a small partition 
and first on the disk to avoid any problem.  The bios addressing scheme 
has been modified to work around the limits in current machines.

> Now, I suspect that you'll probably argue with me, but it will be a one sided 
> argument since I tend not to argue about points I know about after having 
> stated them once.

I'll argue because you've stated something wrong or at least misleading.


-- 
   Les Mikesell
    lesmikesell at gmail.com




More information about the fedora-list mailing list