While reviewing the partion layout on one of my hard drives, I noticed a number of “Partition X does not end on cylinder boundary” messages in the fdisk output:
$ fdisk /dev/sda Command (m for help): p !> Disk /dev/sda: 80.0 GB, 80000000000 bytes 255 heads, 63 sectors/track, 9726 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0xac42ac42 Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 287 2097152 83 Linux Partition 2 does not end on cylinder boundary. /dev/sda3 287 9726 75822111+ 8e Linux LVM
This was a bit disconcerting at first, but after a few minutes of thinking it dawned on me that modern systems use LBA (Logical Block Addressing) instead of CHS (Cylinder/Head/Sector) to address disk drives. If we view the partition table using sectors instead of cylinders:
$ sfdisk -uS -l /dev/sda Disk /dev/sda: 9726 cylinders, 255 heads, 63 sectors/track Units = sectors of 512 bytes, counting from 0 Device Boot Start End #sectors Id System /dev/sda1 * 63 409662 409600 83 Linux /dev/sda2 409663 4603966 4194304 83 Linux /dev/sda3 4603967 156248189 151644223 8e Linux LVM /dev/sda4 0 - 0 0 Empty
We can see that we end at a specific sector number, and start the next partition at that number plus one. I must say that I have grown quite fond of sfdisk and parted, and they sure make digging through DOS and GPT labels super easy.