Wird beim Speichern einer Datei der alte Inhalt überschrieben?

sugar76

Cadet 4th Year
Registriert
Nov. 2017
Beiträge
108
Hallo,

ich hätte mal eine Verständnisfrage, dazu folgendes Szenario:
1) Ich öffne eine Word-Datei
2) Ich nehme Änderungen vor
3) Ich speichere die Datei am selben Ort unter demselben Namen

Jetzt ist die alte Datei natürlich futsch (Spezialitäten wie Schattenkopien, Backups, etc. lassen wir mal außen vor).

Aber wie sieht das physisch auf der Festplatte aus?

Wird die alte Datei mit dem Speichern der Änderungen physisch auf der Festplatte überschrieben oder wird die geänderte Datei an einem anderen Ort auf der Festplatte gespeichert?

Gruß :)
 
Genau kann man das nicht vorhersagen. In den meisten Fällen wird wohl, wie Du vermutest: "die geänderte Datei [ganz oder teilweise] an einem anderen Ort auf der Festplatte gespeichert".
 
Die Antwort lautet Jein... ;)
Es kann beides eintreten. Je nach dem wie fit die Platte ist, ob SSD oder HDD, wie voll usw.
 
  • Gefällt mir
Reaktionen: areiland
Hallo. Das kann man bei modernen Laufwerken wie SSDs schlecht vorhersagen. Der Controller auf dem Laufwerk zeigt dem Betriebssystem ein anderes Bild als der Controller tatsächlich auf dem physischen Speichermedium malt.
 
Mir geht es um eine HDD.

Jesterfox schrieb:
Also zumindest Word speichert als neue Datei und löscht dann die alte. Ein Überschreiben kann zumindest in dem Fall also nicht eintreten.

Hast Du zufällig eine Quelle, wo man das mal nachlesen kann? Ich glaub Dir das natürlich, ich würde einfach gerne mehr darüber erfahren.
 
Quelle hab ich jetzt auf die schnelle keine außer meine Selbstversuche mit Hardlinks im NTFS Dateisystem. Bei denen fällt das Verhalten nämlich auf ;-)

Bei einem Hardlink erzeugt man einen zweiten Dateisystem Eintrag auf die selbe Datei. Wenn das ein Worddokument ist und man verändert und speichert dies hat man danach bei dem Link den man in Word geöffnet hat die neue Datei, der zweite Link zweigt aber noch auf die alte Datei.
 
  • Gefällt mir
Reaktionen: Nilson
Jesterfox schrieb:
Quelle hab ich jetzt auf die schnelle keine außer meine Selbstversuche mit Hardlinks im NTFS Dateisystem. Bei denen fällt das Verhalten nämlich auf ;-)

Hab ich gerade auch mal probiert und siehe da: nach dem Speichern der Änderungen verweist der Hardlink noch auf die alte Datei. :)
 
Es können drei Szenarien eintreten! Einmal, das Programm speichert die geänderte Datei, sie wird im Dateisystem komplett woanders abgelegt und die bisherigen Sektoren werden freigegeben - das kann passieren, wenn die neue Dateifassung sehr deutlich grösser ist als die Vorgängerversion. Im zweiten Fall wird die bisherige Datei überschrieben und ein Teil der (nun etwas längeren) Datei landet an anderer Stelle im Dateisystem - sie fragmentiert also. Der dritte Fall ist eben der, dass direkt hinter der Datei noch Sektoren frei sind und deshalb wird die nun geänderte Datei komplett am alten Platz abgelegt, aber wegen der neuen Grösse in die hinter ihr liegenden freien Sektoren erweitert.

Kommt alles auf das Dateisystem, den Fragmentierungsgrad, den Datenträgertyp und die Vorher/Nachher Grösse der Datei an. Die Regel werden aber die Fälle zwei und drei sein.
 
Für den normalen Anwendungsfall ist davon auszugehen, daß die Datei überschrieben wird. Ob das tatsächlich eintritt oder nicht, ist Glückssache. Im produktiven Einsatz sollte man sich nicht darauf verlassen, daß die alte Kopie der Datei noch vorhanden ist, stürzt der Rechner im Schreibvorgang ab.

Die Ausnahme bilden (atomic) COW-Dateisysteme. Hier wird tatsächlich die alte Version nicht überschrieben und nur auf Anweisung gelöscht.
 
Also das hat doch Licht ins Dunkel gebracht, danke für alle Antworten.

Hintergrund der ganzen Sache ist ein Datenverlust beim Speichern einer Word-Datei - es wurde der gesamte Text gelöscht und dann gespeichert (nicht von mir).

Ich habe eine Datenrettungssoftware über die Platte laufen lassen (EaseUS). Obwohl die Datei über Monate regelmäßig bearbeitet wurde, hat die Software nur wenige alte Versionen der Datei gefunden. Deswegen habe ich vermutet, dass Word beim Speichern die Datei immer wieder überschreibt - was nicht der Fall ist, wie die Antworten gezeigt haben.
 
sugar76 schrieb:
Wird die alte Datei mit dem Speichern der Änderungen physisch auf der Festplatte überschrieben oder wird die geänderte Datei an einem anderen Ort auf der Festplatte gespeichert?
Das hängt vom Betriebssystem ab, bei VMS war es so, dass jede Datei noch eine Versionsnummer am Ende hatte und man damit immer beide Versionen hatte, bis man die alte gelöscht hat. Auf die aktuellste Version griff man automatisch zu, wenn man den Dateinamen ohne Versionsnummer verwendet hat. Aber ist ein Spezialfall, bei Windows den normalen Linux Distributionen hängt es alleine davon ab ob es eine HDD oder eine SSD ist. Bei der HDD wird die alte Datei überschrieben, sofern, die Größe der neuen mit der alten Version (ungefähr) übereinstimmt. Bei einer SSD werden die Daten auch unter den gleichen LBAs abgelegt, aber intern auf andere NANDs geschrieben, man kann NAND Pages nicht einzeln löschen, sondern nur NAND Blöcke die z.B. 256 oder 512 Pages umfassen und in der Mappingtabelle zeigen diese LBAs dann auch die NAND Adressen wo die neuen Daten stehen. Die alten Daten im NAND werden damit für normales Auslesen unerreichbar und für den Controller ungültig, der Controller wird also bei nächster Gelegenheit den NAND Block löschen in dem sie stehen und damit die alten Daten vernichten. Überschreiben reicht daher auch bei SSDs um die alten Daten zu vernichten, auch wenn dies dann erst zeitverzögert durch den Controller in der nächsten Idle-GC passiert.

Bei Word ist es aber sowieso so, dass die alte Datei gar nicht direkt überschrieben wird, aber dies wurde ja hier schon erwähnt.
 
Zurück
Oben