Configuration of Grub?

Garrett Cooper youshi10 at u.washington.edu
Sat Dec 9 16:13:52 PST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

David Stanford wrote:
>> Incorrect. If you installed the filesystem on ad3s1, it should be:
>>
>> root (hd3,0,a)
> 
> 
> Thank you, I stand corrected. Not sure what I was thinking there... :)
> 
> Many people goof up GRUB by accident because it's numbering system is
>> zero-based and linux-like to a certain extent, so /dev/hda in Linux
>> translates to hd0 in GRUB, which is also ad0 in FreeBSD.
> 
> 
> This now leads me to a thought: does Grub count only *existing* hard drives
> on your system or does it count the hard drive channels on your system? In
> this case, Karl says he has installed FreeBSD on ad3, which makes me think
> he has installed on a second SATA drive (more likely that on a fourth hard
> drive I would think), and FreeBSD has counted two IDE channels as ad0 and
> ad1, and two SATA channels as ad2 and ad3. If this is the case, and Grub
> counts only the *existing* drives on his system, then he would have to use
> (hd1,0,a), no? This would also explain the "disk is not existing" error he
> was recieving.
> 
> I'd be interested in hearing thoughts (or facts ;) on this as I hate being
> left confused... :)
> 
> -David

Good question; not sure about that one, since the BIOS may or may not
count the EIDE channels as 0 and 1, and the SATA as 2 and 3. Needless to
say, this little numbering scheme with grub has become confusing, esp
with the introduction of new technology (SATA) >.>. Not sure how
numbering would work with SCSI either (something I should try sometime),
because I don't know how the BIOS numbers drives with SCSI cards or SATA
drives put into the mix.

As an example, I'll use my Linux box (which has just EIDE drives in it):

Filesystem (as basis for understanding what's going on):
sprsd gcooper # fdisk -l

Disk /dev/hda: 80.0 GB, 80000000000 bytes
16 heads, 63 sectors/track, 155009 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1       18601     9374872+  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/hda2           18602       20799     1107508+  83  Linux
Partition 2 does not end on cylinder boundary.
/dev/hda3   *       20799       53311    16386300    7  HPFS/NTFS
Partition 3 does not end on cylinder boundary.
/dev/hda4           53311      155009    51255823+   5  Extended
Partition 4 does not end on cylinder boundary.
/dev/hda5           53312       53427       58432+  83  Linux
/dev/hda6           53428      155009    51197328   83  Linux

For determining what's what, he could just load up the grub shell and
type in...

grub> root (hd0,0)
 Filesystem type is reiserfs, partition type 0x83

Note that it says what the partition type is and so you have an idea of
where you are and what's going on. Yet, GRUB's understanding is limited
because it doesn't directly understand NTFS, and hence I think that's
what the chainloader command is present when booting Windows since it
passes the ball for loading the OS to NTLDR (although a more technical
document could help tell why):

grub> root (hd0,1)
 Filesystem type unknown, partition type 0x83

- -Garrett
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFFe1E+6CkrZkzMC68RAliBAJsHgkz/MlQ2tTHTvEkRZ4S64OWa6ACggsmu
RgVBQbEE0IR74tInOPTX0RM=
=Mch+
-----END PGP SIGNATURE-----


More information about the freebsd-questions mailing list