Why partition X does not end on cylinder boundary warnings don't matter


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 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4

The number of cylinders for this disk is set to 9726.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

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 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4

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.

This article was posted by Matty on 2009-09-12 13:12:00 -0400 -0400