Ich habe kürzlich einen unglaublich kleinen, aber ziemlich wichtigen Schaden an einer Festplatte auf einem ESXi-Host erlitten, der einige VMs betrifft. Es gibt eine Datei, die ich sehr gerne wiederherstellen würde, und natürlich wurde sie irgendwie von meiner regulären Sicherung weggelassen. Die neuesten Exemplare sind 6 Monate alt. Es stellt sich heraus, dass ich das brauche ... oops.
Einzelheiten:
1) Ich habe ddrescue (AWESOME-Tool) in einer bootfähigen ISO von Parted Magic verwendet, um 99,98% des betreffenden VM-Laufwerks wiederherzustellen. Leider scheinen die Fehler fast ausschließlich auf das Schreiben von RECENT-Dateien zurückzuführen zu sein. Natürlich sind dies genau die Sektoren, die ich am meisten wiederherstellen muss.
2) Das Laufwerk gibt E / A-Fehler bei fehlerhaften Sektorlesevorgängen aus, ERFOLGT jedoch gelegentlich beim Lesen eines zuvor fehlerhaften Sektors! Eine Wiederherstellung ist also weiterhin möglich. Etwas häufiger kommt es zu einer größeren Fehlfunktion, und das Laufwerk wird herunter- und wieder hochgefahren. Oh, und ungefähr 1/4 dieser Spin-Downs werden nicht wieder hochkommen. (Hard Power Cycle erforderlich, Herunterfahren funktioniert nicht) Zuletzt kommt fast jeder fehlerhafte Sektor mit einem schönen hörbaren Klickgeräusch.
3) Die wichtige VM-Festplatte ist NTFS-formatiert.
4) Ich kann das beschädigte NTFS-Volume (normalerweise) schreibgeschützt bereitstellen und (etwas seltener) zu dem Ordner navigieren, der die benötigte Datei enthält. Die betreffende Datei scheint jedoch immer einen E / A-Fehler zu geben, wenn ich ein 'ls' des Ordners mache. Die anderen Dateien im Ordner geben keinen E / A-Fehler aus.
5) Ich habe versucht, ntfsinfo / etc ... zu verwenden, was genau so klingt, wie ich es brauche ... aber die Partition wird überhaupt nicht geöffnet. (Frustrierend, da "Mount" normalerweise wird)
6) Die Datei ist eine XLS-Datei aus der Excel 2003-Ära, daher bin ich mir nicht sicher, ob ich Zeichenfolgen für die Suche im Raw-Disk-Image finden kann. (Möglicherweise Teile der 6 Monate alten Version?)
Ich würde wirklich gerne so etwas wie die Einrichtungen von Debugfs nutzen. Aus den Manpages geht jedoch hervor, dass die ntfs-Tools die Arbeit erledigen könnten, wenn nur die Partition geöffnet werden könnte. Insbesondere frage ich mich, ob die E / A-Fehler möglicherweise nur innerhalb der Metadaten für die Datei liegen und ob der Verzeichnisdatensatz gut genug wiederhergestellt werden kann, um den Dateiinhalt zu kopieren. Als letztes Mittel wäre jeder Teil der Datei, den ich abrufen kann, großartig.
Ich habe bereits (relativ einfache) Kernelmodule geschrieben, damit ich ein spezielles NTFS-Modul mit mehr aktivierten (oder hinzugefügten) Debug-Informationen kompilieren kann. (Die Datei ist mindestens ein paar Tage wert, um zu versuchen, sie wiederherzustellen ... und ich lerne dabei coole Sachen)
Irgendwelche Hinweise?
BEARBEITEN:
Weitere Informationen zu Laufwerksfehlern:
Die / var / log / messages zeigt natürlich viele NTFS-fs-Fehler an ... aber ich habe mich schließlich die Mühe gemacht, die unbehandelte Sense-Code-Nachricht zu übersetzen, die ich normalerweise bekomme: Sense-Schlüssel 0x3, ASC = 0x11, ASCQ = 0x4. (Dies scheint zu UNRECOVERED READ ERROR - AUTO REALLOCATE FAILED zu führen).
Wenn sich das Laufwerk herunterfährt, wird die Meldung "scsi0: * BusLogic BT-958 Initialized" angezeigt. Ich bin nicht sicher, ob es der Linux SCSI-Treiber, der ESXi-Treiber oder das Laufwerk selbst ist, das entscheidet, das Laufwerk herunterzufahren. Wenn es der Linux-Treiber wäre, könnte ich den Treiber möglicherweise ändern, um ein Herunterfahren zu vermeiden. Diese ganze Ddrescue-Sache wird durch diese Spindowns, die einen Stromzyklus erfordern, massiv schmerzhafter.
EDIT2:
Mit der Protokollmeldung "end_request: E / A-Fehler, dev sda, Sektor 7238859" habe ich meine ddrescue-Operation auf diesen Sektor ausgerichtet, nachdem ich das Verzeichnis mit der betreffenden Datei gefunden habe. Ich plane derzeit, mein Risiko einzugehen und diesen Sektor zurück auf die Live-Festplatte zu schreiben, wenn dies erfolgreich ist. Vielleicht kann ich auf diese Weise langsam meinen Weg zu der fraglichen Datei wiederherstellen. Dennoch werden die meisten wiederherstellbaren schlechten Sektoren in weniger als 20 Wiederholungsversuchen wiederhergestellt ... dieser ist bisher über 150 ... * seufz *
EDIT3:
Der Sektorfehler von 'ls' in der Datei, die ich benötige, ist völlig unkooperativ (1000+ Versuche über Nacht und kein Glück). Ich hoffe, das sind nur Metadaten, wenn Sie ein 'ls' machen? :) :)
Ich habe den größten Teil einer Ddrescue-Kopie, aber diese wird nicht gemountet (oder ohne Dateien gemountet). Das beschädigte Laufwerk wird die meiste Zeit korrekt montiert ... Möglicherweise fallen E / A-Fehler an der beschädigten Laufwerkskraft auf den Spiegel zurück, der funktioniert.
** EDIT4: **
Ich habe vorerst aufgegeben, bis weitere Vorschläge vorliegen. Ich habe das Laufwerk entfernt und die Box neu aufgebaut. Ich werde die Fahrt behalten, falls etwas auftaucht.
quelle
ddrescue
oder ein ähnliches Tool verwenden, um so viele Sektoren wie möglich zu kopieren. Führen Sie keine Wiederherstellung auf Dateisystemebene von der beschädigten Festplatte durch, sondern von der Kopie.Antworten:
Ein paar Anmerkungen aus meiner Erfahrung:
testdisk
unter Linux versuchen , aber wenn diese fehlschlagen, kann Windowschkdisk
helfen. Wenn Sie Windows unter einer virtuellen Maschine installiert haben, können Sie das erhaltene Raw-Imageddrescue
in ein von dieser virtuellen Maschine unterstütztes Format (z. B.VDI
oderVMDK
) konvertieren , es der VM hinzufügen und Windows im Befehlszeilenmodus starten, um das Dateisystem zu reparieren. Wenn Sie VirtualBox verwenden, ist der Befehl zum Konvertieren eines solchen BildesVBoxManage convertfromraw <filename> <outputfile>
optional mit--format VDI|VMDK|VHD
, um das angegebene Ausgabeformat zu erhalten.quelle
Dies kann auf Ihren Fall zutreffen oder auch nicht, aber eine letzte Maßnahme ist der "Gefriertrick". Eine Beschreibung der Methode finden Sie unter Wiederherstellen von Daten von einer beschädigten Festplatte: Der "Gefriertrick" .
quelle