Überschreibt NTFS eine Datei an demselben physischen Ort (Sektor)?

3097
Randy Sugianto

Ich möchte eine überschriebene Datei auf einer NTFS-Partition wiederherstellen.

Nehmen wir an, ich habe eine Datei mit dem Namen A in einem Verzeichnis.

Ich habe eine andere Datei erstellt, aber diese neue Datei mit dem gleichen Namen "A" gespeichert. Wird die neue Datei auf dem vorhandenen physischen Speicherort von A gespeichert (dh der ursprüngliche Inhalt von A kann nie wiederhergestellt werden), oder wird die neue Datei wahrscheinlich einen anderen physischen Speicherort auf der Festplatte einnehmen (was bedeutet, dass der ursprüngliche Inhalt wahrscheinlich ist) immer noch wiederherstellbar sein?

1
Selbst wenn es nicht jeden einzelnen Sektor überschrieben hat, ist es fast unmöglich, die Daten zurückzugewinnen. Wenn Sie es überschreiben, haben Sie die "Kette" gebrochen, die Sie durch jeden Sektor führt (dh der erste Sektor zeigt auf den nächsten und den nächsten usw.). Diese Daten befinden sich möglicherweise irgendwo auf der Festplatte, aber Sie müssen jeden "freien" Sektor auf Ihrer Festplatte durchsuchen, um sie wiederherzustellen. Und selbst wenn Sie jeden Sektor finden könnten, in welcher Reihenfolge gehen sie ein? Ich hoffe du hattest ein Backup. Michael Todd vor 15 Jahren 1

3 Antworten auf die Frage

3
Tony Lee

Das hängt von der Anwendung ab. Word schreibt beispielsweise eine neue Datei und löscht dann die alte, damit sie nicht überschrieben und wiederhergestellt werden kann. Eine andere App schreibt die Datei möglicherweise neu und schneidet sie dann auf die richtige Größe ab. In diesem Fall gehen alle Daten verloren.

Wenn die Datei zuerst abgeschnitten wird (Einstellung der physischen Größe, nicht der logischen Größe) und dann erneut geschrieben wird, bin ich nicht sicher, was passieren würde, ohne sie zu testen. Wenn die alte Datei gelöscht wird, wird eine neue mit demselben Namen erstellt. Ich denke, das ist eine Frage des Zufalls.

Wenn die Datei klein genug ist, um in den MFT-Eintrag für die Datei zu passen (~ 4k ?, kann ich mich nicht erinnern), werden die Daten mit größerer Wahrscheinlichkeit überschrieben.

2
DanO

Dieser glaubwürdig klingende Newsgroup-Beitrag sowie die Antwort von Tony Lee weisen darauf hin, dass für die meisten Anwendungen ein Überschreiben als "Speichern unter" dasselbe ist wie ein Löschen, gefolgt von einem "Create-New", soweit das Dateisystem betroffen ist. Ich kann diese Verallgemeinerung ablehnen, weil es als Programmierer sinnvoll ist. Wenn ich die Funktion "Speichern unter" implementiere, gibt es keinen Grund, eine API zum Öffnen der Datei mit einer Datei zu öffnen, da dieser Codepfad nur in den seltenen Fällen eines Überschreibens verwendet wird. Ein Programmierer verwendet den Aufruf zum Erstellen einer neuen Datei viel eher für einen schnellen Aufruf von fileDelete, falls dies selten erforderlich ist.

Es gibt jedoch keine sichere Möglichkeit zu wissen, wie der Programmierer der überschreibenden App mit der vorhandenen Datei umgegangen ist, es sei denn, Sie können sie fragen oder das Dateisystemverhalten der App mit einem Tool wie FileMon oder Process Monitor verfolgen .

Im Durchschnitt würde ich vermuten, dass die Wiederherstellung einer Datei, die von einer Anwendung "überschrieben" wurde, nur geringfügig geringer ist als bei allen anderen Dateien, die gelöscht wurden, gefolgt von Schreibvorgängen auf die Festplatte.

Es ist unnötig zu erwähnen, dass NTFS-Undeletes keine sehr zuverlässige Wiederherstellungsstrategie darstellt. Wenn dies wahrscheinlich erneut vorkommt, sollten Sie sich mit einer Art Versionskontrollsystem befassen, um Ihre tägliche Backup-Strategie zu ergänzen. Leider ist die automatische Dateiversionierung, die in manchen Betriebssystemen wie VMS und Netware eine Standardfunktion war, auf dem Mainstream-Markt nicht mehr üblich.

0
shf301

Möglicherweise gibt es keine Möglichkeit zu wissen. NTFS legt Schreibdateien dort ab, wo sie es für am besten hält. Es gibt keine Garantie, wo eine Datei gespeichert wird. Wenn Sie eine Datei wiederherstellen möchten, tun Sie dies so schnell wie möglich. Je länger Sie warten, desto größer ist die Chance, dass die alte Datei überschrieben wird.