¿Por qué el número total de sectores del disco duro que se muestra en fdisk no es el mismo que el cálculo teórico?

9

Cuando usamos fdisk para verificar un disco duro, mostraría algo como:

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

Pero cuando multiplicamos 255 x 63 x 2610, el número es 41929650, un poco menos que el no total. de sectores mostrados arriba. ¿Por qué?

Pingüino verde
fuente
3
Definitivamente relacionado: Interpretación del número de cabezas devueltas por fdisk en Super User . Divulgación completa: la respuesta aceptada es la mía.
un CVn

Respuestas:

14

La cabeza, el cilindro, los números de sector se muestran solo con fines históricos y para su uso por parte de un software realmente antiguo. El direccionamiento de bloque lógico se usa para direccionar discos hoy. La geometría de los discos modernos generalmente tiene un número variable de sectores, las pistas externas tienen más sectores que las pistas internas.

Varias interfaces tienen valores máximos de 255 cabezas, 63 sectores / pista, por lo que para poder expresar los valores CHS para un disco grande, estos se configuran a sus respectivos valores máximos y el número de cilindros se redondea al valor entero más cercano dando un valor aproximado del número de sectores totales en el disco. El número real de sectores suele ser diferente, como has visto. La geometría real del disco ni siquiera está cerca de los valores de CHS; probablemente ningún disco fabricado tiene 255 cabezas, por ejemplo.

Johan Myréen
fuente
66
"El direccionamiento lógico de bloques se usa para direccionar discos hoy" - Solo para dar una perspectiva sobre el marco de tiempo: el LBA de 22 bits se introdujo en 1986, 28 bits en 1994, 48 bits en 2003. A partir de 1996, todas las unidades son compatibles con LBA . Sin LBA, el tamaño máximo de unidad direccionable es ~ 7.8 GiByte en comparación con 128 PiByte con LBA48.
Jörg W Mittag