Czy istnieje polecenie odzyskiwania / cofania usuniętych plików rm
?
$ rm -rf /path/to/myfile
Jak mogę odzyskać myfile
? Jeśli istnieje takie narzędzie, jak mogę go używać?
linux
data-recovery
deleted-files
pylover
źródło
źródło
Odpowiedzi:
Link, który ktoś podał w komentarzach, jest prawdopodobnie twoją najlepszą szansą.
Linux debugfs Hack: Undelete Files
Ten napis, choć trochę onieśmielający, jest dość prosty do naśladowania. Ogólnie kroki są następujące:
Użyj debugfs, aby wyświetlić dziennik systemu plików
Po pytaniu debugfs
Próbka wyjściowa
Uruchom polecenie w debugfs
Określ i-węzeł plików
Z powyższymi informacjami i-węzła uruchom następujące polecenia
Pliki zostały odzyskane do
recovered.file.001
.Inne opcje
Jeśli powyższe nie jest dla ciebie, użyłem narzędzi takich jak
photorec
odzyskiwanie plików w przeszłości, ale jest ono nastawione tylko na pliki graficzne. O tej metodzie pisałem obszernie na swoim blogu w tym artykule zatytułowanym:Jak odzyskać uszkodzone pliki JPEG i przenieść pliki z karty SDD aparatu cyfrowego na Fedorze / CentOS / RHEL .
źródło
debugfs -w /dev/sdb2
alelsdel
sais:0 deleted inodes found.
extundelete
ext3 / 4 jest łatwiejsze i prawdopodobnie doprowadziłoby do takich samych rezultatów./dev/mapper/wks01-root: No such file or directory while opening filesystem
Skąd to masz/dev/mapper/wks01-root
?Przy odrobinie szansy czasami mogę odzyskać usunięte pliki za pomocą tego skryptu lub następnego rozwiązania w odpowiedzi:
Jest jeszcze jedna przydatna sztuczka: jeśli znasz wzór w usuniętych plikach, wpisz alt+ sys+, resuoaby ponownie uruchomić + ponownie zamontować tylko w trybie tylko do odczytu, a następnie w przypadku live-cd użyj
grep
do wyszukiwania na dysku twardym:następnie edytuj,
/tmp/recover
aby zachować tylko te pliki, które były wcześniej.Hej, jeśli w filozofii uniksowej wszystko jest plikami, nadszedł czas, aby z tego skorzystać, nie?
źródło
grep
oparte na rozwiązaniu rozwiązanie jest dla mnie bardzo sprytne, nawet jeśli system plików jest nadal podłączony. Dzięki!grep -av "[^[:print:]]"
grep
Rozwiązanie pracował dla mnie z modyfikacją: zrobiłemsudo grep --line-buffered -ab "$PATTERN" /dev/sda1 | tee lines
i dostałem offsety bajtowe (jak123123123:line\n456456456:another\n...
), a następnie zrobiłn=1000; sudo dd of=before if=/dev/sda1 ibs=1 skip=$[123123123-$n] count=$n
in=1000; sudo dd of=after if=/dev/sda1 ibs=1 skip=123123123 count=$n
z różnymin
wartościami.To, co zadziałało, zostało podane przez arch (dotyczy tylko plików tekstowych):
gdzie
/dev/sdXN
jest partycja zawierająca utracony plik (sprawdź,mount
jeśli nie jesteś pewien).Trwa to trochę dłużej, ale zadziałało, gdy przypadkowo usunąłem kod źródłowy, którego jeszcze nie zatwierdziłem!
źródło
rm data/*.json python myFile.py
zamiastrm data/*.json && python myFile.py
/dev/sdXN
jest dla systemu plików, prawda? Znalazłem mójdf -T | awk '{print $1,$2,$NF}' | grep "^/dev"
grep: conflicting matchers specified
Chociaż to pytanie zostało rozwiązane i ma kilka lat, chcę wspomnieć o narzędziu testdisk .
Jak odzyskać pliki za pomocą testdisk, wyjaśniono dobrze w tym samouczku . Aby odzyskać pliki, uruchom
testdisk /dev/sdX
i wybierz typ tablicy partycji. Następnie wybierz[ Advanced ] Filesystem Utils
, a następnie wybierz partycję i wybierz[Undelete]
. Teraz możesz przeglądać i wybierać usunięte pliki oraz kopiować je do innej lokalizacji w systemie plików.źródło
W zeszłym tygodniu miałem ten sam problem i wypróbowałem wiele programów, takich jak debugfs, photorec, ext3grep i extundelete. ext3grep był najlepszym programem do odzyskiwania plików. Składnia jest bardzo łatwa:
lub:
Ten film jest mini poradnikiem, który może ci pomóc.
źródło
Alternatywą może być użycie
del
zamiastrm
do usuwania:http://fex.belwue.de/fstools/del.html
del
ma funkcję przywracania i działa z dowolnym systemem plików.Oczywiście nie jest to rozwiązanie, jeśli pliki zostały już usunięte za pomocą polecenia „zabierz więźniów”: -}
źródło
del
polecenia.podłącz dysk przez zewnętrzny interfejs
umount /dev/{sd*}
extundelete --restore-all /dev/{sd*}
Zobacz ten link, aby uzyskać więcej informacji: cofnąć usunięcie właśnie usuniętego pliku na ext4 z extundelete .
źródło
Narzędzia do odzyskiwania - wiersz poleceń:
Narzędzia do odzyskiwania - Gui:
Informacje:
Z mojego osobistego doświadczenia odzyskuję dane za pomocą ufs-explorer i photorec
(1) = Not open source, not free
(2) = Nie open source, za darmo
(3) = Open source i za darmo
(4) = Mają wsparcie NTFS
(5) = Posiada funkcję struktury katalogów
źródło
Nie zgadzam się, że jest to niemożliwe, po prostu bardzo bardzo trudne i nigdy nie zrobiłem tego poza Linuksem:
Po usunięciu pliki nie są faktycznie usuwane. To, co się dzieje, polega na tym, że miejsce, w którym były na dysku twardym, jest jakby resetowane, więc jeśli komputer próbuje tam zapisać dane, nic nie narzeka. Zasadniczo dane na dysku twardym, które według ciebie zostały usunięte, mogą być tam prawie rok później. A przynajmniej takie jest moje doświadczenie na komputerze z systemem Windows. Nie wiem, czy to działa tak samo, jak w wierszu poleceń w systemie Linux, ale prawdopodobnie potrzebujesz osobnej płyty Live CD, aby otworzyć taką partycję, a także nie ma gwarancji, że pliki nadal tam są. Zrobiłem to kilkakrotnie w systemie Windows XP przy użyciu Zero Assumption Recovery. Jestem pewien, że istnieje podobne narzędzie, jeśli spojrzysz wystarczająco mocno.
źródło
Po usunięciu pliku liczba łączy w tabeli i-węzłów dla tego pliku jest zmniejszana o jeden. W Uniksie, gdy liczba linków spada do 0, bloki danych dla tego pliku są oznaczane jako wolne i zazwyczaj odwołania do tych bloków danych są tracone. Właśnie odkryłem z komentarza @ fedorqui, że może istnieć sposób na uzyskanie dostępu do tych bloków, ale dotyczy to tylko systemu plików ext3.
Jednym ze sposobów zachowania plików będzie napisanie funkcji, która pozwoli Ci przenieść pliki do kosza (powiedzmy
$HOME/.trash
) i odzyskać potrzebne pliki z tego miejsca. Tę funkcję można aliasować dorm
. Możesz zaplanować zadanie CRON, aby usunąć pliki, które znajdowały się w obszarze kosza przez określoną liczbę dni.źródło
To może zaoszczędzić kłopotów niektórym z was.
Jeśli kiedykolwiek użyłeś gedit do edycji tego pliku, domyślnie zostanie utworzona kopia tego pliku.
Załóżmy na przykład, że przypadkowo usunęliśmy plik „mój_plik.txt”.
W folderze, który kiedyś zawierał właśnie usunięty plik, użyj tych poleceń, a stamtąd odzyskasz kopię:
ls | grep 'myfile.txt~'
Przy odrobinie szczęścia znajdziesz ją, a następnie:
cp 'myfile.txt~' 'myfile.txt'
Właśnie odzyskałem plik za pomocą tej metody. Powodzenia!
źródło