Почему общее количество секторов жесткого диска, отображаемое в fdisk, не совпадает с теоретическим расчетом?

9

Когда мы используем fdisk для проверки жесткого диска, он показывает что-то вроде:

Disk /dev/sda/: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors

Но когда мы умножаем 255 x 63 x 2610, число 41929650, немного меньше, чем общее число. секторов, показанных выше. Почему?

GreenPenguin
источник
3
Определенно связано: Интерпретация количества головок, возвращаемых fdisk в Super User . Полное раскрытие: принятый ответ мой.
CVn

Ответы:

14

Номера головок, цилиндров, секторов отображаются только для исторических целей и для использования некоторыми действительно старыми программами. Логическая блочная адресация используется сегодня для адресации дисков. Геометрия современных дисков обычно имеет переменное число секторов, внешние дорожки имеют больше секторов, чем внутренние дорожки.

Различные интерфейсы имеют максимальные значения 255 головок, 63 сектора / дорожку, поэтому, чтобы иметь возможность выражать значения CHS для большого диска, для них устанавливаются соответствующие максимальные значения, а число цилиндров округляется до ближайшего целого значения, что дает примерное значение количества полных секторов на диске. Как вы видели, реальное количество секторов обычно отличается. Фактическая геометрия диска даже не близка к значениям CHS; например, ни у одного из дисков не было 255 головок.

Йохан Мирен
источник
6
«Логическая блочная адресация сегодня используется для адресации дисков» - просто для краткого обзора временных рамок: 22-разрядный LBA был представлен в 1986 году, 28-разрядный - в 1994 году, 48-разрядный - в 2003 году. С 1996 года все приводы поддерживают LBA. , Без LBA максимальный адресуемый размер диска составляет ~ 7,8 ГБайт по сравнению со 128 ПБайт с LBA48.
Йорг Миттаг