So I went and got a new 40GB hard drive and plugged it in as /dev/hdc. This box only had /dev/hda until now.
So what does Linux fdisk (and cfdisk) do? They both think it's a 6GB drive. Fiddling with all settings in CMOS doesn't help. besides, the *kernel* knows it's 40 gigs.
Enter DOS fdisk. Which happily recognizes the drive, creates a token 100MB partition (I don't trust LILO, I use loadlin. I should put lilo next.) and happily formats it. (Okay, that was DOS format. Whatever.)
Now Linux fdisk sees all the cylinders/sectors/foo.
So now I'm embarassed: Why did Linux fdisk not recognize it for what it was, the first time?
For that matter, which is better in CMOS:
Auto (duh) LBA Large (whatever *that* means) CHS (and lie about the geometry) ?