On Thu, Dec 11, 2008 at 04:57:40PM -0600, James Bottomley wrote: > The fatal flaw is that the C/H/S information is used by the msdos disk > label. Change it on the fly and existing partition tables don't say > what they previously said (this isn't fatal, since the CHS geometry is > actually encoded in the partition table, so as long as you don't > repartition it's preserved). Perhaps I wasn't clear. I wasn't suggesting that we change things on the fly, but for new partition tables, when there isn't a valid MSDOS partition table we use a slightly smaller geometry. The SCSI code apparently tries to read the MS-DOS partition table and uses that to return the geometry when requested by HDIO_GETGEO; I was proposing changing the default when there isn't a valid partition table present. > The other flaw is that the 255/63/X C/H/S > is carefully crafted to let us limp to a 0.5TiB volume size with dos > labels. If we change that to 255/56/X we can only limp to about 480GiB > meaning you won't be able to put a dos label on the new 0.5TiB SATA > drives ... or rather you will (since we just silently truncate), but > you'll be surprised to learn your disk shrunk ... Actually, the MSDOS partition table *can* support more than 0.5TB; that's because no one really uses CHS fields any more. So if the number of cylinders are greater than 1023, the CHS field simply uses a "fill" value of 1023 for the number of cylindrs. For example: Disk /tmp/foo.img: 255 heads, 56 sectors, 2097152 cylinders Nr AF Hd Sec Cyl Hd Sec Cyl Start Size ID 1 00 1 1 0 254 56 18 56 271264 83 2 00 0 1 19 254 56 1023 271320 781258800 83 3 00 254 56 1023 254 56 1023 781530120 646469880 83 4 00 254 56 1023 254 56 1023 1428000000 2866967040 83 So yes, the 253/63/X C/H/S allows BIOS's from circa 2000 to limp to 0.5TB --- but modern BIOS's and OS's are perfectly capable of using the MSDOS label to 2TB (when the 2**32 512-byte LBA field overflows), and all that is necessary is to simply fill in a cylinder field of 1023 in the partition table, as shown in the above example of a 1TB drive. > The problems being described all come down to 4k sector disks pretending > to be 512b sector ones so as to remain "compatible" in windows. In this > case it's hard to prevent a user doing the wrong thing since they > naturally use msdos labels and end up with the misalignment. Note, we > can't even necessarily tell users to turn off windows compat mode on the > disks because most BIOSs aren't 4k ready and so can't boot properly > unless it's enabled. Exactly, but by using a 255/56 C/S partitioning scheme for newly installed systems, we'll do the right thing with Windows compat mode, and as near as I can tell, with no downsides since BIOS's that still require the use of C/H/S partitio table entries are ***highly*** unlikely to be using, let alone accepting, SATA drives with 4k sector sizes. - Ted -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html