Re: C/H/S from user space

From: Phillip Susi
Date: Fri Feb 17 2006 - 16:03:19 EST


linux-os (Dick Johnson) wrote:

Yes, it's a very good model, in fact what I've been talking about.
However, several people who refused to read or understand, insisted
upon obtaining the exact same C/H/S that the machine claimed to
use when it was booted.


That's because if you don't use the same geometry that the bios reports when calculating the CHS addresses of the sectors you intend to load, you won't be requesting the right sectors from int 13.

So, since Linux doesn't destroy that information remaining in
the BIOS tables, I show how to make it available to a 'root' user.
Observation over several machines will show that the BIOS always
uses the same stuff for large media and, in fact, it has no choice.
Basically, this means that the first part of the boot-code, the
stuff that needs to be translated to fit into the int 0x13 registers,
needs to be below 1024 cylinders, 63 sectors-track, and 256 heads.
Trivial... even LILO was able to do that! Once the machine boots
past the requirement to use the BIOS services, it's a CHS=NOP.


Generally yes, modern large disks will get clamped at 1024 cylinders, 255 heads, and 63 sectors. You seem to be arguing that this will always be the case. If that is so, then the kernel doesn't need to store these values since it is known a priori does it? But it isn't always going to be 255/63, there are some bioses ( I forget which ) that cap the number of heads at 240, and disks that are smaller than 8 gigs also will have less than 255 heads.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/