Ich beantwortete diese Frage unter der Annahme, dass die *.img
Datei eine Sektorgröße von hatte 512
.
Wie frage ich ein Gerät oder das Image eines Geräts ab, um die richtige Sektorgröße zu finden?
Ich beantwortete diese Frage unter der Annahme, dass die *.img
Datei eine Sektorgröße von hatte 512
.
Wie frage ich ein Gerät oder das Image eines Geräts ab, um die richtige Sektorgröße zu finden?
fdisk -l
(das ist ein niedrigeres L im Parameter) zeigt Ihnen unter anderem auch die Sektorgröße an.
$ sudo fdisk -l
Disk /dev/sda: 150.3 GB, 150323855360 bytes
255 heads, 63 sectors/track, 18275 cylinders, total 293601280 sectors
Units = sectors of 1 * 512 = 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 63 208844 104391 83 Linux
/dev/sda2 208845 209712509 104751832+ 83 Linux
Dies zeigt, dass die Sektorgröße 512 Bytes beträgt.
BEARBEITEN: Neuere Versionen von fdisk
zB fdisk
(aus Paket util-linux 2.20.1
) zeigen Ihnen auch die logischen und physischen Sektorgrößen an. Relevante Ausgabe von einem "WDC WD10EFRX 1 TB-Laufwerk":
Disk /dev/sdn: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Gemäß der Dokumentation für die Warteschlange sysfs-Dateien :
quelle
loopN
stattdessensdX
. Trotzdem ist es in gewisser Hinsicht ziemlich sinnlos, da Bilddateien eigentlich keine Sektoren haben und diese Informationen nur die Sektorgröße des aktuell eingebundenen Geräts angeben.Man kann einfach den
file(1)
Befehl benutzen und selbst rechnen. Dies funktioniert auch, wenn Sie nur ein Image des FAT-Systems haben.Beispielsweise:
Diese Partition hat 64 Sektoren pro Cluster. Die Anzahl der Bytes in jedem Sektor beträgt 512, da dies die Standardeinstellung ist. Daher beträgt die Clustergröße 32 KB.
Beachten Sie, dass die Sektorgröße größer als 512 sein kann (FAT-Spezifikation beschränkt sie auf 4096, aber Sie können höher gehen). In diesem Fall wird in der Ausgabe ein zusätzliches Feld "Bytes / Sektor" angezeigt.
Führen Sie den Abgleich erneut durch, 4096 Byte × 16 Sektoren = 64 KB pro Cluster.
quelle
Vielen Dank für die obigen Antworten zu fdisk, die die Größe des physischen Sektors anzeigt, und zu / sys path ... aber eine Anmerkung ... von Lucas im Buch Absolute FreeBSD .... Fast jede Festplatte wird über die Größe des Sektors lügen, also im Falle von Linux
wird, soweit ich das verstehe, immer 512 anzeigen, um eine bessere Leistung zu erzielen, ist es gut, die tatsächliche physische Sektorgröße zu berücksichtigen, die wirklich in der Hardwarelogik verwendet wird. Es wurde von fdisk gezeigt und ist in vorhanden
quelle