nemoinho: Dateiende ohne Angabe der Länge in FAT32 identifizieren

Hallo alle zusammen,

wie bereits im Titel zu sehen ist habe ich einmal eine kleine Frage zum Aufbau des FAT32 Dateisystems.

Ganz konkret ist die Frage, ob es eine Art "Schlussbyte" gibt, das anzeigt, das eine Datei zuende ist, denn ich habe hier einen zerschossenen USB-Stick, auf dem PC Inspector (Windows) zwar etwas findet, aber das ganze nicht sichern kann und ich auf Ubuntu mittels foremost nur Datein identifizieren kann, von denen Anfang und Ende bekannt sind.

Es würde mir auch schon reichen, wenn ihr mir eine Konfiguration nennen könntet, anhand derer man .txt .reg usw., halt die ganzen reinen Textfiles identifizieren könnte.

Danke schonmal im Vorraus, zumal mich dieses Thema auch in technischer Sicht interessiert.

mfG

--
Manchmal gibs was neues :)
fo:| ch:| rl:( br:> n4:? ie:( va:) de:> zu:) fl:( ss:| ls:[ js:)
  1. Nein, so etwas gibt es bei FAT32 nicht. Im Falle der Fragmentierung ist man ohne die entsprechend FAT aufgeschmissen. Ansonsten kann man die Hoffnung hegen, dass viele Dateiformate nicht nur einen Header, sondern auch einen Footer beinhalten. Ansonsten kann man die Länge nur raten und versuchen, überflüssiges Padding zu entfernen.

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
  2. Hello,

    Ganz konkret ist die Frage, ob es eine Art "Schlussbyte" gibt,

    Die Datei ist in Cluster aufgeteilt. Wie diese zusammenhängen, steht im FAT. Der speichert eine vorwärts verkettete Liste.

    Der letzte Cluster in der Kette hat eine eigene Kennung (0FFFFFF8.16 - 0FFFFFFF.16)

    Guckst Du unter http://de.wikipedia.org/wiki/File_Allocation_Table

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Hallo,

    wie bereits im Titel zu sehen ist habe ich einmal eine kleine Frage zum Aufbau des FAT32 Dateisystems.

    die Frage, die du konkret aufwirfst, hat aber nichts mit dem konkreten Dateisystem zu tun.

    Ganz konkret ist die Frage, ob es eine Art "Schlussbyte" gibt, das anzeigt, das eine Datei zuende ist

    Nein. Ob das Dateiende überhaupt an einem Merkmal des Dateiinhalts erkennbar ist, hängt sehr stark von der Art der Daten ab. Viele Dateitypen haben am Anfang einen Header, in dem irgendwie eine Information über die Länge verklausuliert ist; rein blockorientierte Dateien wie z.B. mp3-Audiodateien bieten überhaupt keinen solchen Anhaltspunkt.

    denn ich habe hier einen zerschossenen USB-Stick, auf dem PC Inspector (Windows) zwar etwas findet, aber das ganze nicht sichern kann und ich auf Ubuntu mittels foremost nur Datein identifizieren kann, von denen Anfang und Ende bekannt sind.

    Dann hast du (bzw. das Programm) zusätzlich die Schwierigkeit, dass die Datenblöcke (Cluster) einer Datei nicht immer in aufeinanderfolgenden Blöcken auf dem Datenträger liegen müssen. Der Effekt ist als Fragmentierung bekannt und bei FAT-Dateisystemen sehr ausgeprägt. Da kann theoretisch sogar der Cluster mit dem Dateiende vor dem Dateianfang liegen, auch wenn das sehr ungewöhnlich ist.

    Es würde mir auch schon reichen, wenn ihr mir eine Konfiguration nennen könntet, anhand derer man .txt .reg usw., halt die ganzen reinen Textfiles identifizieren könnte.

    Textbasierte Dateien kann man IMHO nur mit menschlichem Eingriff richtig erkennen. Sehr oft (aber nicht immer) enden sie mit einem Zeilenumbruch, seltener mitten in der Zeile. Manchmal werden sie mit Ctrl-Z als Dateiendekennzeichen markiert, aber das ist mittlerweile selten. Auch das Auftreten von sehr vielen Zeichen außerhalb des ASCII-Bereichs kann ein Indiz dafür sein, dass die Datei eigentlich schon zu Ende war und man nun im Datenmüll stochert, der zufällig den Cluster auffüllt.

    Aber wie schon gesagt: Mit dem Dateisystem hat das alles nichts zu tun. Wenn man schon mal die Kette aller Sektoren hat, die zu einer Datei gehören, müssen diese Sektoren bei jedem Dateisystem den gleichen Datenstrom wiedergeben.

    Ciao,
     Martin

    --
    Moskito, ergo summ.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Danke für die Antwort, auch wenn sie mir entsrechend nicht viel weiter bringt, das Problem ist eigentlich mehr, das ich nahezu alle Dateien wiederhergestellt bekomme, außer halt einige .reg Dateien, die immermal ganz hilfreich waren, sowie spezielle logfiles die unsere Software erzeugt und entsprechend halt auch textdateien sind, ebenso wie die .xml.

      Allmählich gehe ich aber auch schon fast von einem physikalischen Schaden aus, da diverse Cluster Fehlerhaft sind und der Stick weder von Windows noch von Ubuntu eingehängt werden.

      Naja wie gesagt danke, ich werde mein Bestes tun, um so viele Dateien wie möglich zu retten.

      mfG

      --
      Manchmal gibs was neues :)
      fo:| ch:| rl:( br:> n4:? ie:( va:) de:> zu:) fl:( ss:| ls:[ js:)