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:(