Bug#595818: partitioner (IBM-PC) force geometry to one friendly to SSD, 4KiB sectors and RAIDs
The current IBM-PC style partitioner uses the no-good 255 heads, 63
sectors/track default format from 20 years ago, which misaligns
partitions on just about every device (logical or hardware) that has a
reason to care about something other than 512 bytes.
This results in severe performance degradation on the new HDs (4096-byte
sectors exposed as 512 byte sectors), extra wear on SSDs (64, 128, 256
and 512KiB erase blocks), and RAID volumes (both hardware and software,
64, 128, 256 and 512KiB stripe sizes).
Please consider forcing the partition tools to do something sensible.
The most effective way is to just align everything to 1MiB, ignoring
One can also use a less cubersome number of heads and sectors than the
default 255/63, to get better alignment. If a BIOS will break with the
unaligned LBA-only partitions, it will also break with this and also
have LBA32/LBA48 issues anyway, so this is not a "better compatibility
choice" as far as the BIOS goes. The only advantage is that fdisk won't
give you any crap about the alignment.
Using 224 heads and 56 sectors per track will work for the 64KiB and
128KiB stripe sizes/erase block sizes, as well as 4KiB sectors.
Using 224 heads and 48 sectors per track will work with all of the
above, and also 256KiB stripes/erase blocks.
Using 224 heads and 32 sectors per track will work with all of the
above, and also 512KiB stripes/erase blocks.
Windows deals with all of the above options just fine, AFAIK.
Linux-only boxes should be using GPT anyway, but unless we are going to
suggest that to the user, we should try to do better on our IBM-PC
Note that forcing LVM to align its metadata area is also necessary last
time I checked. Its default alignment (192KiB) is good only for 64KiB,
one needs to force it to 256KiB (for 64 to 256KiB stripes/erase blocks)
or 512KiB (for 64 to 512KiB stripes/erase blocks) to get proper
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 126.96.36.199 (SMP w/8 CPU cores)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash