Next Previous Contents

7. The Linux IDE 8 GB limit

The Linux IDE driver gets the geometry and capacity of a disk (and lots of other stuff) by using an ATA IDENTIFY request. Until recently the driver would not believe the returned value of lba_capacity if it was more than 10% larger than the capacity computed by C*H*S. However, recent Quantum Bigfoot 12 GB disks return C=16383, H=16, S=63, for a total of 16514064 sectors (7.8 GB) but give lba_capacity of 23547888 sectors (11.2 GB, that is, C=23361).

Recent Linux kernels (2.0.34pre14, 2.1.90) know about this and do the right thing. If you have an older Linux kernel and do not want to upgrade, and this kernel only sees 8 GB of a much larger disk, then try changing the routine lba_capacity_is_ok in /usr/src/linux/drivers/block/ide.c into something like

static int lba_capacity_is_ok (struct hd_driveid *id) {
        id->cyls = id->lba_capacity / (id->heads * id->sectors);
        return 1;
}
For a more cautious patch, see 2.1.90.
Next Previous Contents