FAT32-Partition Datenstrukturen auslesen/überprüfen (low-lewel)



  • Moin!

    kennt jemand ein Tool was ein Image einer FAT32-Partition akzeptiert und die ganzen Details zu MBR und FAT-Datenstrukturen anzeigt/überprüft? Ich habe hier ein Image von einem USB-Stick der nach Anschluss an ein DSO (digitales Oszilloskop) nicht mehr funktioniert, wenn man ihn anschließt hängt sich Windows (XP) minutenlang auf und sagt dann "nicht formatiert". Mittlerweile ist der Stick unter Linux mittels dd "gereinigt" und anschließend neu formatiert worden und funktioniert wieder, die Daten waren alle gesichert, aber aus purer Neugier wüsste ich gerne mal was das Oszi da genau angestellt hat. Bei MS gibts die Spezifikationen zu FAT32 aber die sind nicht so wirklich lesbar, daher meine Frage. Ich möchte eigentlich wirklich nur die einzelnen Einträge aus den diversen Datenstrukturen auslesen und mit dem Image vom frisch formatierten Stick vergleichen. Kennt da jemand was passendes? Kann auch C-Code sein (gibt es da vielleicht irgendein Beispiel von MS?) solange gcc zum compilieren reicht (kein Visualstudio oder so).

    Danke!



  • TinyHexer kann das, benutz ich jedenfalls.



  • Danke!

    Tiny Hexer kann in der Tat Partition Table und MBR anzeigen/interpretieren, aber nicht die eigentliche FAT, also die Datenstrukturen die sagen was für Dateien/Ordner auf dem Laufwerk vorhanden sind. Der Fehler scheint aber dort zu liegen, was ich vergleichen konnte ist gleich in beiden Images.

    Hat jemand einen anderen Tipp? Eine Suchmaschine habe ich schon nach passenden Skripten für Tiny Hexer befragt, ohne Erfolg.



  • Ich kann dir leider kein passendes Tool nennen, kenne keines.
    Allerdings ... ich weiss nicht was der Vergleich zwischen frisch formatiertem Stick und kaputtem Image bringen soll. Da müssen ja haufenweise Dinge anders sein, auf dem frisch formatierten sind ja keine Verzeichnisse/Files drauf.

    Und...

    elektromix schrieb:

    (...) die eigentliche FAT, also die Datenstrukturen die sagen was für Dateien/Ordner auf dem Laufwerk vorhanden sind.

    Aus der FAT kann man nur rauslesen welche Cluster frei sind, wie viele Files es gibt und welche Cluster die jeweiligen Files verwenden. Wobei man genaugenommen nichtmal exakt zwischen Verzeichnissen und Files unterscheiden kann - eine Klassifizierung ist nur über eine Heuristik möglich.

    Die File-/Verzeichnisnamen, exakte Grösse (über die FAT bekommt man nur die Cluster-Anzahl 'raus), Datum etc. stehen dann in den Verzeichnissen. Die werden im Prinzip gleich behandelt wie Files, nur dass ein Bit im Verzeichnis-Eintrag halt angibt dass das "File" in Wirklichkeit ein Verzeichnis ist. Und der Inhalt so eines "Verzeichnis-Files" sind dann weitere Verzeichnis-Einträge.



  • Ein OS kann so etwas, z.B. unser PrettyOS.
    http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/kernel/filesystem/fat.h
    http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/kernel/filesystem/fat.c
    Schau dort nach den Formatfunktionen ...

    http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/kernel/filesystem/fsmanager.c (dort analyzePartition, formatPartition, ...)
    usw.

    Vielleicht hilft das etwas. Ich analysiere/repariere so etwas immer mit dem Hex-Editor. 😉



  • hustbaer schrieb:

    elektromix schrieb:

    (...) die eigentliche FAT, also die Datenstrukturen die sagen was für Dateien/Ordner auf dem Laufwerk vorhanden sind.

    Aus der FAT kann man nur rauslesen welche Cluster frei sind, wie viele Files es gibt und welche Cluster die jeweiligen Files verwenden. Wobei man genaugenommen nichtmal exakt zwischen Verzeichnissen und Files unterscheiden kann - eine Klassifizierung ist nur über eine Heuristik möglich.

    Die File-/Verzeichnisnamen, exakte Grösse (über die FAT bekommt man nur die Cluster-Anzahl 'raus), Datum etc. stehen dann in den Verzeichnissen. Die werden im Prinzip gleich behandelt wie Files, nur dass ein Bit im Verzeichnis-Eintrag halt angibt dass das "File" in Wirklichkeit ein Verzeichnis ist. Und der Inhalt so eines "Verzeichnis-Files" sind dann weitere Verzeichnis-Einträge.

    Ich wollte einfach mal gucken ob irgendwo etwas sichtbar grob falsch ist, denn irgendwas hat das Oszi ja offensichtlich vermurkst und zwar so dass XP lange dran zu knabbern hat. Das war aber nur so eine Frage aus Neugierde, wenn es kein passendes Tool gibt um "mal eben schnell" zu gucken dann ist das auch nicht schlimm.

    Erhard Henkes schrieb:

    http://sourceforge.net/p/prettyos/code/HEAD/tree/trunk/Source/kernel/filesystem/fsmanager.c (dort analyzePartition, formatPartition, ...)
    usw.

    Danke, aber für "mal eben schnell" etwas umfangreich. 😉

    Vielleicht hilft das etwas. Ich analysiere/repariere so etwas immer mit dem Hex-Editor. 😉

    Wenn man das Format gut kennt kein Problem, aber das ist eben nicht mein Fall.

    Wie gesagt war nur so eine Frage aus Neugierde, wenn nicht ist auch ok. (Zumal ich ehrlich gesagt noch nicht getestet habe ob der Fehler überhaupt reproduzierbar ist...) Danke trotzdem!


Anmelden zum Antworten