Odzyskiwanie usuniętych plików na Linuxie (Samouczek dla początkujących)

Czy kiedykolwiek usunąłeś jakieś ważne pliki przez pomyłkę? Któż z nas tego nie robi! Ok, ale czy mogę je odzyskać? W tym poście dowiesz się jak odzyskać usunięte pliki na Linuksie używając różnych programów na różnych systemach plików.

Zobaczysz jak odzyskać usunięte pliki z kart SD, dysków twardych i usuniętych partycji na różnych systemach plików Linuksa takich jak EXT3, EXT4, a nawet z systemów plików Windows takich jak FAT32 & NTFS.

Spis treści

Odzyskiwanie plików z usuniętej partycji

To jest dość duży problem. Często użytkownicy Linuksa instalują kilka systemów w tym samym czasie, i mogą przez pomyłkę usunąć partycję podczas procesu instalacji.

Jak jednak odzyskać pliki z tych usuniętych partycji? Aby to zrobić, musimy odzyskać partycję za pomocą narzędzia o nazwie TestDisk.

Testdisk to potężne narzędzie do analizy partycji i odzyskiwania danych. Większość dystrybucji Linuksa, takich jak Debian i Ubuntu, posiada TestDisk.

Z drugiej strony, aplikacja ta jest wieloplatformowa i obsługuje wiele tabel partycji, takich jak Intel, MSDOS i Mac. Są to najpopularniejsze tablice partycji.

Obsługuje również wiele systemów plików, takich jak NTFS, EXT4, oraz inne niepopularne systemy plików, takie jak BeOS i ReiserFS.

Gdy usuwasz plik, lista klastrów zajmowanych przez plik jest usuwana, zaznaczając te sektory dostępne do użycia. Jeśli klastry nie zostały nadpisane, TestDisk może odzyskać pliki.

Najpierw uruchom aplikację w ten sposób:

$ testdisk

Następnie masz możliwość utworzenia nowego pliku dla logów. Jeśli chcesz go utworzyć, wybierz opcję create i naciśnij Enter. Jeśli nie chcesz pliku dziennika, wybierz opcję No Log.

Następnie skanowane będą dyski lub partycje rozpoznane przez system. W tym konkretnym przypadku, sda jest partycją, którą chcemy odzyskać.

TestDisk rozpoznaje różne typy tablic partycji. Zazwyczaj jest to Intel, chyba że używasz wyspecjalizowanej.

W następnym ekranie zobaczysz szereg opcji, które posiada program. W tym konkretnym przypadku musimy wybrać opcję Analyse.

W przypadku tej opcji program wyczerpująco przeanalizuje dysk w celu odnalezienia struktury.

Następnie zapyta o typ wyszukiwania, który chcesz wykonać. Zazwyczaj wybieramy opcję Szybkie wyszukiwanie.

Jeśli masz szczęście, zobaczysz usuniętą partycję. Jeśli nie, będziesz musiał wybrać głębsze wyszukiwanie.

Następnie wybierz opcję Zapisz, aby zapisać tablicę partycji. Po zakończeniu uruchom ponownie system, a odzyskasz swoją partycję!

Uwaga, że podczas tych czynności może minąć sporo czasu. Zależy to od wielkości dysku.

W zależności od rodzaju systemu plików, jaki może mieć ta partycja, będą wykonywane określone instrukcje. Zostaną one szczegółowo opisane później.

Odzyskiwanie usuniętych plików z dysku zewnętrznego

Wyobraźmy sobie, że mamy zewnętrzny dysk flash, i przez pomyłkę, usunąłeś z niego jakieś pliki. Jak je przywrócić?

Dzięki TestDisk, proces staje się całkiem podobny do tego z usuniętej partycji. Istnieją jednak pewne różnice.

Aby uruchomić program, użyjemy polecenia testdisk. Możemy również dodać pendrive jako parametr w następujący sposób:

$ sudo testdisk /dev/sdb

Następnie wybieramy opcję proceed. Następnie należy wybrać typ tablicy partycji.

Następnie należy wybrać opcje zaawansowane, aby odzyskać pliki.

Kolejnym krokiem jest wybranie partycji i opcji Cofnij usunięcie.

Wtedy zobaczysz wszystkie usunięte pliki na partycji.

Teraz wybierz folder docelowy, aby umieścić odzyskane pliki. Musisz nacisnąć C na pierwszej opcji, aby umieścić pliki w bieżącym katalogu.

W końcu zobaczysz ten komunikat:

Gratulacje! Pliki przywrócone.

Odzyskiwanie usuniętych plików z karty SD

Zwykle na karcie SD, jest to powszechne, aby zauważyć, że są one wykorzystywane do plików multimedialnych. Dlatego zaleca się użycie bardziej wyspecjalizowanego programu do tych plików.

W tym przypadku użyjemy aplikacji o nazwie Photorec, która jest dołączona do TestDisk.

Najpierw włóż kartę SD do komputera. Następnie uruchom photorec jako root:

$ sudo photorec 

Wtedy zobaczysz następujący obraz. Wybierz nośnik i kontynuuj, a następnie naciśnij Enter.

Następnie wybierz partycję. I wybierz Opcje i naciśnij Enter.

W tym miejscu zobaczysz opcje odzyskiwania:

Naciśnij q, aby powrócić do poprzedniego ekranu. Konieczne jest wybranie typów plików, które chcemy odzyskać. Służy do tego wybór opcji Opcja pliku.

Naciśnij klawisz s, aby zaznaczyć i odznaczyć wszystkie formaty. Możesz również wybrać typy plików, które chcesz odzyskać, używając prawego klawisza. Aby zapisać wybrane opcje, naciśnij przycisk b. Wróć do menu głównego, używając klawisza q.

Następnie w menu głównym wybierz opcję Szukaj, aby rozpocząć proces. I wybierz system plików.

Wtedy zostaną Ci przedstawione dwie opcje. Free i Whole. Zazwyczaj wystarczy Free. Jeśli chcesz przeprowadzić dogłębną analizę, wybierz Whole, ale pamiętaj, że spowolni to proces.

Teraz należy wybrać lokalizację, w której zostaną zapisane pliki. Aby to zrobić, naciśnij klawisz c.

Po wybraniu miejsca docelowego rozpocznie się proces odzyskiwania danych. Pamiętaj, że system będzie się zapadał i zamrażał. Bądź więc cierpliwy.

Na koniec zobaczysz komunikat informujący o wszystkim, co się wydarzyło.

Następnie sprawdź wyniki.

Odzyskiwanie usuniętych plików z NTFS

NTFS to system plików systemu Windows. Jeśli jesteś jednym z tych, którzy używają obu systemów na komputerze, to możesz potrzebować przywrócić usunięte pliki z partycji Windows z tym systemem plików.

Aby to zrobić, mamy narzędzie o nazwie ntfsundelete, które jest dość proste w użyciu.

Najpierw musisz przeskanować dysk lub partycję. Na przykład:

$ sudo ntfsundelete /dev/sda1

Potem będziemy mogli odzyskać usunięty plik za pomocą następującego polecenia:

$ sudo ntfsundelete -u -m 

Odzyskane pliki należą teraz do użytkownika root. Ostatnim krokiem jest zmiana uprawnień i właścicieli plików za pomocą polecenia chown.

Odzyskiwanie plików z FAT32

Innym popularnym systemem plików Windows jest FAT32. Możesz odzyskać pliki z FAT32 używając TestDisk.

Więc ponownie uruchom testdisk jako użytkownik root i podaj dysk jako parametr:

$ sudo testdisk 

Potem kontynuuj kroki jak opisano powyżej aby przywrócić pliki.

Odzyskiwanie plików z pamięci (Używanie inode)

Jeśli usuniesz plik, który jest używany przez inny proces, możesz go przywrócić z pamięci używając inode.

Muszą być ustalone pewne warunki początkowe. Po pierwsze, usunięty plik MUSI pozostać otwarty przez inny proces. Następnie musisz zweryfikować ten proces, a na końcu odzyskać go i zmienić jego uprawnienia.

W tym przypadku utworzę plik o nazwie example.txt używając edytora nano i dodam trochę tekstu:

$ nano example.txt

Potem zapisz zmiany i otwórz inne okno terminala i użyj pliku. Na przykład, za pomocą polecenia less.

$ less example.txt

Otwórz kolejną sesję terminala, usuń plik i upewnij się, że został usunięty:

$ rm example.txt$ ls example.txt

Jak widać, plik już nie istnieje. Będziemy jednak w stanie go odzyskać. Aby to zrobić, pobierzmy numer procesu powiązanego z inode pliku.

$ lsof | grep example.txt

Zauważymy proces i polecenie, które korzysta z pliku (polecenie less). Z tego obrazka, musimy zwrócić uwagę na drugą i czwartą wartość. Są to odpowiednio PID procesu i deskryptor pliku.

Następnie odzyskaj go za pomocą następującego polecenia:

$ ls -l /proc/2325/fd/4

Następnie skopiuj go w dowolne miejsce i to wystarczy, aby go odzyskać.

$ sudo cp /proc/2325/fd/4 .

Następnie należy sprawdzić wyniki i otworzyć plik:

W ten sposób możemy odzyskać usunięty plik, który nadal znajduje się w pamięci i jest używany przez proces z inode.

Odzyskiwanie skasowanych plików z EXT4 (Using extundelete)

EXT4 jest domyślnym systemem plików w większości dystrybucji Linuksa. Jest on dość szybki i posiada techniczne cechy, które są bardzo dobrze wykorzystywane przez jądro Linux.

Jednym z używanych narzędzi do odzyskiwania plików z systemu plików EXT4 jest extundelete.

Extundelete jest aplikacją open-source, która pozwala na odzyskiwanie skasowanych plików z partycji lub dysku z systemem plików EXT3 lub EXT4. Jest prosty w użyciu i jest domyślnie zainstalowany w większości dystrybucji Linuksa.

Aby odzyskać określony plik, wystarczy użyć następującego polecenia:

$ sudo extundelete -restore-file 

Na przykład:

$ sudo extundelete /dev/sdb1 -restore-file home/angelo/other.txt

Jeśli chcesz odzyskać wszystkie pliki w folderze, użyj znaku wieloznacznego:

$ extundelete /dev/sda6 -restore-file home/angelo/*

Ale jeśli chcesz przywrócić wszystkie pliki na partycji lub dysku, wystarczy kolejne polecenie:

$ extundelete /dev/sda6 -restore-all

Więc odzyskane pliki znajdą się w katalogu RECOVERED_FILES. Więc w ten sposób, można odzyskać usunięte pliki przy użyciu extundelete.

Korzystanie z debugfs

Jest również możliwe użycie narzędzia debugfs do odzyskiwania usuniętych plików. To narzędzie również używa numeru inode usuniętego pliku. Działa ono jednak tylko na systemach plików EXT4.

Jego działanie jest również dość proste. Po pierwsze, należy wejść na partycję lub urządzenie.

$ debugfs 

Na przykład,

$ sudo debugfs /dev/sdb1

Po chwili będziemy mogli zalogować się do konsoli debugfs, aby wyszukać ostatnio usunięte pliki.

$ debugfs: lsdel

W pierwszej kolumnie zobaczysz numer inode usuniętych plików w tym urządzeniu. Następnie przywróć je za pomocą następującego polecenia:

$ debugfs mi <inode_number>

I to wszystko. Jest to całkiem proste.

Używanie ext4magic

Innym alternatywnym sposobem na odzyskanie usuniętych plików na dysku z systemem plików Ext4 jest użycie Ext4magic. Ta aplikacja jest również dość prosta w użyciu.

Najbardziej podstawowa składnia aplikacji jest następująca:

$ sudo ext4magic -f -r -d 

Gdybym chciał odzyskać usunięte pliki z folderu o nazwie files, polecenie byłoby podobne do tego:

$ sudo ext4magic /dev/sdb1 -r -d files

Tak łatwo jest korzystać z ext4magic. Wszystko to dzięki temu, że Ext4 jest systemem plików tworzonym przez społeczność i open source.

Odzyskiwanie nadpisanych plików (przy użyciu Scalpela)

Scapel jest kolejnym narzędziem open-source, które pozwala na odzyskiwanie plików ze sformatowanych dysków, nadpisanych plików, a nawet uszkodzonych dysków. Jest dobrze znany ze swojej szybkości i wydajności. W tym sensie, pojawia się jako alternatywa do rozważenia.

Scalpel rzeźbi pliki bez pomocy systemów plików. Próbuje wyodrębnić nagłówki i stopki plików i stara się odgadnąć całą strukturę plików używając dobrze zaprojektowanych algorytmów.

Podobnie jak TestDisk, jest dostępny w oficjalnych repozytoriach większości dystrybucji Linuksa. Dlatego jego instalacja sprowadza się do użycia terminala i menedżera pakietów danej dystrybucji.

Najszybszy i najłatwiejszy sposób użycia Scapela jest następujący:

$ scalpel -o 

Folder output_folder określa miejsce, w którym scapel umieści wszystkie odzyskane pliki. Zauważ, że Scalpel sam utworzy katalog wyjściowy.

Ale skąd Scapel wie, które pliki odzyskać? Cóż, jest to zdefiniowane w pliku konfiguracyjnym aplikacji.

Ten plik konfiguracyjny zwykle znajduje się w następującej lokalizacji:

/etc/scalpel/scalpel.conf

I możesz otworzyć go w swoim ulubionym edytorze tekstu, a tam będziesz musiał tylko odkomentować linie, aby zdefiniować formaty plików do przeszukania.

Formaty plików, które odkomentujesz, Scalpel będzie je wyszukiwał.

Następnie uruchom pełne polecenie Scalpela, a w folderze wyjściowym zobaczysz odzyskane pliki.

$ sudo scalpel /dev/sdb1 -o recovered_files1

Czasami Scalpel przywraca część pliku. Zależy to od stanu dysku i tego, jak wiele danych zostało uszkodzonych.

Jest też wiele algorytmów odzyskiwania, których możesz użyć, ale omówiliśmy tutaj podstawowy sposób odzyskiwania danych.

Odzyskiwanie plików z nieuruchomionego systemu

To delikatny przypadek, ponieważ musimy uzyskać dostęp z Live cd Ubuntu lub innej podobnej dystrybucji Linuksa. Po uruchomieniu systemu, moglibyśmy użyć TestDiska aby spróbować odzyskać dane.

W tym przypadku musielibyśmy użyć zewnętrznego dysku, na którym zapisalibyśmy dane. Z drugiej strony, w przypadku, gdy TestDisk nie może wykonać zadania, możemy również spróbować extundelete lub ext4magic tak długo, jak partycja jest Ext4.

Jeśli to nie zadziała, możesz spróbować zregenerować partycję używając TestDisk, jak wyjaśniono powyżej.

Podsumowanie

Możliwe jest przypadkowe usunięcie plików. Chodzi o to, aby znać odpowiednie narzędzia i techniki do odzyskania tych plików.

W tym poście, omówiliśmy kilka okoliczności i różne systemy plików, które mogą pomóc uniknąć takich problemów.

K keep coming back.

Thank you.

Założyciel LikeGeeks. Pracuję jako administrator systemu Linux od 2010 roku. Jestem odpowiedzialny za utrzymanie, zabezpieczanie i rozwiązywanie problemów z serwerami Linux dla wielu klientów na całym świecie. Uwielbiam pisać skrypty w powłoce i Pythonie, aby zautomatyzować swoją pracę.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *