Niezgodność między CxHxS a „całkowitą liczbą sektorów”

1
Model: ATA ST320LT007-9ZV14 (scsi)
Disk /dev/sda: 38913,80,62
Sector size (logical/physical): 512B/4096B
BIOS cylinder,head,sector geometry: 38913,255,63.  Each cylinder is 8225kB.
Partition Table: msdos

Number  Start        End          Type      File system  Flags
 1      0,32,32      35899,54,58  extended
 5      0,65,1       9790,192,1   logical   ext4
 6      9790,224,34  35899,54,58  logical   ext4
 2      35899,54,59  38913,70,4   primary   ntfs         boot


Model: ATA ST320LT007-9ZV14 (scsi)
Disk /dev/sda: 625142448s
Sector size (logical/physical): 512B/4096B
Partition Table: msdos

Number  Start       End         Size        Type      File system  Flags
 1      2048s       576720895s  576718848s  extended
 5      4096s       157288447s  157284352s  logical   ext4
 6      157290496s  576720895s  419430400s  logical   ext4
 2      576720896s  625141759s  48420864s   primary   ntfs         boot

CxHxS = 38913 x 255 x 63 = 625137345, co nie jest tym samym co 625142448s.

Ta sama sytuacja pojawia się na moim dysku flash USB. Czy ktoś może to wyjaśnić?

Determinant
źródło

Odpowiedzi:

1

Dysk stanowi właśnie informację CHS dla zgodności ze starszymi wersjami. Twój napęd nie ma 255 głowic. Wszystkie nowoczesne oprogramowanie wykorzystuje liniowe numery sektorów i ignoruje informacje CHS. Powinieneś zrobić to samo. Napęd dostarcza go tylko dlatego, że musi. Nowoczesne dyski nie mają nawet takiej samej liczby sektorów na każdej ścieżce. Tak było od 2003 roku, kiedy jest 48-bitowy LBA został wprowadzony.

David Schwartz
źródło
Mówi się, że ta informacja CHS jest emulowana dla zgodności. Ograniczony rozmiar jest w porządku. Ale sugeruję, że nie powinno być żadnego błędu.
Determinant
Koniec / dev / sdb2 wynosi 38913,70,4, co oznacza, że ​​może być 38914 cylindrów, podczas gdy całkowita informacja CHS mówi 38913.
Determinant
Nie może być żadnych poprawnych wartości CHS, które doskonale raportują rozmiar dysku. Liczba rzeczywistych sektorów na ścieżkę nie musi być stała.
David Schwartz
Czy emulacja po prostu odciąża CHS od rzeczywistej struktury fizycznej?
Determinant
Ogólnie dzieli liczbę sektorów logicznych na 255x63 i zaokrągla w dół do najbliższej liczby całkowitej. Następnie określa liczbę cylindrów, 255 głowic i 63 sektory (maksymalna liczba dla każdej z tych wartości). To właśnie stało się w twoim przypadku. 625,142,448/(255x63)=38,913.3176 i 38,913x(255x63)=625,137,345. To najlepszy sposób, w jaki napęd może to zrobić.
David Schwartz