On Wed, 2008-10-15 at 19:18 -0400, Ian Shields wrote: > I've messed with disk drives since dropping one on your foot would > have broken it. I've also messed with partitioning hard drives and > booting multiple OSes on PC drives since OS/2 was pretty new. The > cylinder/head/sector limitations in MS DOS represented the same kind > of thinking as that of the MS founder who said that 640K should be > enough for anyone. I've used Partition Magic fdisk, parted and > assorted other techniques for copying and resizing partitions over > many years. I've seen disks with a jumper to set the number of heads > to 15 instead of 16, but never had to use that jumper. I've also owned > and used a number of IBM and Lenovo systems (disclaimer I happen to > work for IBM) since the PC was introduced and I can't say I've ever > run into a problem partitioning with an IBM/Lenovo BIOS, other than > one tool or another reporting that some partition doesn't end on a > cylinder boundary. Since 'cylinders' are now a totally mythincal > beast, I'm not sure this matters.
Okay, let me step back. IBM-Levono BIOS _may_ support the latest Extended Interrupt 13h Disk Services as spec, but its the legacy support that is "at odds" with "the big 3" BIOS manufacturers when it comes to how Windows/utilities (DOS/NT kernels, including WinPE) presents geometry. I cannot remember who you'all licensed your BIOS code from back before 2000, but you didn't license any 21st century implementations. That's why your systems ship with a partition table that has 240 heads, because your own utilities (done in DOS/NT) take the 16 heads and see it as 240. The "root cause" is because you'all still present that old 21-bit field of 10/6/5 (IIRC, been a bit since I looked at the spec) for cyl/hds/sec. That's where the problems stem from, because most BIOSes of the early 21st century used 24-bit field of 10/6/8 (IIRC, again, been a bit, but I believe it was something of this sort) for cyl/hds/sec. That's why the 16 heads is turned into 240, because the last three (3) bits of the middle field (sectors) is turned into the upper three (3) bits of the lower field of five (5) bits, when any utility goes to read eight (8) -- when you'all only have five (5) bits for heads in your legacy 21-bit field, instead of the eight (8) bits of virtually every other BIOS' 24-bit field. When the Linux 2.6 kernel was first released, if you used parted, it skipped using this legacy interface and used the full, Extended support, which changed the geometry to another hds/sec and would destroy the existing partition table assumed geometry, where your own utilities, Windows, etc... would be installed. The kernel/parted has since been changed to fall back to reading any existing partition table and using the "legacy" BIOS field. BTW, as you mentioned, "cylinders" are mythical, sectors per cylinder are dynamic (based on the track), etc... But they are still used for logical/legacy geometry. Cylinders are actually are valued elsewhere and outside of this bit field (so there is no 10-bit/0-1023 cylinder limit), but the heads/sectors are still very much used from this field by your own utilities, as well as those in Windows! I've only seen it on these IBM-Levono platforms, although there may be other vendors who did not re-license newer implementations. It's that old 21-bit v. 24-bit geometry field difference, I'm fairly certain of that. As I mentioned, forcing 255 heads via fdisk or another utility in Linux on a new, blank hard drive addresses the problem once and for all for both Linux and Windows. > -- Bryan J Smith Professional, Technical Annoyance mailto:[EMAIL PROTECTED] http://www.linkedin.com/in/bjsmith ------------------------------------------------------------- Fission Power: An Inconvenient Solution _______________________________________________ lpi-examdev mailing list [email protected] http://list.lpi.org/cgi-bin/mailman/listinfo/lpi-examdev
