cofnij usunięcie właśnie usuniętego pliku na ext4 z extundelete

54

Czy jest jakaś prosta opcja extundeletecofnięcia usunięcia pliku, /var/tmp/test.isoktóry właśnie usunąłem?

(to nie jest tak ważne, że zacznę ponownie instalować dysk tylko do odczytu lub takie rzeczy. Mogę też ponownie pobrać ten plik ponownie)

Szukam prostego polecenia, które można wypróbować, jeśli uda mi się je szybko odzyskać.

Wiem, że jest to możliwe po ponownym zamontowaniu dysku w trybie tylko do odczytu : (zobacz Jak po prostu odzyskać jedyny plik na właśnie usuniętym dysku? )

Ale czy jest to możliwe w jakiś sposób na wciąż zamontowanym dysku?

rubo77
źródło
Ogólne pytanie z dowolnym narzędziem: unix.stackexchange.com/questions/2677/...
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
To drugie pytanie jest zbyt ogólne. Tutaj szukam szybkiego niepewnego rozwiązania bez większego wysiłku (i mniejszej szansy na sukces)
rubo77
Nie chciałem sugerować powielania, ale możesz dodać to do pytania, dlaczego to pytanie nie było wystarczające.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

36

Patrząc na instrukcję użytkowania extundelete , wydaje się, że ograniczasz się do cofania usuwania plików na kilka sposobów.

Przywracanie wszystkich

extundelete służy do cofania usuwania plików z odmontowanej partycji na osobnej (zamontowanej) partycji. extundelete przywróci znalezione pliki do podkatalogu bieżącego katalogu o nazwie „RECOVERED_FILES”. Aby uruchomić program, wpisz „extundelete --help”, aby zobaczyć różne dostępne opcje.

Typowe użycie do przywracania wszystkich usuniętych plików z partycji wygląda następująco:

    $ extundelete /dev/sda4 --restore-all

Przywracanie pojedynczego pliku

Oprócz tej metody wyróżnionej w użyciu wiersza polecenia:

--restore-file path/to/deleted/file
    Attemps to restore the file which was deleted at the given filename, 
    called as "--restore-file dirname/filename".

Powinieneś być w stanie osiągnąć to, co chcesz:

$ extundelete --restore-file /var/tmp/test.iso /dev/sda4

UWAGA: W obu przypadkach musisz znać urządzenie, /dev/sda4aby wykonać to polecenie. Będziesz musiał ponownie zamontować system plików jako tylko do odczytu. Jest to jeden z warunków korzystania extundeletei nie można tego obejść.

slm
źródło
2
tak, ale to wszystko działa tylko, jeśli ponownie
podłączę
1
@ rubo77 - poprawne, nie można tego obejść.
slm
2
To faktycznie działało dla mnie na system plików ext4 bez ponownego instalowania go tylko do odczytu. Jeśli spróbujesz to zrobić bez ponownego montażu r / o, otrzymasz ostrzeżenie, które po prostu wydaje się mówić, że twoje prawdopodobieństwo sukcesu jest niższe, jeśli to zrobisz. Jeśli naprawdę bardzo ważne jest odzyskanie pliku, wygląda na to, że powinieneś to zrobić.
Ben Crowell,
Podobnie jak @BenCrowell, którego używałem bez ponownego montażu, ale program reklamuje mnie o uszkodzeniu danych, jeśli nadal będę używać hdd ... to było niedawno wymazanie, więc po prostu naciśnij Enter, a następnie odzyskaj moje pliki;)
erm3nda
16

Typowy scenariusz użycia, w którym cofnięcie usunięcia wszystkich plików obejmuje konieczność przywrócenia wszystkich plików usuniętych w /dev/sdX1ciągu około ostatniej godziny:

mount -o remount,ro /dev/sdX1
extundelete --restore-all --after $(date -d "-2 hours" +%s) /dev/sdX1
find RECOVERED_FILES/

Jeśli jesteś zadowolony z odzyskanych plików:

mount -o remount,rw /dev/sdX1
sanmai
źródło
mount: musisz określić typ systemu plików
remount oczekuje punktu montowania jako argumentu, a nie urządzenia
Don't Worry Child
@ Don'tYouWorryChild mount -oprzyjmuje katalog lub urządzenie, zgodnie zman mount
sanmai
Zamiast odejmować 2 godziny od daty, co możesz zrobić, $(date -d "-2 hours" +%s)a wyjście lsblk -pmoże być przydatne, aby dowiedzieć się, gdzie znajduje się ten zaszyfrowany LUKS wolumin EXT4 w pamięci podręcznej LVM. ;)
LiveWireBT,