Ich besitze eine 4-TB-Festplatte mit einer physischen Sektorgröße von 4 KB (Advanced Format) und habe sie an zwei SATA-Host-Controller angeschlossen (einen internen und einen in einem USB-Gehäuse). In der (älteren, ungefähr 2010) Version wird eine logische Sektorgröße von 512 Byte angegeben, die physischen Sektoren sind jedoch 4096 Byte groß. Im aktuellen USB-Gehäuse wird eine logische und physikalische Größe von 4096B angegeben:
# internal host controller
sd 4:0:0:0: [sdd] 7814037168 512-byte logical blocks: (4.00 TB/3.63 TiB)
sd 4:0:0:0: [sdd] 4096-byte physical blocks
# USB enclosure
sd 18:0:0:0: [sdd] 976754646 4096-byte logical blocks: (4.00 TB/3.63 TiB)
Der "interne" Controller zeigt das Verhalten, das ich zuvor gesehen habe. Dies wird normalerweise als "512e" bezeichnet, wobei die Firmware des Laufwerks die 512-Sektor-LBA-Adressierung emuliert, obwohl keine Sektoren auf diese Weise physisch geschrieben werden. Betriebssysteme (und Administratoren) können sicherstellen, dass Partitionen so ausgerichtet sind, dass (kleine) Schreibbefehle gruppiert werden können, sodass die Festplatte vollständige Sektoren überschreiben kann, anstatt auf das Schreiben in einen Teil eines physischen Sektors zurückzugreifen, in dem der Rest gelesen werden muss Inhalt zuerst.
Das Verhalten von "4k native" auf einem Laufwerk (USB-Gehäuse) war für mich jedoch neu. Mein erster Gedanke war, dass das Gehäuse zusätzlich zur emulierten 512B-Emulation des Laufwerks eine 4096B-Adressierung emuliert.
Die einzigen Vorkommen, die ich bei einer Websuche finden konnte, waren USB-Speichereinrichtungen, die sich bei 4k logischen Sektoren registrierten. Ich gehe davon aus, dass sie 4k über 512e emulieren, sodass MBR-Partitionstabellen zulässig sind, sodass große Laufwerke auf älteren / eingebetteten Geräten (Smart-TVs und was nicht) verwendet werden können, die nur MBR + FAT32-USB-Massenspeicher unterstützen.
Nach Rücksprache mit dem Hersteller wurde behauptet, dass das Laufwerk tatsächlich im nicht emulierten (nativen) 4k-Modus betrieben wird und der USB-SATA-Controller überhaupt keine Emulation durchführt. Dies würde erfordern, dass die Firmware des Laufwerks erkennt, ob der Host-Controller die Adressierung von Sektorgrößen von 4 KB unterstützt (wünscht?). In der öffentlichen Dokumentation der SATA-Standards konnte ich dazu nichts finden. Deshalb frage ich:
- Hat jemand "4096-Byte-Logikblöcke" auf seinem SATA-Controller gesehen?
- Unterstützen Laufwerke das Aktivieren / Deaktivieren der Emulation bei Bedarf? Wenn ja,
- Wie funktioniert diese Bestimmung?
- Können Sie es auf dem Laufwerk über eine Flagge überschreiben?
- Können Sie es auf dem Host-Controller über einen Treiber / ein Flag überschreiben?