Wie kann ich eine gelöschte Datei auf einer btrfs-Partition wiederherstellen?
Ich habe noch keinen Schnappschuss gemacht, daher kann ich diese Funktion nicht verwenden. Ich weiß, dass es einige Tools für andere Linux-Dateisysteme gibt, aber Google hat nichts spezielles für btrfs gefunden. Ich bin auf eine vage Erwähnung gestoßen, dass btrfs ein nicht gelöschtes Tool enthält, das ich aber nicht finde. Bevor ich Tools für ein anderes Dateisystem ausprobiere, frage ich hier.
Mehr Info:
- Die (zwei) gelöschten Dateien wurden durch einen
rsync
fehlerhaften Remote- Befehl gelöscht . - Dies waren kleine Textdateien.
- Ich kenne die Namen der Dateien.
- Möglicherweise kann ich mich an einige Zeichenfolgen in den Dateien erinnern.
- Die Festplatte ist eine normale Festplatte, aber sie ist groß (2 TB).
- Ich verwende Kubuntu 12.04 (Beta2) mit den neuesten Updates.
- Ich habe keine neuen Daten in die Partition geschrieben, von der die Dateien gelöscht wurden.
- Ich habe keinen Schnappschuss oder keine Sicherungskopie dieser Dateien. (Die letzte Sicherung ist nur einige Stunden älter als diese Dateien.)
- Seltsamerweise scheint ein COW-Dateisystem weniger Optionen zum Wiederherstellen von Dateien zu haben als ext3 / 4 ...
quelle
Wenn Ihr btrfs-Laufwerk über Subvolumes verfügt, müssen Sie die zusätzliche
-r <subvol-id>
Option an übergebenbtrfs restore
. Leider haben die Skripte da draußen, wie die von user414471 ( http://oelkers.de/tips/undeleteBtrfs.sh ), keine Möglichkeit, dies zu tun, aber sie können wahrscheinlich daran angepasst werden.Wenn Sie dies von Hand tun möchten, müssen Sie die richtige Subvol-ID erhalten, entweder mit:
oder alternativ mit:
Anschließend verwenden Sie
btrfs-find-root
, um die Blocknummer abzurufen, zu der Sie zurückkehren möchten (normalerweise die Nummer kurz vor der höchsten Nummer, die die aktuelle Wurzel ist). Dazu müssen Sie zuerst das Standard-Subvolume auf dasjenige setzen, von dem Sie Dateien zurücksetzen möchten (und diese Änderung anschließend zurücksetzen):Sie können schließlich
btrfs restore
mit-r <subvol-id>
für die Wiederherstellung verwenden (zunächst mit dem--dry-run
Argument, wenn Sie möchten):Weitere Informationen dazu finden Sie hier: https://btrfs.wiki.kernel.org/index.php/Restore
quelle
btrfs-find-root
Schritt nie beendet (dh läuft 3 Stunden lang mit 100% CPU auf einem <250 GB FS). Siehe auch eine ähnliche Geschichte spinics.net/lists/linux-btrfs/msg61361.html .