Subject: Re: HD > 8GB
To: None <port-i386@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-i386
Date: 09/13/2002 19:04:32
>> How can I make the BIOS to recognize all the space of this HD?
> Unless the motherboard vendor has a BIOS update that corrects that,
> you can't.  But that's ok.  If your root partition is completely
> within the first 8G of space, then the bootloader (which uses BIOS
> routines) can load the kernel.   The kernel doesn't use BIOS routines
> and will be able to recognize the entire disk.

You actually do not have to have your root partition in the first 8G,
just the boot partition.  (Technically, not even that, just all the
blocks that make up the disklabel, bootblock, and kernel.  But it's
*ahem* nontrivial to ensure this unless the whole boot filesystem is
within that space.)

For example, here's how one machine I'm using is set up.  (This
particular machine has only about 6G of disk, but the BIOS limit this
setup was designed to deal with is more like the 1G-2G point.)

# df 
Filesystem  1024-blocks     Used    Avail Capacity  Mounted on
/dev/wd0e       5921958  1848571  3777289    32%    /
/dev/wd0a         30554    25782     3244    88%    /kernels
...
# disklabel wd0
# /dev/rwd0d:
...
#        size   offset     fstype   [fsize bsize   cpg]
  a:    65142       63     4.2BSD      512  4096    16   # (Cyl.    0*- 68)
  b:   400680 12285000       swap                        # (Cyl. 13000 - 13423)
  c: 12685617       63     unused        0     0         # (Cyl.    0*- 13423)
  d: 12685680        0     unused        0     0         # (Cyl.    0 - 13423)
  e: 12219795    65205     4.2BSD     1024  8192    80   # (Cyl.   69 - 12999)
  f: 12285000        0     4.2BSD     1024  8192    64   # (Cyl.    0 - 12999)

(f is a leftover that's no longer in use; I really should remove it
from the disklabel.)

/netbsd is a symlink to kernels/netbsd, and /kernels is in
critical_filesystems_beforenet (apparent analog in -current:
critical_filesystems_local).  /kernels holds nothing but boot and some
kernels (netbsd, netbsdGEN, and the last few kernels I've tried, in
case I have occasion to roll back).  The kernels are built "config
netbsd root on wd0e type ffs"; if I have to to boot netbsdGEN (which is
GENERIC), I just need to remember to use -a so I have a chance to tell
it where to find /.  And of course I can boot the more recent kernels
with -a if I'm so inclined, too.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B