Vor kurzem ist meine Festplatte abgestürzt und ich musste einen fsck
Befehl ausführen. Viele Dateien wurden in den lost+found
Ordner verschoben und ich habe die wichtigen mithilfe von find
und abgerufen grep
, aber ich kann meine SQL-Datenbanken nicht finden.
Fragen
- Wie kann ich InnoDB-Datenbanken in meinem Lost+Found-Verzeichnis finden?
- Ist es möglich, dass fsck meine SQL-Datenbank nicht gespeichert hat?
- Wenn ja, kann ich diese Datei wiederherstellen?
Antwort1
Versuch Nr. 1:
file -szL
Vielleicht ist es noch da, nur der Name wurde geändert in z. B. /lost+found/#3456254 und so. An deiner Stelle habe ich alles in rekursiv durchsucht /lost+found
und nach innodb gesucht:
find /lost+found -type f|xargs -P 1 -n 500 file -szL|grep -i innodb
Wenn sich darin noch eine InnoDB-Datenbank befindet, können Sie Ihre Daten speichern. Viel Glück!
Versuch Nr. 2:
Wenn Ihre Datenbank viele Textdaten enthält, kann Ihnen auch eine sektorbasierte Hexa-Suche hilfreich sein.
Antwort2
Es IST möglich, dass die betreffenden Dateien von fsck nicht wiederhergestellt werden konnten und gelöscht wurden. Das fsck-Programm versucht lediglich, die Dateien zu reparieren und versucht mit aller Kraft, sie so gut wie möglich wiederherzustellen. Es handelt sich jedoch keineswegs um eine Art Backup. Jede von fsck ausgeführte Aktion ist grundsätzlich nicht umkehrbar.
Ich wäre wirklich vorsichtig, wenn ich versuchen würde, Teile einer MySQL-Datenbank zu verwenden, die in einem Lost+Found-Verzeichnis enthalten sind, da eine Datenbank nicht in einer Datei enthalten ist, sondern in vielen Dateien, die „synchronisiert“ sein müssen, damit die Datenbank überhaupt in einem Modus wiederhergestellt werden kann, in dem irgendeine Art von Zuverlässigkeit oder Datenintegrität gegeben ist.
Was die Dateiwiederherstellung betrifft, müssen Sie leider auf die Backups zurückgreifen, die Sie vermutlich erstellt haben, seit die Daten wichtig waren. Andernfalls haben Sie wirklich Pech gehabt.
Wenn die Daten so wichtig sind, können Sie möglicherweise versuchen, die Hilfe eines der vielen Datenwiederherstellungsdienste in Anspruch zu nehmen. Das ist teuer und die Ergebnisse sind nicht gerade perfekt.
Antwort3
Ich glaube, Sie haben Pech. Die einzige Möglichkeit, die Sie haben, besteht darin, das lost+found
Verzeichnis zu durchsuchen und jede Datei visuell zu überprüfen und nach Hinweisen auf ihre ursprüngliche Identität zu suchen.
In der Zukunft
Es gibt diesen Blog-Beitrag mit dem Titel:Aktualisiert: Automatische Wiederherstellung von Dateien aus Lost+Found, in dem zwei Tools besprochen werden, die in diesem Szenario hilfreich gewesen wären.
make-lsLR.sh
- rufen Sie dies regelmäßig auf (cron), um die benötigten Dateien zu erstellen, die in /root/ gespeichert werden. Natürlich können Sie den Speicherort problemlos ändern und andere Verzeichnisse vom Scannen ausschließen.
check_lost+found.py
- Das zweite Skript wird ausgeführt, wenn Ihr fsck Ihre Dateien durcheinandergebracht und sie im Verzeichnis lost+found gespeichert hat. Es benötigt 3 Argumente: 1) das Quellverzeichnis, in dem sich Ihr durcheinandergebrachtes Verzeichnis lost+found befindet, 2) das Zielverzeichnis, in dem die Daten gespeichert werden, und 3) einen Schalter, um es tatsächlich auszuführen, anstatt einen Probelauf durchzuführen.
Die beiden Skripte arbeiten zusammen. Das erste muss regelmäßig ausgeführt werden, um ein Inventar der auf Ihrem System vorhandenen Dateien zu erstellen. Das zweite Skript kann dieses Inventar dann verwenden, falls Sie Dateien aus einem lost+found
Verzeichnis wiederherstellen müssen.