Jak mogę usunąć (odzyskać) usunięty plik na partycji btrfs?
Nie zrobiłem jeszcze migawki, więc nie mogę korzystać z tej funkcji. Wiem, że istnieje kilka narzędzi dla innych systemów plików Linuksa, ale Google nie pojawiło się nic konkretnego do btrfs. Natknąłem się na jedną niejasną wzmiankę, że btrfs zawiera narzędzie do usuwania, ale nie mogę go znaleźć. Zanim wypróbuję narzędzia dla innego systemu plików, pytam tutaj.
Więcej informacji:
- Te (dwa) usunięte pliki zostały usunięte przez
rsync
błędne polecenie zdalne . - Były to małe zwykłe pliki tekstowe.
- Znam nazwy plików.
- Być może będę w stanie zapamiętać niektóre ciągi w plikach.
- Dysk jest zwykłym dyskiem twardym, ale jest duży (2 TB).
- Korzystam z Kubuntu 12.04 (beta2) ze wszystkimi najnowszymi aktualizacjami.
- Nie zapisałem żadnych nowych danych na partycji, z której pliki zostały usunięte.
- Nie mam migawki ani kopii zapasowej tych plików. (Ostatnia kopia zapasowa jest tylko kilka godzin starsza niż te pliki).
- O dziwo, system plików COW wydaje się mieć mniej opcji usuwania plików niż ext3 / 4 ...
źródło
Jeśli twój dysk btrfs ma podwolumny, musisz przekazać dodatkową
-r <subvol-id>
opcję dobtrfs restore
. Niestety skrypty, takie jak jeden opublikowany przez user414471 ( http://oelkers.de/tips/undeleteBtrfs.sh ), nie mają takiej możliwości, ale prawdopodobnie można je do tego dostosować.Jeśli chcesz to zrobić ręcznie, musisz uzyskać odpowiedni subvol-id, albo z:
lub alternatywnie z:
Następnie używasz,
btrfs-find-root
aby uzyskać numer bloku, na który chcesz przywrócić (zwykle ten, który jest tuż przed maksymalnym, którym jest bieżący root). W tym celu musisz najpierw ustawić domyślną objętość podrzędną na tę, z której chcesz przywrócić pliki (a następnie przywrócić tę zmianę):Można wreszcie korzystać
btrfs restore
z-r <subvol-id>
do odzysku (początkowo z--dry-run
argumentem, jeśli chcesz):Więcej informacji o tym wszystkim tutaj: https://btrfs.wiki.kernel.org/index.php/Restore
źródło
btrfs-find-root
krok nigdy się nie kończy (tzn. Działa przy 100% CPU przez 3 godziny na <250 GB FS). Zobacz także podobną historię spinics.net/lists/linux-btrfs/msg61361.html .