Forum: Mikrocontroller und Digitale Elektronik Formatieren mit Fat16 statt Fat12 unter Windows?


von FATBastler (Gast)


Lesenswert?

Hi, wie kann man unter Windows 2000 oder XP einen USB-Stick mit FAT16 
formatieren? An vielen Stellen wird nur FAT, Fat32 und NTFS angeboten, 
und Fat ist dann Fat12.. leider.. steht auch so im Bootsektor, wenn man 
mit einem Hexeditor 'reinschaut..

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> ... und FAT ist dann FAT12

Das hängt von der Größe des Speichermediums ab. Wie groß resp. winzig 
ist denn Dein USB-Stick?

von FATBastler (Gast)


Lesenswert?

Ich probiere hier mit einem alten 32MB 'rum.. Aber ich möchte eben 
selbst FAT16 einstellen (die FAT liest sich dann einfach besser..)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Dann versuche mal, die Clustergröße so zu wählen, daß mehr als 4096 und 
weniger als 65526 Cluster* benötigt werden.

Bei 32 MiB sollten also bereits 4 kiB-Cluster genügen, um FAT16 zu 
erzwingen.

Dazu ist der Kommandozeilenformatierer wie folgt aufzurufen:

   format x: /a:4096


*)  "Zuordnungseinheit"

von FATBastler (Gast)


Lesenswert?

Vorher hatte ich zum Testen eine 16MB CF-Karte im Kartenleser. Habe den 
Bootsektor selbst von Hand draufgeschrieben mit FAT16, dann mit Windows 
formatiert und eine Datei von 64KB (128 Sektoren) draufgeschrieben.

Ich glaube, Windows ignoriert mein Fat16 und macht Fat12 draus. die FAT 
sieht jedenfalls so aus, und ich kapier's nicht - muß ich immer 3 
Halbbytes nehmen bei Fat12, und wie sortieren, damit da was korrektes 
'rauskommt / wie liest man das:?

F8 FF FF 03 40 00 05 60 00 07 80 00 09 A0 00 0B
C0 00 0D E0 00 0F 00 01 11 F0 FF 00 00 00 00 00
(rest Nullen)

Adressen auf der Karte:
1. Fat ab 1000 hex
2. Fat ab 2800 Hex
Verzeichnis ab 4000 Hex (Dateiname)
Datei (erster Sektor) ab 8000 hex

von FATBastler (Gast)


Lesenswert?

sorry natürlich nicht formatiert, nur die Datei draufgeschrieben.. :-)

von FATBastler (Gast)


Lesenswert?

Das mit dem Ändern der Clustergröße funktioniert tatsächlich.. Jetzt 
list sich die FAT wie ein Buch :-)

Es wäre eben nur schön, wenn man das per Paramter und nicht per "try and 
error" beim Formatieren einstellen könnte..

Hat noch jemand einen Tipp, wie man die obige Fat12 
auseinandernimmt/liest?

von fubu1000 (Gast)


Angehängte Dateien:

Lesenswert?

hallo,
das sollte Dir helfen.

von Bernhard M. (boregard)


Lesenswert?

Oder unter Linux:

mkdosfs -F 16 ...

von FATBastler (Gast)


Lesenswert?

@fubu1000

Hab mal 'reingeschaut - daß sich immer mal ein Byte aufteilt, ist mir 
schon klar, aber WIE? Also das Beispiel oben zeigt eine FAT einer 
sequenziellen, unfragmentierte Datei

F8 FF FF 03 40 00 05 60 00 07 80 00 09 A0 00 0B
C0 00 0D E0 00 0F 00 01 11 F0 FF 00 00 00 00 00
(rest Nullen)

Also wenn man es als Sektortabelle schreiben wollte -
FF8
FFF
403
000
605
..

??

von holger (Gast)


Lesenswert?

>Also wenn man es als Sektortabelle schreiben wollte -
>FF8
>FFF

Schon nicht schlecht. Rate mal wieso das FAT12 heisst ;)

von FATBastler (Gast)


Lesenswert?

weil 12 Bit für einen FAT-Eintrag verwendet werden. Mußte gar nicht 
raten. Ich sehe auch, daß fortlaufende Zahlen vorkommen. Ich weiß nur 
nicht, wie ich die o.g. Bytefolge lesen muß, damit 003-004-005 usw 
rauskommt?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Die ersten drei Bytes der FAT beschäftigen sich nicht mit Deiner Datei.

F8 FF FF
ab cd ef

dab efc  --> FF8 FFF

Das sind die FAT-Einträge 0 und 1, die für das Root-Directory stehen 
dürften.

Deine Datei beginnt mit FAT-Eintrag 2

03 40 00
ab cd ef

dab efc  --> 003 004


05 60 00
ab cd ef

dab efc  --> 005 006


07 80 00
09 A0 00
0B C0 00
0D E0 00

Das überlasse ich dem geneigten Leser als Tippübung.

0F 00 01
ab cd ef

dab efc  --> 00F 010

11 F0 FF
ab cd ef

dab efc  --> 011 FFF

FFF kennzeichnet das Dateiende.

von FATBastler (Gast)


Lesenswert?

dabefc also? :-) ja, so kommt es hin. Ich wußte nicht, daß 3 Byte zu 2 
Einträgen kombiniert werden, danke. Immer toll, wenn sich jemand 
auskennt.

Hatte vermutet, daß ich etwas sehen würde wie 00 30 04 00 50 06 00 70 ..

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.