Jak odzyskać usunięte pliki w systemie Linux za pomocą testdisk

Czy zdarzyło Ci się kiedyś przypadkowo usunąć plik, a potem natychmiast tego pożałować? Pragniesz go odzyskać jak najszybciej! Co zrobić, gdy plik jest na tyle nowy, że nie masz jeszcze jego kopii zapasowej? Na szczęście istnieją sposoby na rozwiązanie tej sytuacji.

rm: Co oznacza ten skrót?

Użycie komendy rm może być niezwykle proste, jednak po jej wykonaniu możesz odczuwać narastające uczucie żalu. Jeden błąd przy użyciu symboli wieloznacznych może prowadzić do usunięcia znacznie większej ilości danych, niż zamierzałeś.

W systemie Linux, domyślnym systemie plików jest ext4, który korzysta z i-węzłów do zarządzania informacjami o plikach oraz ich tabelą. I-węzeł przechowuje metadane związane z plikiem, takie jak jego nazwa, właściciel czy uprawnienia.

Każdy plik ma przynajmniej jedno twarde łącze, a każdy nowy twardy link zwiększa liczbę twardych linków o jeden. Z kolei usunięcie twardego łącza zmniejsza tę liczbę o jeden.

Kiedy usuwasz plik, i-węzeł oznacza go jako nieużywany i gotowy do ponownego użycia, co skutkuje tym, że ostatni twardy link zostaje usunięty. W rezultacie plik znika z listy katalogu i nie jest dostępny do użycia.

Jednakże, dane zawarte w pliku wciąż pozostają na dysku. Jeśli uda Ci się wprowadzić poprawne informacje do i-węzła, plik może zostać przywrócony, pod warunkiem że dane nie zostaną nadpisane.

Alternatywnie, możesz stworzyć nowy i-węzeł, skopiować pozostałe dane ze starego i-węzła i uzupełnić brakujące elementy.

To jednak nie jest proste zadanie. Zazwyczaj, gdy przypadkowo usuwasz plik, zdarza się to w najgorszym możliwym momencie, gdy naprawdę go potrzebujesz. Nie masz czasu na skomplikowane operacje z użyciem edytorów sektorowych i innych narzędzi, a jeśli plik był świeżo utworzony, to prawdopodobnie nie masz jego kopii zapasowej.

W tym momencie z pomocą przychodzi testdisk. To narzędzie jest proste w obsłudze i nie wymaga zaawansowanej wiedzy o systemie plików. Zobacz, jak go używać!

Jak zainstalować testdisk

Aby zainstalować testdisk na Ubuntu, wykonaj poniższe polecenie:

sudo apt-get install testdisk

Dla Fedorze użyj poniższego polecenia:

sudo dnf install testdisk

Na Manjaro użyj polecenia pacman:

sudo pacman -Sy testdisk

Jak korzystać z testdisk

Choć narzędzie działa w terminalu, testdisk oferuje prosty interfejs. Nawigacja odbywa się za pomocą klawiszy strzałek, a wybór opcji realizuje się za pomocą klawisza Enter. Aby zachować porządek, warto stworzyć nowy katalog na przywrócone pliki.

Wprowadź poniższe polecenie, aby utworzyć katalog o nazwie „przywrócony” dla odzyskanych plików:

mkdir restored

Wprowadź poniższe polecenie, aby przejść do nowego katalogu i uruchomić testdisk:

cd restored/

Konieczne będzie użycie sudo z testdisk, więc wpisz:

sudo testdisk

Na początku testdisk zapyta o opcje logowania. Może utworzyć nowy plik dziennika, użyć istniejącego lub w ogóle nie prowadzić rejestru. Wybór opcji nie wpłynie na działanie testdisk.

Możesz po prostu nacisnąć Enter, aby zaakceptować domyślną opcję i utworzyć nowy plik dziennika, który znajdzie się w katalogu, z którego uruchomiłeś testdisk. Po dokonaniu wyboru testdisk zapyta, który dysk twardy chcesz zbadać w kontekście systemu plików.

Wyświetli listę dostępnych dysków twardych oraz plików „/ dev / loop” dla aplikacji zainstalowanych w systemie. Te pliki są tylko do odczytu, więc nie próbuj ich usuwać.

Na tym komputerze testowym mamy tylko jeden fizyczny dysk twardy, dlatego użyliśmy klawisza strzałki w dół, aby zaznaczyć opcję „/ dev / sda”. Następnie klikamy strzałkę w prawo, aby wybrać „Kontynuuj”, a następnie naciskamy Enter.

Testdisk musi również określić typ partycji. Pojawi się menu z opcjami, a na dole zostanie automatycznie wykryty typ partycji.

Jeśli nie masz szczególnego powodu, by tego nie robić, zaznacz automatycznie wykrywany typ partycji i naciśnij Enter.

W kolejnym menu wybierz „Advanced” i naciśnij Enter.

Wyświetli się menu wyboru partycji.

Pliki, które chcemy odzyskać, znajdują się na partycji systemu plików Linuksa. Mamy tylko jedną partycję Linuksa na naszym dysku, ale Ty możesz mieć ich więcej.

Wybierz partycję, z której chcesz odzyskać pliki, użyj klawiszy strzałek, aby wybrać „List”, a następnie naciśnij Enter. Pojawi się lista plików.

Możesz poruszać się po liście plików i katalogów za pomocą klawiszy strzałek w górę i w dół, a także PgUp i PgDn. Aby wejść do katalogu, naciśnij strzałkę w prawo lub Enter, a aby wyjść, użyj strzałki w lewo lub Esc.

Szukamy plików, które należały do Dave’a. Pliki dla wszystkich użytkowników znajdują się w katalogu „Home”, dlatego zaznaczamy katalog „Home” i wchodzimy do niego.

Wszystkie konta użytkowników są teraz widoczne. Zaznaczamy „dave” i wchodzimy do jego katalogu.

Teraz widzimy pliki przypisane do konta dave. Usunięte wpisy są zaznaczone na czerwono. Przeszukujemy pliki i katalogi, aż znajdziemy te, które chcemy odzyskać.

Aby przywrócić plik, po prostu go zaznacz, a następnie naciśnij klawisz c (mała litera).

Interfejs zmieni się i poprosi o wybór lokalizacji dla odzyskanego pliku. Ponieważ utworzyliśmy katalog „Przywrócony” i uruchomiliśmy testdisk z tego miejsca, pierwszy wpis na liście (.) odnosi się do tego katalogu. Aby przywrócić plik do tego katalogu, naciśnij C (wielka litera).

Po zakończeniu tego procesu wrócisz do ekranu wyboru plików. Jeśli chcesz odzyskać więcej plików, po prostu powtórz tę procedurę: zaznacz usunięty plik, naciśnij c (mała litera), a następnie C (wielka litera) w celu odzyskania.

Zarządzanie przywróconymi plikami

Po przywróceniu pliku, struktura katalogów zostaje odtworzona w pierwotnej lokalizacji, co jest przydatne, ponieważ przypomina, gdzie na dysku twardym znajdował się oryginalny plik. Jeśli chcesz go skopiować, wiesz, gdzie go umieścić.

Jeśli odzyskasz wiele plików z różnych lokalizacji systemu plików o tych samych nazwach, będą musiały być przechowywane w oddzielnych miejscach.

Aby wyświetlić zawartość katalogu „Przywrócone”, użyj polecenia:

ls

Jeśli testdisk utworzył plik dziennika, znajdziesz go w katalogu „Przywrócone”. Ponieważ odzyskane pliki były w „/ home / dave”, zostały skopiowane do katalogu „Przywrócone”, w odpowiednich podkatalogach.

Aby przejść do skopiowanego katalogu „dave”, użyj polecenia cd. Upewnij się, że nie ma ukośnika na początku ścieżki (/) — chcesz zmienić na lokalny „home”, a nie systemowy „/ home”.

Wpisz:

cd home/dave

Odzyskane pliki znajdują się w tym katalogu, więc wpisz:

ls

Możesz także użyć opcji -l (długa lista), aby zobaczyć szczegóły odzyskanych plików:

ls -l

Ponieważ używaliśmy sudo do uruchomienia testdisk, odzyskane pliki będą miały „roota” jako właściciela. Możemy przywrócić właściwego właściciela, wpisując:

sudo chown dave.dave *

Aby upewnić się, że przywrócono właściwe uprawnienia, wpisz:

ls -l

testdisk: Uczucie ulgi

Uczucie ulgi, jakie towarzyszy odzyskaniu istotnego pliku, który wydawał się bezpowrotnie utracony, jest zawsze nieocenione.

Dlatego testdisk jest tak cennym narzędziem. Przechodząc przez poszczególne opcje i rozpoczynając proces przywracania plików, łatwo wpaść w rytm: zaznacz, naciśnij c, a następnie C, powtarzaj.