.... Partitionsschemata nicht an 4kB-Blöcken moderner HDDs ausgerichtet sind, sondern nach wie vor an 512Byte-Blöcken. Stimmt die Vermutung? ...
Im Prinzip ja, aber ....... ich habe bei IBM im Übergang von der 1401 auf die /360 er Systeme angefangen und die Historie mit erlebt. Ich will nicht zu weit ausholen. Bis zur /360 waren Speicher-Bereiche variabel möglich, Rechner und ext.Speicher. Mit der /360 fing im Rechner die Blockstruktur an, bei den Platten erst viel später. Ein Steuereinheit pufferte und per Zugriffsmethode (heute Treiber) ging es zur "Application". Die /360-CPU hatte bereits µCode und taktete in den 60ern im nsec-Bereich. Großer Sprung...... es hat sich nach und nach fast alles fürs I/O-Geschäft hierarchisch verlagert. Teile der "Treiber" in den µCode der Steuereinheit (Controller), der Puffer wurde zum Cache und inzwischen sitzt der Controller mit µCode (Firmware) und Cache auf dem Gerät (Device). Aus variablen Datensätzen (records) wurden feste Sectoren und letztlich wurden nur noch per cache komplette Tracks verarbeitet. Die CHR bzw. CHS direkt Zugriffe verschwanden eigentlich recht schnell, Wiki ist mit
https://en.wikipedia.org/wiki/Cylinder-head-sector da etwas verschwurbelt. Die ersten Platten ab ~120GB nutzten praktisch nur noch LBA-Addressing, bereits in den 80ern. Die Sektorgröße war eigentlich nur noch bei FAT interessant, HPFS/NTFS waren da außen vor. Die Sektoren mußten bei FAT größer werden, um mit der 16/32bit-Adressarchitektur die HD überhaupt noch nutzen zu können. Für Direkt-Zugriffe wurde auf dem Mainframe CKD - Logic verwendet,
https://en.wikipedia.org/wiki/Count_key_data, FORTRAN unterstützte das direkt. Es wurde über ("hash-")Algorithmen auf den Track positioniert und nach dem gewünschten Key gesucht. Dieses ganze Zeugs ist heute auf dem Device mit angebautem Controller in der Firmware verbaut. Soweit im Galopp durch IBM-Nomenklatur "der CMR" seit den 60ern. Einen Teil alter Handücher habe ich noch aufgehoben, aber ........ (irgendwann Altpapier).
Unterm Strich sind wir heute grob betrachtet soweit, daß m.W. komplette Tracks eingelesen werden (CMR), bzw. alles was mit einer Umdrehung am R/W-Kopf vorbei kommt. Die ganze CHS/LBA Rechnerei wird von der Firmware inkl. Cache gemacht, in (meistens
) Zusammenarbeit mit dem Driver. Auf den Firmware-Algorithmen sitzen die Firmen drauf (Asset). Beim CMR spielt daher die Sektorgröße kaum noch ein Rolle. Bei den alten Systemen OS/2 und ECOMStation wird per MBR noch mit 512bytes gerechnet und bei >512GB platzt der Cylinder-Count, deshalb wird da in der Geometrie SPT auf 127 für 1TB und 255 für 2TB gesetzt. Soweit ich gesehen habe, schert sich Win10 nicht darum und setzt seine (klassischen NTFS) Partitions auf SPT 63 zurück.
Da vermute ich jetzt sehr stark, daß WD mit seiner Device-Managed-SMR mir per Firmware bereits einen gehörigen Strich durch die Rechnung macht, weil die alte Head-Track -Sector Organisation außer der (Mehrfach-)Schmalspurschreiberei in völlig neuer Blockstruktur arbeitet. Mit physischen I/O anhand der Sektorengröße hat daß nichts mehr zu tun, bereits bei CMR (wo immer der komplette Track im Cache ist). Leider, ..... alles Firmen Internals (auch bei IBM). Man kann es etwas knacken, wenn man Tabellen schreibt und die Adressprünge variiert. Da kriegt man bei der CPU und HD recht schnell heraus, wie weit der Cache genutzt wird. Bei SMR werde ich mal etwas aus der Gruft holen und und die HD triezen........ (solange sie noch im T400 ist).
Danke für die Diskussionen und sorry für den alten "stuff". Zur Modernität: die ersten /360er takteten bereits in nsec-Bereich und für H/W-Fehlersuche hatten wir schweineteuere Tektronix-Oszillokope, die bis aus 2 oder 5 nsec auflösen mußten. Diagnose-Programme waren rudimentär im µCode, ansonsten schrieb man selber nach und nach welche, bzw. bekam die vom Labor. Es war noch Händeschütteln mit den Bits
.
Trotz allem: ja, ja, ja, ....... SSD kommt auch bei mir, zumindest anstatt SMR.