Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: BigOlly am 17. April 2004, 23:33
-
An alle Experten: :)
Ich bin gerade so ein bisschen am experimentieren und stelle mir folgende Frage:
Sind Sectoren (und ich meine NICHT Cluster) auf Datenträgern immer 512 Bytes lang?
Ich meine soweit mir bekannt ist ja.
Microsoft aber schreibt in seinem WhitePaper über das FAT-System das der
Magic-Code (AA55h) NICHT auf den "letzten beiden Bytes des Bootsectors" stehen muss sondern auf "Byte 511 und 512"! (Was ja klar ist da das Bios ja diese beiden Bytes und nicht das "Ende" des eingelesenen Bootsectors prüft.
Microsoft weißt ausdrücklich darauf hin das die Aussage "die letzten beiden Bytes des Bootsectors" nur dann stimmt, wenn die Sectoren auf dem Datenträger 512 Bytes lang sind. Das suggeriert natürlich das es auch längere Sectoren gibt. (Nochmal: ich meine nicht Cluster!)
Also meine Frage:
Kann mir jemand sagen ob es Datenträger gibt die Sectoren größer 512 Bytes besitzen?
Oder hat Microsoft das "vorsorglich" klar gestellt, um künftigen Erweiterungen vorzugreifen?
Laut Microsoft dasf das BPB-Feld "BPB_BytesPerSec" die Werte 512, 1024, 2048 und 4096 enthalten. Aber gleich darauf wird ausdrücklich darauf hingewiesen das Einträge größer 512 nicht unterstützt werden.
Also...: Alle Sectoren aller Datenträger immer 512 Bytes ?!?
-
Antwort: Nicht zwingend, es gibt bei Diskette z.B. die Möglichkeit direkt über die Ports dem Controller zu sagen das es auch welche gibt die 128 256 Bytes sind und so. Das ist aber nicht üblich und funktioniert meistens auch garnicht. Aber theoreitsch gehen auch andere Grössen. Es ist lediglich eine Konvention 512 zu verwenden soweit ich weiss.
-
Das heisst also, man kann zwar eine von 512 Bytes abweichende Sectorgröße auf dem Datenträger konstruieren (vorausgesetzt die Hardware des Controllers spielt mit), aber ein Filesystem oder ein Betriebssystem welches eine andere Sectorgröße als 512 Bytes kennt bzw. verwendet, gibt es in der Praxis (jedenfalls derzeit) nicht?
-
Also beim PC ist das normal immer 512 Bytes und dafür sind Hardware, Firmware und Betriebssystem ausgelegt! Die meisten HDs können nichts anderes (oder die Contoller).
-
ich glaube das liegt an den 1,44 MB und 3,5" Disketten... Bei anderen Formaten ist es soweit ich weiß anderst... Da ist ein Sektor z.B. nur 256 Bytes lang... Bin mir aber nicht sicher...
-
Ne Ne, immer 512 Bytes, nur die sind anders organisiert! Da gibts dann halt doppelt so viele Sectoren wie bei den 720KB Disks! Das einzigste, was anders sein kann (und auch meistens ist) ist die CD, Da sind die Sectoren oft großer (und die anzahl der Bytes ist auch nicht immer durch 512 teilbar)
-
Außerdem is so nen Sektor eigentlich noch größer als 512 Bytes da sind nämlich noch Steuerinfos für den Controller gespeichert.
-
Also mal um alles zusammenzufügen *G*
Die standardgröße eines Sectors von Datenträgern (ausgenommen CD) ist 512 Bytes. Wie MS schon erwähnt könnte es auch sein das ein solches Medium eine andere Zahl benutzt. Daher SOLLTE man seine Treiber eigentlich so schreiben das sie mit theoretisch jeder größe funzt. WIe MS aber selbst zugibt haben die selbst auch geschlampt und die 512 Bytes voll fest in den Treiber eingebaut.
Die Steuerinformationen von denen Lobman redet sind zwar vorhanden, aber auf einer Extra Seite der Platten die in einer HD drin sind. Sprich sie sind NICHT auf der selben platte auf der auch die Daten sind.
Ich persöhnlich arbeite auch immer mit den 512 bytes Pro sector, da ich mich mit der CD noch nicht soweit beschäftigt habe und ich noch keinen anderen Datenträger gesehen habe, der eine andere Sectorgröße hat.
Um die Sectorgröße zu ändern müsste man eine HD lowlevel formatieren und wie schon erwöhnt wohl auch die Firmware aktualisieren.
-
Das Problem bei der Lowlevel-Formatierung: Die meisten Festplatten verlieren ihre Garantie! (Man kann es ja, wennn man es unbedingt haben möchte mit loopback-Devices ausprobieren :) )
-
Naja das ich das erwähnt habe sollte eigentlich keine Anleitung sein das man es machen soll, sondern vielmehr lediglich das es theoretisch gehen könnte :)
-
Danke Euch! Das wollt ich wissen. ;)