2010-06-08 02:00:57 +0000 2010-06-08 02:00:57 +0000
65
65

Jak odzyskać usunięty plik pod Linuksem?

Przez przypadek użyłem rm na pliku, którego nie chciałem usunąć. Czy jest jakiś sposób aby odzyskać go pod Linuksem?

Odpowiedzi (15)

51
51
51
2010-06-08 02:04:42 +0000

Poniżej znajdują się ogólne kroki w celu odzyskania plików tekstowych.

  1. Najpierw użyj komendy ściennej, aby powiedzieć użytkownikowi, że system schodzi w dół w trybie pojedynczego użytkownika:

  2. Następnie użyj komendy init 1, aby przenieść system w tryb pojedynczego użytkownika:

  3. Użycie grep (tradycyjny sposób UNIX) do odzyskania plików

  4. Następnie użyj vi, aby zobaczyć plik.txt.

Znaleziono na stronie http://www.cyberciti.biz/tips/linuxunix-recover-deleted-files.html

13
13
13
2010-07-09 06:27:42 +0000
  • Jeśli jest to bardzo ważne, weź dysk z komputera i zatrudnij firmę, która zrobi to za Ciebie.
  • Jeśli jest to bardzo ważne, zamontuj dysk tylko do odczytu, skopiuj całą partycję do pliku za pomocą dd i spróbuj znaleźć plik w nim (za pomocą grep lub edytora).

Edit: czasami ddrescue działa lepiej niż dd.

9
9
9
2010-07-09 06:29:12 +0000

Jeśli twój system plików to ext3 , użyj ext3grep .

8
8
8
2010-06-08 03:33:59 +0000

Testdisk ma opcję undelete, która powinna działać z Linuksem.

Jest spacer dla Linuksa . Zauważ, że działa on dla ext2 , ext3 , i ext4 .

5
5
5
2011-07-25 01:23:05 +0000

Zrobiłem to kilka lat temu. Moje podejście polegało na tym, aby bezpośrednio, bez straty czasu, odmontować partycję, a następnie

dd if=/dev/hda1 of=backup_image.ext3

mieć plik kopii zapasowej o dokładnym stanie partycji. Następnie można ponownie zamontować partycję i kontynuować pracę jak zwykle, szukając usuniętego pliku w utworzonym obrazie. Obraz będzie prawdopodobnie BARDZO duży, ponieważ potrzebne jest całe “puste” miejsce, więc może to być praktyczny problem, aby go przechowywać.

Wtedy to było po prostu do wykonywania nudnych poszukiwań po fragmentach tekstu spodziewałem się być gdzieś w zupie zawartości partycji. Np. aby znaleźć pliki .tex, uruchomiłem

grep --binary-files=text -1000 "subsection" < backup_image.ext3 > latexfiles

który wydrukował duży kontekst wokół frazy “podsekcja” i zapisał wyjście do pliku do ręcznego przeszukania. Wydrukowałem tak duży kontekst, ponieważ przeszukanie obrazu trwało tak długo, że wolałbym nie robić tego więcej razy niż musiałem.

Również komenda strings była pomocna w usuwaniu binarnych śmieci z wyjścia, jednak jeśli dobrze pamiętam, usunęła ona również wszystkie nowe linie, co mogło stanowić problem.

Aby znaleźć pliki binarne w ten sam sposób, można odnieść sukces w znalezieniu charakterystycznego nagłówka lub czegoś w rodzaju pewnego pliku, ale wyobrażam to sobie jako dość dużą przygodę.

  • *

Krótka uwaga techniczna: istnieją techniczne trudności z odzyskiwaniem dysku i Ext3/4. Jest to długa rzecz do wyjaśnienia, ale krótka (i nieadekwatna): Ext3/4 usuwa “znaczniki”, które informują system operacyjny, gdzie znajdują się pliki na dysku, gdy je usuwasz. Pliki nie są czyszczone, ale nikt już nie wie, gdzie na dysku zaczynają się i kończą, a czasami nawet są rozdrobnione w kilku miejscach. Niektóre inne systemy plików po prostu ustawiają statusy plików na “usunięte”, ale zachowują dane lokalizacji. Wtedy “undelete” nie jest trudniejsze niż spojrzenie na znaczniki plików z tą flagą (powinny one być nadal dostępne, jeśli nie wystąpiła zbyt duża aktywność), a następnie mieć nadzieję, że ich zawartość nie została nadpisana.

Co jest najlepsze? Retoryczne, moim zdaniem. Częste tworzenie kopii zapasowych jest odpowiedzią na wszystkie te problemy. Ważne dane bez zautomatyzowanego systemu tworzenia kopii zapasowych to wypadek, który czeka, IMHO.

  • *

Obowiązkowa anegdota osobista: Miałem zamiar usunąć foo\ foo* z ~. Napisałem

rm -r foo<Tab>*

, który niestety, ponieważ foo najwyraźniej był symlink i jedyny plik pasujący do tego, powłoka wykonana w

rm -r foo\ foo *

Wcisnąłem Enter i usiadłem tam patrząc na komendę, która powinna była zająć co najwyżej sekundę. Po nieco dłuższym czasie rm zapytał mnie czy chcę “usunąć plik zabezpieczony przed zapisem ‘coś’”.Dość szybko poczułem dreszcze i delikatnie i bardzo kontrolowanie wcisnąłem Ctrl+c. ~ Połowa mojego ~ została usunięta, ale udało mi się odzyskać wszystkie wartości poprzez opisane powyżej grepping i kilka mniej lub bardziej aktualnych kopii zapasowych. Miałem kilka osobiście bardzo wartościowych (czytaj: czasochłonnych) i bardzo aktualnych danych pomiarowych na dysku, który został utracony, ale zrobiłem poczwórne kopie zapasowe. Jeden zawiódł tutaj, drugi z powodu awarii systemu w szkole, drugi był skorumpowany, a na początku nie mogłem znaleźć czwartego, ponieważ przez pomyłkę umieściłem go w niewłaściwym folderze :-D . Gdyby rm -r nie utknął na pliku zabezpieczonym przed zapisem, czwarty zostałby zjedzony, ponieważ ten folder został zamontowany przez sshfs w moim ~. Od tego czasu jestem o wiele bardziej ostrożny w tego typu sprawach.

5
5
5
2010-07-09 13:41:50 +0000
  • Jedyną poprawną odpowiedzią jest: przywróć swój plik z kopii zapasowej. Każdy musi mieć kopię zapasową. Dla naprawdę ważnych plików, powinieneś mieć dwie kopie zapasowe. A ty nie? Cóż, szkoda, oto nauczka, której się nauczyliśmy ( Przepraszam, że zabrzmiało to ostro, ale jestem w magazynie danych, a ludzie nie robią kopii zapasowych, dopóki nie stracą ważnych danych, to jest fakt. Więc tak, wyglądasz głupio, ale tak samo jak wszyscy inni.

  • OK, nie masz kopii zapasowej. musisz stop użyć systemu plików który zawierał plik PRAWO TERAZ. Jakakolwiek czynność zapisu na pewno może spowodować, że dane z plików may (tylko may) pozostaną 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 must uruchomić z jakiegoś innego urządzenia. TERAZ.

  • jeśli twój plik jest w jakimś popularnym formacie ( plik Word, JPG, itp.), użyj Photorec . Photorec może pobrać większość popularnych formatów plików.

  • Możesz wypróbować zaproponowaną wcześniej metodę “ext3 undelete”, ale musisz być wygodny z linią poleceń, zrozumieć podstawowe wewnętrzne funkcjonowanie linuksa, etc.

  • Jeśli Twój plik ma jakiś szczególny format, to powodzenia. Kiedyś napisałem program Perla do skanowania dysku w poszukiwaniu specjalnych plików i działał całkiem nieźle; ale musisz znać się na programowaniu, aby to zrobić, i być całkiem spokojnym z linuksem.

5
5
5
2010-07-09 06:37:16 +0000

Jeśli 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 w ogóle można to zrobić. Linux nie ma wbudowanego “kosza na śmieci”; po skasowaniu pliku jest on już tylko pusty.

W każdy sposób, w jaki to zrobisz, będziesz chciał odłączyć komputer - tak szybko jak to możliwe, ponieważ dalsze uruchamianie komputera (nawet wyłączanie go) powoduje zapisywanie na dysku i zwiększa szansę, że niektóre bloki poprzednio zajmowane przez plik zostaną nadpisane. Gdy to zrobisz, włóż go do innego komputera, uruchom ponownie live CD (pamiętając, aby nie montować napędu, chyba że montujesz go tylko do odczytu), albo wyjmij dysk twardy i zabierz go do specjalisty od odzyskiwania danych.

4
4
4
2011-04-19 07:59:56 +0000

Ustawcie swoje oczekiwania na niskim poziomie. Jeśli cokolwiek zostało napisane nad “usuniętymi” danymi, stracisz je.

Zrobiłem małą ilość odzyskiwania i najlepsze narzędzia, które znalazłem były często zaprojektowane do pewnych formatów. Na przykład ‘photorec’ był świetny, kiedy chciałem odzyskać dziesiątki tysięcy jpegsów. Recuva również pomogło mi wcześniej i może być Twoim najlepszym wyborem. (To darmowe, nie daj się nabrać na płacenie przez ich reklamy)

Pod koniec dnia, jeśli to co straciłeś jest ważne, weź dysk offline i przestań do niego pisać. Korzystaj z każdego oprogramowania do odzyskiwania danych, które możesz znaleźć, dopóki nie odzyskasz swoich danych lub nie przestanie być tego warte. Jeśli jest to naprawdę ważne, wyślij je do profesjonalistów w wysokiej cenie.

Jeśli już wcześniej miałeś szczęście z narzędziem, spróbuj je ponownie, ponieważ jesteś z nim zaznajomiony. Pod koniec dnia, nie powinny one być zapisywane na dysku, więc możesz korzystać z oprogramowania, dopóki nie znajdziesz takiego, które działa.

2
2
2
2014-05-24 20:43:18 +0000

Jeśli masz otwartą aplikację, która aktualnie czyta ten plik, np. VLC lub LibreOffice, to ta wspaniała odpowiedź L&U.SO pomogła mi wyjść z tego bałaganu. Oto alternatywna metoda do zrobienia tego samego.

Ogólną ideą jest znalezienie linku w /proc/PID/fd/DESCRIPTOR_NUMBER i skopiowanie go z powrotem do jego oryginalnej lokalizacji. Użyj ps aux | grep APP_NAME do znalezienia PID-a, a następnie ls -la /proc/PID/fd/ do znalezienia odpowiedniego OPISU.

1
1
1
2018-07-09 18:57:14 +0000

Jeśli nie jest nadpisywany przez innych użytkowników, to masz szczęście. Przypadkowo usunąłem mój plik źródłowy cpp i użyłem narzędzia o nazwie foremost , które pomogło mi przywrócić 60G odłamków cpp z dysku. W końcu odzyskałem mój plik, montując te odłamki kawałek po kawałku. Myślę, że skanuje on określony wzór w poszukiwaniu konkretnego typu pliku i przemierza wszystkie inody na dysku, aby odzyskać pliki! Po prostu spróbuj!

1
1
1
2011-07-24 15:23:23 +0000

Prawidłową" odpowiedzią jest założenie, że nie ma metody na niezawodne odzyskanie, a zamiast tego przywrócenie z kopii zapasowych lub sklonowanego systemu lub reinstalacja.

TestDisk jest świetnym narzędziem, i istnieją inne sposoby, aby być w stanie uratować niektóre dane z dysku fizycznego w zależności od systemu plików i recenzji usuwania, ale czas i ból może być po prostu zbyt wielki, więc KEEP BACKUPS (a także przetestować, że są one ważne i możliwe do odtworzenia)!

1
1
1
2013-07-30 07:55:30 +0000

Oto wielki dokument dla ciebie. Znajdziesz tam mnóstwo praktycznych wskazówek.

BTW, są dwie grupy ludzi:

  1. ci którzy robią kopie zapasowe
  2. ci którzy będą robić kopie zapasowe

Gratulacje, właśnie awansowałeś do grupy 2. ;-)

0
0
0
2014-07-17 12:52:30 +0000

Jeśli przypadkowo usunąłeś plik z Linuksa, możesz użyć tej komendy:

find /root -name "search text" -type f -exec mv {} "/home" \;

w miejsce search text możesz umieścić nazwę pliku i określić katalog, który chcesz przywrócić w miejsce /home.

0
0
0
2018-05-15 01:46:17 +0000

Możesz spróbować tego scenariusza. Działa ładnie i jest przeznaczony do wykorzystania w miejscu rm i im używać go teraz szeroko. https://github. com/nateshmbhat/safe-rm

Features :

  • intended to be used in place of rm
  • handles all arguments that rm can take
  • handles the file name collisions with the files already in trash
  • handles some permission issues automatically
  • if rm is called from any other script or indirectly then the system ‘rm’ command is used automatically
  • shows the appropriate error messages like those which arise in rm
-2
-2
-2
2015-10-19 12:27:52 +0000

Miałem ten sam problem w zeszłym tygodniu 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 prosty:

ext3grep image.img --restore-all

lub:

ext3grep /dev/sda3 --restore-all --after date -d '2015-01-01 00:00:00' '+%s' --before `date -d ‘2015-01-02 00:00:00’ ‘+%s’

Ten film pokazuje jest mini tutorial, który może pomóc.