Forum: Mikrocontroller und Digitale Elektronik FAT 16 ich kapier's nicht!


von Stefan Seegel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!!

Ich versuche gerade mit meinem AVR auf eine MMC Karte zuzugreifen.
Diverese ergoogelte Beschreibungen über den Aufbau der FAT16 sagen
übereinstimmend, dass an Stelle 0x1BE im Bootsektor (das sollte doch
der erste Sektor (Sektor 0) auf meiner MMC sein ?!) sich der erste
Partitionstabelleneintrag befinden soll. Bei mir (siehe Anhang, ist ein
Hexdump des Sektors 0 meiner frisch formatierten MMC) ist da aber nur
der berühmte String ("Datenträger entfernen. Medienfehler...").
Diverse Codes und Seiten (z.B. www.master-boot-record.de) hab ich mir
schon reingezogen, aber irgendwas in meinem Hirn hat noch nicht
umgeschalten... Vielleicht kann mir da eben jemand helfen das
Zahnrädchen unzuschubsen.

MfG
Stefan

von A.K. (Gast)


Lesenswert?

Nicht jeder Datenträger hat eine Partitionstabelle, Floppies
beispielsweise nicht. Der hier offenbar auch nicht. In solchen Fällen
ist der ganze Datenträger eine einzige Partition.

von Stefan Seegel (Gast)


Lesenswert?

Heul, jetzt blick ich gar nimmer durch...
Wie soll man denn dann von solchen Medien (MMC) booten können, oder
kann man von MMCs nicht booten ?!

Stefan

von A.K. (Gast)


Lesenswert?

Genau so wie man vom Floppy bootet - sofern der Rechner noch ein
Laufwerk dafür hat.

Genau wie bei Disks mit Partitionstabelle wird der Sektor 0 an eine
bestimmte Stelle im Speicher geladen (7C00 oder so) und ausgeführt. Der
Bootcode im Bootsektor weiss schon selber, ob er sich um eine
Partitionstabelle kümmern muss und den Bootsektor der Partition läd und
ausführt (HD) oder sich direkt auf die Suche nach dem Betriebssystem
machen muss (FD).

Wenn man mit einem µC an sowas ran will, muss man halt wissen ob die
Sorte Medium, mit der man es zu tun hat, nun partitioniert wird oder
nicht. Kann man wohl auch rauskriegen, aber ad hoc habe ich nicht parat
wie.

von ape (Gast)


Lesenswert?

ist aber schon irgendwie merkwürdig. Wie groß ist die  MMC und unter was
für einem Betriebssystem hast du sie formatiert? Alle MMCs die ich
bisher angeguckt habe, hatten einen normalen Master Boot Record.
Aber dein Sektor 0 ist ganz offensichtlich ein normaler Volume Boot
Record also der Start-Sektor einer normalen Partition.

von Hans (Gast)


Lesenswert?

nennt sich superfloppy das teil...
wie man aus superfloppy wieder ein schönes "normales" teil bastelt
hab ich schon hier mal gepostet.. aber im zusammenhang mit
usb-sticks..

73

von Stefan Seegel (Gast)


Lesenswert?

Moin!

Es ist eine 16 MB MMC Karte... Das Teil hab ich unter Win XP Pro
formatiert, als Format konnte man nur "FAT" auswählen, was wohl
gleichbedeutend mit FAT16 (oder VFAT ?!) ist. Ich hab auch mal in der
Kommandozeile versucht die Karte mit FAT32 zu formatieren, aber wird
zurückgeschimpft dass der Datenträger zu klein sei. Nun weitet sich
meine Anfrage auf eine weitere aus: Ich möchte, wie so die meisten,
Dateien von meiner MMC mit dem AVR auslesen, und es soll möglichst das
verbreiteste "Format" genommen werden. Nun gibts FAT12, FAT16, FAT32,
usw, und nun auch noch die Sache mit / ohne MBR. VON WAS SOLL MAN DA
JETZT AUSGEHEN (sozusagen der größte gemeinsame Teiler !?).

@Hans: Ich werde mal nach dem Beitrag suchen, hoffe ich finde den!

@ape: Wenn du willst schick ich Dir zum testen mal so eine Karte zu,
und bei der Gelegenheit Danke für die ks0108 Routinen...

Stefan

von Gerhard (Gast)


Lesenswert?

Hallo Stefan,

habe selber noch keine praktische Erfahrung mit den CF/SD/MMC Karten.
Bin aber auch sehr daran interessiert.

Kann Dir aber einen Hinweis auf ein Benutzerhandbuch der Firma PRLLC
geben, die ein AVR/PIC Interface anbieten. Das ist aber ziemlich teuer.
Du solltest Dir vielleicht das untengennante Document runterladen, da
dort immerhin viel Nuetzliches drinnensteht.

http://www.prllc.com/FlashFile.pdf

Hoffe es hilft Dir ein bischen

Gerhard,
Edmonton, Alberta

von ape (Gast)


Lesenswert?

Hallo,
also ich hab mal mit 32MB Karten experimentiert, diese wurden von Win
XP als ganz normale Datenträger formatiert also mit Master Boot Record
und allem was dazu gehört.
Ansonsten dürfte für MMC Karten FAT16 schon das richtige sein, FAT32
wird wohl erst ab 2GB gehen, auch wenn mir eigentlich kein Grund dafür
einfällt, warum es nich auch mit kleineren Partitionen funktionieren
sollte. Allerdings nimmt bei FAT32 die FAT mehr Platz weg und es bietet
bei kleinen Partitionen auch keine Vorteile, außer das nicht nur 512
Einträge ins Root Dir passen.

von Tobias Schneider (Gast)


Lesenswert?

Hi,
ich verwende momentan fuer ein Projekt auch eine 64MB MMC und konnte
die unter Windows mit FAT32 formatieren wobei XP da den MBR augelassen
hat und eine Supperfloppy erzeugt hat. Das laesst sich ja aber im
Geraet recht einfach erkennen. Mann muss den ersten Sektor einfach nur
auf die Standardwerte eines MBR bzw. Fat-Sektors testen und dann
entscheiden ob es ein MBR ist und man den ersten Fat-Sektor noch suchen
muss oder ob man ihn bereits gefunden hat :)

Gruß Tobias

von Marco (Gast)


Lesenswert?

Nur so ne Idee weil ich da im Moment auch aufm Schlauch stehe mit meinem
Mega an meiner 8MB MMC... vielleicht vormatiert Windows deine auch mit
FAT12?
Ich habs bemerkt als ich sie mal aus Langeweile defragmentieren wollte
g Da meine Windows es geht nicht weil es sich um einen FAT12
Datenträger handelt... vielleicht liegt da der Hund begraben.
Im Moment warte ich auch eine 32MB Karte die ich für 6€ bei ebay
ersteigert habe und hoffe die kann ich mit FAT16 formatieren.

von Stefan Seegel (Gast)


Lesenswert?

@Marco

Das war bei meiner Karte auch so, dass sie zunächst FAT12 war. Dann hab
ich mit einem HexEditor den ersten Sektor mit Nullen überschrieben und
dann nochmal mit Windows formatieren lassen. Dann war's endlich ne
FAT16, wenn auch im "Superfloppy" Format.

Nochmal für mich langsam:
Wer/Was legt fest, ob eine MMC/SD/CF Karte im Superfloppy Format
formatiert wird oder ob eben Partitionen drauf sind ? Ich hab hier noch
ne 256MB MMC gefunden, die ist auch im Superfloppy Format. Ach ja, eine
64MB CF Karte hab ich dann auch noch gefunden, auch Superfloppy. Kann
man sagen dass die meisten Karten im Superfloppyformat sind ? Oder
anders: Wenn ich nun meine Hardware ausschließlich für das
Superfloppyformat auslege und erwisch dann doch ne Karte die nicht im
Superfloppy Format ist, wie kann man die Karte dann bekehren ?

Und noch kurz was anderes:
Wie heißt nun eigentlich der erste Sektor einer Superfloppy ? Ist das
der VBR (Volume Boot Record) ?

Grüße und weterhin noch viel Spaß im FAT-Wirrwarr

Stefan

von ape (Gast)


Lesenswert?

@Stefan:
Wie gesagt meine 64MB MMC Karten habe ich auch ganz normal unter Win XP
formatiert und das waren keine Super-Floppies...
Wahrscheinlich wird sich XP bei der neu formatierung danach richten was
vorher schon drauf war, so dass eine Super-Floppy auch nach neu
formatierung immernoch eine Super-Floppy ist.
Oh les gerade das du den ersten Sektor mit 0en überschrieben hast dann
fällt diese Theorie wohl flach...
Ansonsten sollte die Erkennung Super-Floppy oder nicht nach der von
Tobias beschriebenen Methode in der Tat kein großes Problem sein.

Jedenfalls ist der erste Sektor einer solchen Super-Floppy dem Inhalt
nach offensichtlich ein Volume Boot Record, ob dieser nun auch Volume
Boot Record oder MAster Boot Record oder irgendwie anders heißt...
keine Ahnung :P

von Freak5 (Gast)


Lesenswert?

Hast du das mit den Nullen mit einem AVR gemacht oder welches Programm
verwendest du dazu? Der Explorer wird denn Bootsektor wohl nicht
anrühren...

von Tobias Schneider (Gast)


Lesenswert?

z.b. WinHex

von Stefan Seegel (Gast)


Lesenswert?

@ape:
Ok, ist schienbar Herstellerabhängig mit dem Format, und Windows
formatiert einfach so wie die Karte eben ist, genauso wie bei
Festplatten eben, wenns eine NTFS Partition ist wird NTFS formatiert,
wenns eine FAT ist dann eben halt FAT. Wenns Dir mal langweilig ist
knall doch mal den ersten Sektor mit Nullen zu und lass Windows dass
Ding dann formatieren. Ich gehe mal davon aus dass du dann eine
Superfloppy hast... Alle Karten (MMC und CF) die ich hier gefunden habe
waren allerdings schon im Superfloppy Format als ich sie bekommen habe.

@Freak5
Oder Hex Workshop, ist mein Lieblings-Hexer...

Stefan

von Stefan Seegel (Gast)


Lesenswert?

So, hab mal ein bischen weiter geforscht wie das so ist mit dem Volume
Boot Sektor. Ich hatte dann folgendes vor: Auf einer MMC eine
Superfloppy (also Partition) erzeugen die sagen wir 1MB groß ist, und
der Rest soll frei sein für propriäteres Geschreibsel vom AVR. Dazu
habe ich mir selber einen VBR im HexEditor geschrieben, aber egal wie
ichs anstelle, Windows, die Sau ;-), sagt mir immer 16MB an, (so groß
ist meine Karte).
Daher die Frage nun:
Geht das überhaupt was ich will, oder zieht sich Windows die Daten über
die Größe der Karte direkt von der selbigen (CSD oder wie das Register
bei einer MMC heißt) ? Wär komisch, weil Windows muss ja auch erst mal
im VBR kucken was für ein Format (FAT12/16/32, NTFS) die Karte hat und
kann sie darauf hin erst entsprechend formatieren...

Stefan

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.