Large hard disk support in FreeBSD

Robert Watson rwatson at FreeBSD.ORG
Mon Jul 28 17:16:53 PDT 2003


On Mon, 28 Jul 2003, Chris Howells wrote:

> I'd like to put a 60GB hard disk into Gateway 2000 Pentium 150 (from '96
> or '97 or so I think) running FreeBSD 4.8 RELEASE. 
> 
> Can anybody tell me how successful this is likely to be? Will I be able
> to use the full capacity of the drive? 
> 
> I seem to recall that the trick with large hard disks and old BIOSes is
> to disable the drive in the BIOS and let the OS detect the disk
> itself... is this the case with FreeBSD as well? 

Up until relatively recently, my main personal web service box was a
Gateway 2000 P120 from '95 running FreeBSD 4.x, so I can speak to this
with some confidence :-).  There are a few things you need to look at:

(1) BIOS revision.  Make sure you've flashed your BIOS forward as far as
    possible -- some older Gateway 2000 BIOS's will hang if they see a
    driver larger than they think is possible (I'm sure there's a better
    technical definition, but the result is clear regardless :-).

(2) Do you want to boot from the drive?  If I might suggest--don't even
    try.  Boot from a drive known to work fine with the BIOS.  As you
    suggest above, leave the drive unprobed (disabled) in the CMOS
    configuration, which will help prevent the BIOS from tripping over it. 
    this will mean you can't use the drive in the loader before the kernel
    is loaded, but since FreeBSD's device probing and management is pretty
    much independent of the BIOS, it should work fine with FreeBSD.

(3) The ATA controller built into your motherboard may not support larger
    disk addressing, although I think that shouldn't be a problem with
    60GB.  If you try to use a drive larger than addressable using the ATA
    controller, you may want to pick up a cheap PCI ATA controller (or get
    the "kit" version of the drive that has a new controller). 

(4) Cabling and support for non-PIO.  I found that my older motherboard's
    ATA controller had problems negotiating higher rate transfers from the
    disk, so ended up disabling the DMA support for at least one of the
    drives I added.  You will probably also want to make sure you're using
    the newer cable that will come with any recent drive, since that will
    help avoid quality and negotiation problems.  You might end up needing
    to force PIO support anyway if you're getting occasional timeouts from
    the drive.

That said, I ran just fine for about 8 years on my p120 -- I didn't want
to take it out of service, but I needed more memory than the chipset could
comfortably support.  Some of those systems can only cache the first 64MB
of memory, so any additional memory is used uncached.  I ended up
upgrading it to an E-Machine, go figure :-).  The old p120 is now back at
home from colocation, and I'm sure I'll find a use for it at some point. 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Network Associates Laboratories





More information about the freebsd-stable mailing list