Odzyskiwanie przypadkowo usuniętych plików

79

Przypadkowo usunąłem plik z laptopa. Używam Fedory. Czy można odzyskać plik?

crskhr
źródło
9
jaki jest twój system plików?
echox

Odpowiedzi:

94

Odradzałbym natychmiastowe instalowanie jakiegoś narzędzia. Zasadniczo twoim największym wrogiem są zapisy na dysku. Chcesz ich teraz za wszelką cenę uniknąć.

Najlepszym rozwiązaniem jest automatyczne tworzenie kopii zapasowych utworzone przez edytora - jeśli istnieje. Jeśli nie, spróbuję wykonać następującą sztuczkę za pomocą grep, jeśli pamiętasz unikalny ciąg w pliku .tex:

$sudo grep -i -a -B100 -A100 'string' /dev/sda1 > file.txt

Zastąp /dev/sda1urządzenie, na którym plik był, i zastąp 'string'unikalnym ciągiem w pliku. To może zająć trochę czasu. Ale w zasadzie polega to na tym, że wyszukuje ciąg znaków na urządzeniu, a następnie zwraca 100 linii przed i po tej linii i wstawia ją file.txt. Jeśli potrzebujesz więcej wierszy, dostosuj odpowiednio opcje -Bi -A. Możesz otrzymać kilka dodatkowych śmieci, ale powinieneś być w stanie odzyskać tekst.

Powodzenia.

Steven D.
źródło
8
Ktoś mi to pokazał kilka tygodni po przejściu na Linuksa, kiedy zabiłem dokument tekstowy, którego naprawdę potrzebowałem - to prawie oszalało
Michael Mrozek
18
Nawiasem mówiąc, -B100 -A100można zastąpić odpowiednikiem -C100(C dla „kontekstu”). I na pewno nie skorzystałbym, -igdyby było to możliwe, ale ma -Fna swoim miejscu.
rozcietrzewiacz
Prawdopodobnie nic dziwnego - zakładam, że te same bloki dyskowe zostały ponownie użyte - ta metoda nie zadziałała dla pliku, który przypadkowo nadpisałem, a nie przypadkowo usunąłem.
ntc2
Tak, w większości systemów plików te same bloki są ponownie wykorzystywane, gdy plik jest po prostu nadpisywany. Zauważ, że niektóre aplikacje „omijają to” w pewnym sensie, pisząc najpierw plik tymczasowy (co czyni go oddzielnym zapisem), a następnie zmieniając nazwę tego pliku na stary plik (który zastępuje dane z punktu widzenia użytkownika). Odbywa się to z wielu różnych powodów. Systemy pamięci masowej (w tym systemy plików), które robią to cały czas, są nazywane kopiowaniem przy zapisie .
CVn
potrzebujesz / dev / sda1 ?? Czy możesz po prostu przejść do reżysera, w którym plik był i uruchomić bez / dev / sda1?
coolcool1994
22

Jest możliwe, to będzie po prostu kłopot.

AKTUALIZACJA: zanim spróbujesz tej metody, spójrz na odpowiedź Stevena .

Będziesz potrzebował pakietu testdisk , dużo miejsca na dysku i dużo czasu.

PhotoRec, część TestDisk, może odzyskać pliki z niemal każdego dysku. PhotoRec obsługuje wyszukiwanie .texplików.


Najpierw zainstaluj testdisk , uruchamiając

yum install testdisk

Uwaga: Będziesz potrzebował dużo wolnego miejsca na innym dysku, na którym możesz zapisać odzyskane pliki.

Odzyskaj wszystkie usunięte pliki z dysku, uruchamiając photorecgo w wolnym miejscu na dysku.

sudo photorec

i postępuj zgodnie z instrukcjami ... (pamiętaj, aby nie zapisywać plików na tym samym dysku, z którego odzyskujesz)

Po zakończeniu procesu wszystkie odzyskane pliki powinny znajdować się w jednym katalogu, w którym należy uruchomić:

find -name '*.tex' > filelist

Spowoduje to wyświetlenie listy plików, które mogą być tymi, które utraciłeś. Będziesz musiał sprawdzić je wszystkie, ponieważ nazwy plików zostaną utracone.

Stefan
źródło
11
photorec jest dobrym użytkiem, po prostu martwiłbym się zapisem na dysku, który nastąpi podczas instalacji. Czy istnieje sposób, aby uzyskać to jako samodzielny plik wykonywalny, który można uruchomić z zewnętrznego nośnika?
Steven D
1
Tak, masz rację. Nie wiem o samodzielnym pliku wykonywalnym, ale można spróbować użyć live-cd?
Stefan
2
aby ograniczyć pliki odzyskane za pomocą Photorec, trzeci ekran w opcji [File Opt] wybierz to. Możesz z listy wybrać typy plików, które chcesz odzyskać lub których nie chcesz.
Steve Burdine
13

Wiele edytorów tekstu przechowuje pliki kopii zapasowych. Jeśli masz naprawdę szczęście, może istnieć coś takiego jak Twój plik.tex ~, w tym poprzednia wersja pliku.

fschmitt
źródło
4

W każdym razie przestałbym działać na urządzeniu używanym tak szybko, jak to możliwe, aby uniknąć zapisu na dysku, i uruchomiłem dedykowany system odzyskiwania, taki jak SystemRescueCd , który jest Live-CD, dzięki czemu można zamontować dysk tylko do odczytu w aby zapobiec dalszej utracie danych.

Dystrybucje te zawierają wiele narzędzi odzyskiwania wspomnianych przez innych i większość z nich można zainstalować.

Na wszelki wypadek zawsze mam CD z najnowszą wersją SystemRescueCd w moim zewnętrznym czytniku USB.

Martin C.
źródło
3

UWAGA: Dodałem tę odpowiedź dotyczącą niektórych innych pytań dotyczących usuniętych plików bazy danych (serwer MySQL), które zostały zamknięte i wskazałem na to. Uważam, że może to być przydatne również w innych podobnych sytuacjach (o ile proces nadal utrzymuje otwarte deskryptory plików).

Jeśli proces jest nadal uruchomiony, możesz znaleźć swoje pliki /proc/<pid>fd/i po prostu je skopiować. Wyślij SIGSTOPnajpierw do grupy procesów. Skopiuj pliki. Zbuduj nową instancję z boku i zatrzymaj tę lub zatrzymaj kill -9i umieść pliki z powrotem na swoich miejscach. InnoDB sam się zregeneruje po uruchomieniu, ale jeśli było trochę MyISAM, musisz to zrobić ręcznie.

pawel7318
źródło
2

Przypadkowo usunąłem plik db sqlite.

To, co zrobiłem, aby znaleźć plik, to:

Otworzyłem lokalizację /proc/w przeglądarce plików i szukałem tam usuniętego pliku db sqlite db.

Znalazłem ten plik w wyniku wyszukiwania. Skopiowałem ten plik stamtąd do mojego starego miejsca.

Thaha kp
źródło
0

Miałem ten sam problem dwa lata temu 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:

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 jest mini poradnikiem, który może ci pomóc.

Juan
źródło
0

Jeśli nie masz kopii zapasowej, narzędzie do odzyskiwania dysku innej firmy może odzyskać część lub całość danych, ale musisz teraz przestać korzystać z urządzenia. Pliki z kosza są teraz dostępne dla twojego systemu, aby je zastąpić. Po ich zastąpieniu odzyskanie danych jest zbyt drogie. Odniosłem sukces przy korzystaniu z funkcji odzyskiwania danych uflysoft (istnieją inne aplikacje do odzyskiwania danych w systemie Mac OS) - musisz mieć „dysk odzyskiwania” (nie dysk główny lub dysk, z którego się zbierasz), na którym możesz zapisać odzyskane dane. Uruchamiasz z dysku odzyskiwania danych (system)

Gallup Noel
źródło