Przez przypadek użyłem rm
pliku, którego nie chciałem usunąć. Czy istnieje sposób, aby go odzyskać pod Linuksem?
linux
file-recovery
rm
HaiYuan Zhang
źródło
źródło
rm
to „niebezpieczne” polecenie UNIX / Linux (czytaj$ man rm
). Używaj go z najwyższą ostrożnością . Powiedziawszy to, jest to szybki sposób na usunięcie plików, których jesteś pewien. Nowoczesne środowiska pulpitu Linux i Unix zapewniają rozwiązanie „Kosza” , dzięki czemu użytkownik może łatwo odzyskać przypadkowo usunięte pliki.Odpowiedzi:
Poniżej przedstawiono ogólne kroki odzyskiwania plików tekstowych.
Najpierw użyj polecenia ściany, aby poinformować użytkownika, że system działa w trybie pojedynczego użytkownika:
Naciśnij CTRL + D, aby wysłać wiadomość.
Następnie użyj polecenia init 1, aby przełączyć system w tryb jednego użytkownika:
Używanie grep (tradycyjny sposób UNIX) do odzyskiwania plików
Użyj następującej składni grep:
LUB
Gdzie,
Aby odzyskać plik tekstowy zaczynający się od słowa „nixCraft” na / dev / sda1, możesz spróbować wykonać następujące polecenie:
Następnie użyj vi, aby zobaczyć plik.txt.
Ta metoda jest przydatna TYLKO, jeśli usunięty plik jest plikiem tekstowym. Jeśli używasz systemu plików ext2, wypróbuj polecenie odtwarzania.
Znalezione na http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html
źródło
init 1
ręcznie zabijaj wszystkie demony systemowe opróczsshd
. Myślę też, że w tym momencie powinieneś ponownie zamontować wszystkie systemy plików RO i zapisać na tmpfs (zakładając, że twoje pliki tymczasowe zmieszczą się w pamięci RAM), aby uniknąć zastąpienia plików danymi tymczasowymi. Będziesz oczywiście musiał skopiować go gdzie indziej później, albo na zdalny serwer, albo z powrotem do lokalnych systemów plików po ponownym zamontowaniu RW.dd
i spróbuj znaleźć plik w nim (za pomocągrep
lub edytora).Edycja: czasami
ddrescue
działa lepiej niżdd
.źródło
Jeśli twój system plików to ext3 , użyj ext3grep .
źródło
Testdisk ma opcję przywracania, która powinna działać z Linuksem.
Istnieje przewodnik dotyczący systemu Linux . Zauważ, że działa dla ext2 , ext3 i ext4 .
źródło
Jedyną prawidłową odpowiedzią jest: przywróć plik z kopii zapasowej. Każdy musi mieć kopię zapasową. W przypadku naprawdę ważnych plików powinieneś mieć dwie kopie zapasowe. Ty nie Cóż, szkoda, oto wyciągnięta lekcja (Przepraszam, że brzmię ostro, ale jestem w pamięci masowej, a ludzie nie tworzą kopii zapasowych, dopóki nie stracą ważnych danych, to fakt. Więc tak, wyglądasz głupio, ale podobnie jak prawie wszyscy inni).
OK, nie masz kopii zapasowej. musisz przestać używać systemu plików, który zawierał plik RIGHT NOW . Każda czynność zapisu może zdecydowanie zatkać dane pliku, które mogą (tylko mogą ) pozostać na dysku.
jeśli popełniłeś tragiczny błąd, używając tylko jednej partycji jako głównego systemu plików i / home, oznacza to, że musisz uruchomić system z innego urządzenia. TERAZ .
Jeśli plik ma jakiś popularny format (plik Word, JPG itp.), Użyj Photorec . Photorec może pobierać najpopularniejsze formaty plików.
Możesz wypróbować poprzednio zaproponowaną metodę „ext3 undelete”, ale musisz się dobrze posługiwać wierszem poleceń, rozumieć podstawowe wewnętrzne działania linuksa itp.
Jeśli twój plik ma jakiś specjalny format, to pecha. Kiedyś napisałem program Perla do skanowania dysku w poszukiwaniu specjalnych plików i działał całkiem nieźle; ale musisz znać programowanie, aby to zrobić, i być całkiem spokojnym z Linuksem.
źródło
Zrobiłem to kilka lat temu. Moje podejście polegało na bezpośrednim, bez czasu do stracenia, odmontowaniu partycji, a potem
mieć plik kopii zapasowej dokładnego stanu partycji. Następnie możesz ponownie zamontować partycję i kontynuować normalną pracę podczas wyszukiwania usuniętego pliku w utworzonym obrazie. Obraz będzie prawdopodobnie BARDZO duży, ponieważ potrzebujesz całej „pustej” przestrzeni, więc przechowywanie go może być praktycznym problemem.
Potem było po prostu nudne wyszukiwanie po fragmentach tekstu, których spodziewałem się gdzieś w zupie zawartości partycji. Np. By znaleźć pliki .tex, uruchomiłem
który wydrukował duży kontekst wokół frazy „podsekcja” i zapisał dane wyjściowe w pliku, który można ręcznie przeszukać. Wydrukowałem tak duży kontekst, ponieważ przeszukanie obrazu zajęło tak dużo czasu, że wolałbym nie robić tego więcej razy niż musiałem.
Również polecenie
strings
było pomocne w usuwaniu śmieci binarnych z danych wyjściowych, ale jeśli dobrze pamiętam, usunęło również wszystkie znaki nowej linii, co może być problemem.Aby znaleźć pliki binarne w ten sam sposób, można odnieść sukces w znalezieniu charakterystycznego nagłówka lub jakiegoś określonego pliku, ale wyobrażam sobie, że to dość duża przygoda.
Krótkie uwagi techniczne: występują problemy techniczne z odzyskiwaniem dysku i Ext3 / 4. Jest to długa rzecz do wyjaśnienia, ale krótko (i nieodpowiednio): Ext3 / 4 usuwa „znaczniki”, które informują system operacyjny, gdzie znajdują się pliki na dysku podczas ich usuwania. Pliki nie są szorowane, ale nikt nie wie, gdzie na dysku zaczynają i kończą, a czasem są nawet fragmentowane w kilku miejscach. Niektóre inne systemy plików po prostu ustawiają statusy plików na „usunięte”, ale zachowują dane lokalizacji. W takim przypadku cofnięcie usunięcia nie jest trudniejsze niż spojrzenie na wskaźniki plików z tą flagą (powinny one być nadal dostępne, jeśli nie wystąpiło zbyt wiele działań), a następnie mieć nadzieję, że ich zawartość nie zostanie nadpisana.
Co jest najlepsze Moim zdaniem retoryczne. Częste tworzenie kopii zapasowych jest odpowiedzią na wszystkie te problemy. Ważne dane bez automatycznego systemu tworzenia kopii zapasowych to wypadek, na który czeka, IMHO.
Obowiązkowy osobisty anegdota: miałem zamiar usunąć
foo\ foo*
z~
. napisałem, który, niestety, ponieważ
foo
najwyraźniej był dowiązaniem symbolicznym i jedynym plikiem do niego pasującym, wykonana została powłokaNacisnąłem Enter i usiadłem, patrząc na polecenie, które powinno zająć najwyżej sekundę. Po nieco dłuższym czasie
rm
zapytał mnie, czy chcę „usunąć plik„ chroniony przed zapisem ”„ coś ”. Dość szybko poczułem dreszcze i delikatnie i bardzo kontrolowany nacisnąłemCtrl+c
. ~ Połowa mojego~
została usunięta, ale udało mi się odzyskać wszystko, co jest wartościowe, dzięki wyżej opisanemu greppingowi i niektórym mniej lub bardziej bieżącym kopiom zapasowym. Miałem bardzo cenne osobiście (czytane: czasochłonne) i bardzo aktualne dane pomiarowe na utraconym dysku, ale wykonałem czterokrotne kopie zapasowe. Jeden zniknął tutaj, inny z powodu awarii systemu w szkole, inny był uszkodzony i na początku nie mogłem znaleźć czwartego, ponieważ przez pomyłkę umieściłem go w niewłaściwym folderze :-D. Nie miałrm -r
utknął na pliku chronionym przed zapisem, czwarty zostałby zjedzony, ponieważ ten folder został zamontowany przez sshfs w moim~
. Od tego czasu jestem bardziej ostrożny w tego typu sprawach.źródło
Jeśli jest to standardowy rm , mam nadzieję, że masz kopię zapasową. Procedura odzyskiwania usuniętego pliku byłaby inna dla każdego systemu plików, jeśli można to w ogóle zrobić. Linux nie ma wbudowanego „kosza”; po usunięciu pliku prawie go nie ma.
Niezależnie od tego, jak to zrobisz, będziesz chciał odłączyć komputer - tak szybko, jak to możliwe, ponieważ dalsze uruchamianie komputera (nawet w celu jego wyłączenia) powoduje zapis na dysku i zwiększa szansę, że niektóre bloki wcześniej zajmowane przez plik zostanie nadpisany. Gdy to zrobisz, włóż go do innego komputera, uruchom ponownie dysk CD na żywo (pamiętaj, aby nie montować dysku, chyba że zostanie on zamontowany tylko do odczytu) lub wyjmij dysk twardy i zanieś go do specjalisty ds. Odzyskiwania danych.
źródło
Ustaw niskie oczekiwania. Jeśli cokolwiek zostało zapisane na „usuniętych” danych, stracisz je.
Zrobiłem niewielką ilość odzyskiwania, a najlepsze narzędzia, które znalazłem, były często projektowane z myślą o określonych formatach. Na przykład „photorec” był świetny, gdy chciałem odzyskać dziesiątki tysięcy plików JPEG.
Recuva również pomogła mi wcześniej i może być twoim najlepszym wyborem. (Jest bezpłatny, nie daj się zwieść płaceniu za reklamy)
Na koniec dnia, jeśli to, co straciłeś, jest ważne, wyłącz dysk i przestań do niego pisać. Korzystaj z każdego dostępnego oprogramowania do odzyskiwania, dopóki nie odzyskasz danych lub przestanie to być warte. Jeśli jest to naprawdę ważne, wyślij go do profesjonalistów po wysokiej cenie.
Jeśli miałeś wcześniej szczęście z narzędziem, spróbuj ponownie, gdy znasz je. Na koniec dnia nie powinny zapisywać na dysku, więc możesz używać oprogramowania, dopóki nie znajdziesz takiego, który działa.
źródło
Oto świetny dokument dla Ciebie. Znajdziesz tam mnóstwo praktycznych wskazówek.
BTW, istnieją dwie grupy osób:
Gratulacje, właśnie awansowałeś do grupy 2. ;-)
źródło
Jeśli masz otwartą aplikację, która obecnie czyta plik, taką jak VLC lub LibreOffice, ta wspaniała odpowiedź L & U.SO pomogła mi wyjść z tego bałaganu. Oto alternatywna metoda robienia tego samego.
Ogólnym pomysłem jest znalezienie linku
/proc/PID/fd/DESCRIPTOR_NUMBER
i skopiowanie go z powrotem do pierwotnej lokalizacji. Użyj,ps aux | grep APP_NAME
aby znaleźć PID, a następnie,ls -la /proc/PID/fd/
aby znaleźć odpowiedni DESCRIPTOR_NUMBER.źródło
„Prawidłowa” odpowiedź to założenie, że nie ma metody niezawodnego odzyskiwania, i zamiast tego przywrócić z kopii zapasowych lub sklonowanego systemu lub zainstalować ponownie.
TestDisk to świetne narzędzie, a istnieją inne sposoby na odzyskanie niektórych danych z dysku fizycznego, w zależności od systemu plików i częstotliwości usuwania, ale czas i ból mogą być zbyt duże, więc ZACHOWAJ BACKUPS (a także testuj że są ważne i można je przywrócić)!
źródło
Jeśli nie zostanie nadpisany przez innych użytkowników, masz szczęście. Przypadkowo usunąłem plik źródłowy cpp i użyłem narzędzia o nazwie przede wszystkim , które pomogło mi przywrócić z dysku resztki 60 g cpp. W końcu odzyskałem mój plik, gromadząc te kawałki po kawałku. Myślę, że skanuje pewien wzorzec dla określonego typu pliku i przegląda wszystkie i-węzły na dysku, aby odzyskać pliki! Po prostu spróbuj!
źródło
Jeśli przypadkowo usunąłeś plik z Linuksa, możesz użyć tego polecenia:
zamiast
search text
możesz umieścić nazwę pliku i określić katalog, w którym chcesz przywrócić zamiast/home
.źródło
Możesz wypróbować ten skrypt. Działa ładnie i powinien być używany zamiast RM i używam go teraz intensywnie.
https://github.com/nateshmbhat/safe-rm
Cechy :
rm
ź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. Sintax jest bardzo łatwy:
lub:
Ten film pokazuje mini poradnik, który może ci pomóc.
źródło