-
saikee,
I don't think my problem is a Grub issue.
I'm doing this on a Dell laptop. The laptop is very restrictive in what settings you can make in the BIOS. The HD is identified as being smaller than it actually is. The BIOS also indicates that it is in "LBA" mode.
I moved all the data/storage partitions to the back end of the drive. This leaves me with enough space within the BIOS range to boot multiple Linux installs and the original XP. I can live with this solution.
Props to to you for sticking with this. I tried most of your suggestions. I've become much more comfortable with the inner workings of Grub than I ever thought I'd need to be.
Thanks!
-
Well, LBA != LBA48.
Plain LBA uses 28-bit sector numbers, and each sector is 512 bytes. 28 bits gives you 256MB worth of unique addresses (268435456 different addresses). When each address refers to a 512-byte sector, you get 128GB worth of data (multiply by 1K, divide by two). That's 137438953472 bytes' worth of space that you can use. Given that hard drive manufacturers are dumb, and insist on using powers of 10 instead of 2 (because it makes their drives look bigger), that's 137GB according to them. Look like a familiar number? :p
LBA48 is a newer LBA extension that uses 48 bits for the sector number, instead of 28 bits. Those extra 20 bits give you another 1MB worth of addresses, which turns 128GB into 128PB (yes, petabytes).
If your BIOS does LBA, but only LBA28 (or classic LBA, or whatever you want to call it), then you'll still be stuck with 128GB of addressable space. The only way to get around that limit is to bypass the BIOS (like Linux does once the kernel has loaded up) -- but GRUB doesn't have enough space in the single boot sector to be able to get enough code loaded up to be able to do this. (All GRUB has is the MBR, minus the partition table: something like 400-some bytes.)