Die Sektorgröße eines Geräts wird nicht im MBR gespeichert.
User-Space-Befehle wie fdisk
Verwenden Sie die BLKBSZGET
und BLKSSZGET
ioctl
s zum Abrufen der Sektorgrößen von Festplatten. Diese ioctl
s werden von Treibern im Kernel behandelt, die die relevanten Informationen von den Laufwerken selbst abrufen.
(Es gibt nicht viel Dokumentation über den relevanten ioctl
s; Sie müssen den Kernel-Quellcode überprüfen.)
Mit anderen Tools, die Laufwerke direkt abfragen, können Sie sich die relevanten Informationen anzeigen lassen, z. B. hdparm
. Auf einer kleinen SSD, hdparm -I
sagt mir
[...]
Logical Sector size: 512 bytes
Physical Sector size: 512 bytes
Logical Sector-0 offset: 0 bytes
[...]
cache/buffer size = unknown
Form Factor: 2.5 inch
Nominal Media Rotation Rate: Solid State Device
[...]
Auf einer großen rotierenden Festplatte mit 4K-Sektoren bekomme ich stattdessen
[...]
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
Logical Sector-0 offset: 0 bytes
[...]
cache/buffer size = unknown
Form Factor: 3.5 inch
Nominal Media Rotation Rate: 5400
[...]
Es gibt ein paar Fragen, ich habe versucht, die Antwort auf "Wo findet fdisk die Sektorgröße einer Festplatte?" Das Beste, was ich gefunden habe, ist, dass es die Informationen von ioctl
erhält .
ioctl
info auf Wikipedia und Linux Manpage.
fdisk-Quellcode-Link