Ich hatte Windows lange nichtmehr benutzt, dann musste ich ein
Worddokument bearbeiten, und da ich Word auf Linux gerade nicht
instaliert hatte, startete ich Windows.
Danach hab ich Windows mit dem Befehl shutdown /h heruntergefahren, um
den Updates zu entgehen.
Als ich dann Linux wieder startete, musste ich feststellen, dass auf
meiner fat32 partition, auf der alle meine Daten waren, nurnoch
SystemVolumeInformation zufinden war.
Bei einem meiner letzten Projekte hab ich von den Letzten Änderungen
noch kein backup (100 bis 200 geänderte zeilen c code)
Ich habe versucht mit fsck die Daten zu Retten, nach über 5 Stunden
hatte ich ich Dateien die fsck0000.rec bis fsck9999.rec benannt waren.
Die gesuchten Daten scheinen nicht darunter zu sein (grep -r "int main"
. lieferte nur 4 binärfiles). Ausserdem wahren da sicher mehr als 10000
dateien drauf.
Wie kann ich die Dateien retten? Ich hab für sowas momentan nämlich
eigentlich gerade keine Zeit.
PS: Windows erkent seit dem letzten start das Dateisystem der Partition
nichtmehr, linux schon.
1. keine Schreibzugriffe mehr auf die Partition!
2. probiere das hier mal
http://www.piriform.com/recuva
3. Daten, von denen es kein Backup gibt, sind per Definition unwichtig.
fchk
Frank K. schrieb:> 1. keine Schreibzugriffe mehr auf die Partition!> 2. probiere das hier mal>> http://www.piriform.com/recuva
Zu spät. Sein recovery tool hat schon alles durcheinandergebracht.
Frank K. schrieb:> 3. Daten, von denen es kein Backup gibt, sind per Definition unwichtig.
Yes. Schon damals zu (5 1/4-Zoll) Disketten-Zeiten haben sich die
Leute "gewundert" warum die Disketten nicht das halten was sie
drauf geschrieben haben.
Penetranter Backupper schrieb:> Yes. Schon damals zu (5 1/4-Zoll) Disketten-Zeiten haben sich die> Leute "gewundert"
Schon im letzten Jahrtausend hat man leere und beschriebene Datenträger
irrtümlich vertauscht. Damit erkennt man, daß EIN Backup zu wenig sein
kann.
Daniel A. schrieb:> nach über 5 Stunden hatte ich ich Dateien die fsck0000.rec bis fsck9999.rec
Womit einige echte Daten wahrscheinlich überschrieben wurden und einige
Rechte verbogen? Lernen durch Schmerz!
Daniel A. schrieb:> Windows erkent seit dem letzten start das Dateisystem der Partition> nichtmehr, linux schon.
Vermurkst! Klüger wäre ein KOMPLETTES Image mit Clonezilla-CD gewesen
und dann nur die 1:1 Kopie zu vermurksen. Finger weg vom Original! Jeder
Schreibversuch verschlimmbessert nur die Situation.
oszi40 schrieb:> Schon im letzten Jahrtausend hat man leere und beschriebene Datenträger> irrtümlich vertauscht. Damit erkennt man, daß EIN Backup zu wenig sein> kann.
Das kann mir nicht passiert sein, die Festplatte ist fest Eingebaut und
wurde noch nie ersetzt. Bei den Backups solle ich mir allerdings
tatsächlich zusätzliche strategien ausdenken.
> Daniel A. schrieb:>> nach über 5 Stunden hatte ich ich Dateien die fsck0000.rec bis fsck9999.rec> Womit einige echte Daten wahrscheinlich überschrieben wurden und einige> Rechte verbogen? Lernen durch Schmerz!
Die Rechte spielen sowiso keine Rolle mehr, es geht ja nur um ca. 100
geänderte codezeilen in ca. 6 files. fsck sollte intakte blöcke erkennen
können und diese nicht überschreiben. Das Restrisiko kann ich eingehen.
(ca. 10k directory entries auf einige hundert GB festklattenspeicher und
wenige kb gesuchte files)
> Daniel A. schrieb:>> Windows erkent seit dem letzten start das Dateisystem der Partition>> nichtmehr, linux schon.>> Vermurkst! Klüger wäre ein KOMPLETTES Image mit Clonezilla-CD gewesen> und dann nur die 1:1 Kopie zu vermurksen. Finger weg vom Original! Jeder> Schreibversuch verschlimmbessert nur die Situation.
Ich weiss, ich mounte sie mittlerweile nurnoch readonly. Für Images ist
für mich dd das einzig wahre Tool. Wenn das Wiederherstellen aber länger
dauert als den Code neu zu schreiben lohnt es sich nichtmehr.
Frank K. schrieb:> http://www.piriform.com/recuva
Das werde ich morgen Ausprobieren, falls tsk-recover über nacht die
files nicht findet.
Daniel A. schrieb:> Das kann mir nicht passiert sein,
Noch nie Laufwerke irrtümlich vertauscht? Wir warten noch ein paar Tage.
Daniel A. schrieb:> Wenn das Wiederherstellen aber länger> dauert als den Code neu zu schreiben lohnt es sich nichtmehr.
Nein Helden brauchen kein Backup?
Daniel A. schrieb:> Als ich dann Linux wieder startete, musste ich feststellen, dass auf> meiner fat32 partition, auf der alle meine Daten waren, nurnoch> SystemVolumeInformation zufinden war.
Sicher, dass du da nicht die Devices vertauscht hast? FAT hat kein
System Volumen Information.
oszi40 schrieb:> Noch nie Laufwerke irrtümlich vertauscht?
Sicher, aber um diese Platte zu Vertauschen müsste ich meinen Laptop
aufschrauben. Ausserdem ist die UID der Partition in meiner /etc/fstab
eingetragen.
tsk-recover hat ca. 70000 files gefunden, alle unvolständig. Darunter
eine veraltete Version eines Shellscripts meines projekts, aber von der
datei habe ich bereits ein backup.
Ich versuchs gerade mit recuva, aber dass scheint nicht für
plaintextfiles gedacht zu sein. Wenn das nicht hilft versuch ichs
manuell mit grep und dem präfix das ich bei meinen funktionen im Projekt
verwendete. Wenn das alles nichts bringt werde ich die letzten
änderungen eben neu schreiben müssen.
Malte S. schrieb:> Daniel A. schrieb:>> Als ich dann Linux wieder startete, musste ich feststellen, dass auf>> meiner fat32 partition, auf der alle meine Daten waren, nurnoch>> SystemVolumeInformation zufinden war.>> Sicher, dass du da nicht die Devices vertauscht hast? FAT hat kein> System Volumen Information.
Absolut sicher. Meine efi Oartition ist auch fat formatiert, und da gibt
es den Ordner auch. Das ist eine windowsgeschichte.
Ich frage mich was windows 8.1 da verbrochen haben könnte.
Daniel A. schrieb:> Danach hab ich Windows mit dem Befehl shutdown /h heruntergefahren
Nö.
/h Versetzt den lokalen Computer in den Ruhezustand.
Kann mit der Option "/f" verwendet werden.
Im Ruhezustand sollte man den PC nicht abschalten bzw. danach Windows
neu starten und die Meldung bestätigen, daß er normal hochfahren soll.
Kann dann gut sein, daß Windows erstmal ein CHKDSK macht, weil im
Ruhezustand noch nicht alle Schreibvorgänge abgeschlossen waren.
Ich würde Windows-Laufwerke immer als NTFS formatieren, das kommt besser
mit solchen Fehlern zurecht. Bei FAT32 kann das System nur feststellen,
ob beide FATs unterschiedlich sind, aber nicht, welche die richtige ist.
Und von alleine formatiert Windows nichts, man muß erst die Meldung
lesen und die Aktion bestätigen. Wer eine Meldung ungelesen bestätigt,
ist auch selber Schuld.
Richtig wäre gewesen:
/s Fährt den Computer herunter.
Eine Projektentwicklung würde ich nie ohne ein VCS machen, was auf einem
anderen Laufwerk speichert. Es passiert schon mal, daß man sich vor
lauter Änderungen total verfranzt und dann kann man eine beliebige
Vorgängerversion wieder herstellen.
Und daß Leute kein Backup machen, ist mir unverständlich. Eine externe
4TB HDD kostet ~120,-€, 1TB <50,-€.
FragDochMutti schrieb:> Sicher, dass du Ahnung hast?
Im Prinzip schon :-) (aber nie genug)
Also lasse ich mich gerne eines Besseren belehren. Allerdings habe ich
außer auf Speicherkarten und -Sticks seit ewigen Zeiten kein FAT mehr
verwendet. Und da gab es diesen Ordner nie.
EDIT: klar, die ESP natürlich, die allerdings habe ich mir auf
Windows-Systemen nie wirklich angeguckt.
Peter Dannegger schrieb:> Im Ruhezustand sollte man den PC nicht abschalten
Doch, das kann man. Dafür ist der Ruhezustand da. Das ist
"suspend-to-disk", nicht "suspend-to-ram" (das nennt Microsoft
mittlerweile "Energiesparen", früher hieß das "Standby").
Allerdings ist dann das Dateisystem in einem ... nicht sicher
abgeschlossenen Zustand, d.h. offene Dateien können inkonsistent sein.
Auf einem im Ruhezustand befindlichen PC sollte man daher nichts anderes
machen, als ihn aus diesem Ruhezustand wieder aufzuwecken, schon gar
nicht mit anderen Betriebssystemen auf das Dateisystem zugreifen.
Peter Dannegger schrieb:> Und von alleine formatiert Windows nichts, man muß erst die Meldung> lesen und die Aktion bestätigen. Wer eine Meldung ungelesen bestätigt,> ist auch selber Schuld.
Eine derartige Meldung gab es nicht. Es gab wärend dem Windows gestartet
war keine Anzeichen, dass etwas formatiert wird. Unter Windows habe ich
das Laufwerk soweit ich weiss auch nicht verwendet.
Recuva hat ungefär 100000 files gefunden. Die gesuchten waren nicht,
bzw. nicht die neuste version dabei. Ich werde es jetzt manuell mit grep
versuchen.
Daniel A. schrieb:> Es gab wärend dem Windows gestartet> war keine Anzeichen, dass etwas formatiert wird.
Ich denke auch nicht, daß es formatiert wurde. Durch den Ruhezustand
wird es einfach nur in einem Zustand gewesen sein, mit dem Linux nix
anfangen konnte und deshalb verrückt spielte.
Ein Windows Start mit Wiederherstellung der Sitzung aus der hiberfil.sys
hätte das bestimmt behoben.
12 Partitionen ist ja ne riesige Menge, sind soviel wirklich nötig?
Bei mir sind auf dem Bootlaufwerk nur 2 Partitionen: System und Daten.
Alle weiteren Platten haben nur eine Partition.
Peter Dannegger schrieb:> 12 Partitionen
Das scheint ein recht "buntes System" zu sein. Sowas geht
erfahrungsgemäß nur soooo lange gut, bis man ein Reparaturtool braucht.
Irgendwas vertauscht und verbogen und das jeweilige Reparaturtool ist
ratlos. Dann hilft nur noch viel Wissen und Handarbeit oder einfach ein
brauchbares Backup aus dem Schrank!
Peter Dannegger schrieb:> Ich denke auch nicht, daß es formatiert wurde. Durch den Ruhezustand> wird es einfach nur in einem Zustand gewesen sein, mit dem Linux nix> anfangen konnte und deshalb verrückt spielte.
Unwahrscheinlich. Im Ruhezustand wird lediglich der RAM-Inhalt in der
hiberfil.sys gespeichert, das Dateisystem bleibt unabhängig davon
konsistent.
Vermutlich hat der TE ganz einfach die Übersicht verloren und die
Partition versehentlich selbst formatiert oder anderweitig beschädigt.
Daniel A. schrieb:> Wie kann ich die Dateien retten? Ich hab für sowas momentan nämlich> eigentlich gerade keine Zeit.
Eine Sicherung hätte dir die Zeit erspart. Wenn überhaupt noch was zu
retten ist, dann am ehesten mit gescheiter Datenrettungssoftware:
http://www.de.quetek.com/products3.htm
Aber wahrscheinlich darf es auch nix kosten...
Peter Dannegger schrieb:> 12 Partitionen ist ja ne riesige Menge, sind soviel wirklich nötig?
Nicht zwangslaufig. Ich habe versucht, alle Dateien die Linux zum booten
braucht auf die ssd /dev/sdc auszulagern, sonstige Daten wie z.b. home
wurden zur vermeidung von platzmangel ausgelagert nach /dev/sda.
Viele der partitionen auf /dev/sda waren schon von anfang an da. Das ESP
konnte ich nicht auf die ssd auslagern, wurde von der PC firmware nicht
unterstützt. Die BIOS boot partition /dev/sda1 wird von grub benötigt,
wenn grub auf einer anderen Platte als das ESP ist. (leider scheint dies
auch secure boot UEFI kram zu verhindern). Projekte und Dinge, auf die
ich immer sofort und von jedem OS aus zugreifen können will haben, oder
hatten das ganze /dev/sdb für sich.
Icke ®. schrieb:> Aber wahrscheinlich darf es auch nix kosten...
Genau, so ist es. Wenn es was kossten dürfte würde ich natürlich andere
Beauftragen.
Meine versuche mit grep sind gescheitert. Ich bekomme immer:
1
grep: memory exhausted
Jedoch findet es wirklich viel, ich werde warscheinlich ein eigenes grep
tool schreiben müssen. Änliches gillt für tail. bei tail /dev/sdb -c
+1234567890 dauert es ewig, bis einmal etwas ausgegeben wird. Tail
verwendet wohl kein fseek...
Daniel A. schrieb:> Wenn es was kossten dürfte würde ich natürlich andere> Beauftragen.
Dann sind deine Daten auch nichts wert. Viel Spaß noch bei der
endgültigen Zerstörung durch weitere dilettantische Maßnahmen.
Icke ®. schrieb:> Dann sind deine Daten auch nichts wert.
Falsch. Meine Daten haben einen hohen persönlichen Wert. Nur die
verlorenen Daten nicht. Die restlichen Daten haben 1 bis 3 backups.
Ärgerlich ist es natürlich trotzdem.
Daniel A. schrieb:> tail /dev/sdb -c> +1234567890
Warum nicht dd bs=1 skip=1234567890 ? Das hat damit keine Probleme.
bs=1 ist zwar nicht sehr performant, aber sonst kein Problem.
Malte S. schrieb:> Warum nicht dd bs=1 skip=1234567890 ? Das hat damit keine Probleme.
Danke, die Möglicheit hatte ich ganz vergessen.
Ich durchsuche die Festplatte gerade mit folgendem Programm:
Ich erziele mit dieser methode gerade erste Erfolge. (Festplatte manuell
durchsuchen + dd)
Gibt es ein linux command line Programm, dass bis zum ersten Nullbyte
alles von stdin auf stdout ausgibt? Das würde einiges vereinfachen.
Da hat Windoof doch bestimmt wieder was mit der Partition Table oder
Root/Boot Block(s) gemacht. So schnell läßt man durch Formatieren nicht
tausende Dateien spurlos verschwinden.
Ich Extrahiere gerade alle Plaintextbereiche indenen "DPAUCS" auf
/dev/sdb vorkommt. As sind einige zehn tausend. Eine gesuchte Datei hab
ich bereits gefunden. Die gesuchten Dateien scheinen ganz am Ende zu
kommen. Nach der Extraktion werde ich Dateien nach anzahl Zeilen und
Grösse aussortieren. Dann dürften nichtmehr viele übrigbleiben.
Ich verwende folgendes Shellscript:
Jetzt hab ich, nach aussortieren von zu grossen und zu kleinen Dateien,
noch 20000 übrig. Jede davon gehört zum Projekt, aber es scheint jede
Version, die ich jemals abgespeichert habe da zu sein. Unbeschädigt!
Erstaunlich das recuva keine davon gefunden hat.
Ich habe die Dateien durchnummeriert, je grösser die nummer desto weiter
hinten auf der Platte war sie. Glücklicherweise scheinen die neusten
Versionen die grössten Nummern zu haben. Morgen muss ich nurnoch mit
grep die einzelnen files suchen, und dann die mit der höchsten Nummer
nehmen.
Fazit: Datenrettung erfolgreich!
PS: Im Programm im Beitrag #4156096 ist ein fehler:
> while( off-- && buf[off] );
müsste so sein: