Ich möchte eine überschriebene Datei auf einer NTFS-Partition wiederherstellen.
Angenommen, ich habe die Datei A in einem Verzeichnis.
Ich habe eine andere Datei erstellt, aber diese neue Datei mit dem gleichen Namen "A" gespeichert. Wird die neue Datei am vorhandenen physischen Speicherort von A gespeichert (was bedeutet, dass der ursprüngliche Inhalt von A niemals wiederhergestellt werden kann), oder wird die neue Datei wahrscheinlich einen anderen physischen Speicherort auf der Festplatte belegen (was bedeutet, dass der ursprüngliche Inhalt möglicherweise vorhanden ist) ? noch einbringlich sein)?
filesystems
ntfs
data-recovery
overwrite
Randy Sugianto
quelle
quelle
Antworten:
Das hängt von der Anwendung ab. Beispielsweise schreibt Word eine neue Datei und löscht dann die alte, damit sie nicht überschrieben wird 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 (Festlegen der physischen Größe, nicht der logischen Größe) und dann neu geschrieben wird, bin ich mir nicht sicher, was passieren würde, ohne sie zu testen. Wenn die alte Datei gelöscht wird, dann eine neue mit dem gleichen Namen, denke ich, ist es eine Frage des Zufalls.
Wenn die Datei klein genug ist, um in den MFT-Eintrag für die Datei zu passen (~ 4k ?, erinnere ich mich nicht), werden die Daten mit größerer Wahrscheinlichkeit überschrieben.
quelle
Dieser glaubwürdig klingende Newsgroup-Beitrag sowie die Antwort von Tony Lee zeigen, dass für die meisten Anwendungen ein "Speichern als" -Überschreiben mit einem Löschen identisch ist, gefolgt von einem Erstellen eines neuen, was das Dateisystem betrifft. Ich kann diese Verallgemeinerung unterstützen, weil es als Programmierer Sinn macht. Wenn ich die Funktion "Speichern unter" implementiere, gibt es keinen Grund, eine Datei zum erneuten Schreiben des API-Aufrufs zu öffnen, da dieser Codepfad nur im seltenen Fall eines Überschreibens verwendet wird. Ein Programmierer verwendet den Aufruf create-new file viel häufiger mit einem schnellen Aufruf fileDelete, wenn dies in seltenen Fällen erforderlich ist.
Es ist jedoch nicht sicher, wie das Programm der überschreibenden App mit der vorhandenen Datei umgehen soll, es sei denn, Sie können sie fragen oder das Dateisystemverhalten der App mit einem Tool wie FileMon oder Process Monitor nachverfolgen .
Im Durchschnitt würde ich vermuten, dass Sie eine Datei, die von einer Anwendung "überschrieben" wurde, nur geringfügig seltener wiederherstellen als alle anderen Dateien, die gelöscht und anschließend auf die Festplatte geschrieben wurden.
Natürlich sind NTFS-Wiederherstellungen keine sehr zuverlässige Wiederherstellungsstrategie. Wenn dies wahrscheinlich noch einmal vorkommt, schauen Sie sich ein Versionskontrollsystem an, das Ihre tägliche Sicherungsstrategie ergänzt. Leider ist die automatische Dateiversionierung, die in einigen Betriebssystemen wie VMS und Netware Standard war, auf dem Mainstream-Markt nicht mehr üblich.
quelle
Es kann oder kann nicht es gibt keine Möglichkeit zu wissen. NTFS legt Schreibdateien dort ab, wo es seiner Meinung nach am besten ist. Es gibt keine Garantie, wo eine Datei abgelegt wird. Wenn Sie eine Datei wiederherstellen möchten, tun Sie dies so schnell wie möglich. Je länger Sie warten, desto höher ist die Wahrscheinlichkeit, dass die alte Datei überschrieben wird.
quelle