mikrocontroller.net

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


Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: FATBastler (Gast)
Datum:

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

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: FATBastler (Gast)
Datum:

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

Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: fubu1000 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
das sollte Dir helfen.

Autor: Bernhard M. (boregard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder unter Linux:

mkdosfs -F 16 ...

Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
..

??

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Also wenn man es als Sektortabelle schreiben wollte -
>FF8
>FFF

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

Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: FATBastler (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ..

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.