Czy kiedykolwiek usunąłeś plik i od razu tego pożałowałeś? Potrzebujesz go z powrotem i to szybko! Ale co, jeśli plik jest tak nowy, że nie ma jeszcze kopii zapasowej? Na szczęście możesz coś z tym zrobić.
Spis treści:
rm: skrót od Remorse?
Bardzo łatwo jest użyć polecenia rm i wpatrywać się w okno terminala z pogłębiającym się poczuciem żalu. Jeden mały błąd z symbolami wieloznacznymi i możesz wymazać znacznie więcej, niż zamierzałeś.
Domyślny system plików Linuksa, ext4, używa i-węzłów do przechowywania danych o każdym pliku i tabeli i-węzłów do śledzenia i-węzłów. I-węzeł zawiera metadane dotyczące pliku, takie jak jego nazwa, właściciel, uprawnienia i tak dalej.
Zawiera również punkty wejścia do twardych linków, które wskazują na plik. Każdy plik ma co najmniej jedno łącze twarde. Za każdym razem, gdy tworzysz nowy twardy link, liczba twardych linków rośnie o jeden. Za każdym razem, gdy usuwasz twarde łącze, liczba twardych łączy w i-węźle jest zmniejszana o jeden.
Kiedy usuwasz plik, który i-węzeł oznaczył jako nieużywany (i gotowy do ponownego użycia), ostatni twardy link jest usuwany. W takim przypadku plik nie pojawi się na liście katalogów i nie będzie można go użyć ani uzyskać do niego dostępu.
Jednak dane składające się na zawartość pliku są nadal obecne na dysku twardym. Gdybyś mógł załatać i-węzeł tak, aby zawierał poprawne informacje, plik zostałby przywrócony. Oczywiście zadziała to tylko wtedy, gdy dane, które tworzą plik na dysku twardym, pozostaną nienaruszone i nie zostaną nadpisane.
Alternatywnie, możesz utworzyć nowy i-węzeł, skopiować pozostałe dane ze starego i-węzła, a następnie zastąpić brakujące bity.
To działania nietrywialne. Zwykle, gdy przez pomyłkę usuwasz plik, dzieje się to w najgorszym możliwym momencie. Jest to zawsze, gdy potrzebujesz tego pliku i potrzebujesz go teraz. Nie masz czasu, aby się ubrudzić edytorami sektorowymi i innymi narzędziami. Ponadto, jeśli jest to właśnie utworzony plik, prawdopodobnie nie utworzono jeszcze jego kopii zapasowej, więc te też ci nie pomogą.
Tutaj pojawia się testdisk. Jest łatwy w użyciu i nie wymaga szczegółowej, niskiego poziomu znajomości systemu plików. Zobaczmy, jak go używać!
Instalowanie testdisk
Aby zainstalować testdisk na Ubuntu, użyj tego polecenia:
sudo apt-get install testdisk
W Fedorze musisz wpisać:
sudo dnf install testdisk
Na Manjaro musisz użyć pacmana:
sudo pacman -Sy testdisk
Korzystanie z testdisk
Chociaż działa w oknie terminala, testdisk ma podstawowy interfejs. Do nawigacji służą klawisze strzałek, a do wyboru – Enter. Aby zachować porządek, najlepiej jest utworzyć katalog na przywrócone pliki.
Wpisujemy następujące polecenie, aby utworzyć katalog o nazwie „przywrócony” dla naszych przywróconych plików:
mkdir restored
Wpisujemy następujące polecenie, aby przejść do nowego katalogu i stamtąd uruchomić testdisk:
cd restored/
Musimy użyć sudo z testdisk, więc wpisujemy:
sudo testdisk
Pierwsze pytanie, jakie zadaje testdisk, dotyczy logowania. Może utworzyć nowy plik dziennika, użyć istniejącego lub w ogóle niczego nie rejestrować. Nie ma znaczenia, którą opcję wybierzesz; nie wpłynie to na sposób działania testdisk.
Możesz po prostu nacisnąć klawisz Enter, aby zaakceptować podświetloną opcję i utworzyć nowy plik dziennika. Zostanie utworzony w katalogu, z którego uruchomiłeś testdisk. Po dokonaniu wyboru testdisk zapyta, który dysk twardy zawiera system plików, na którym chcesz pracować.
Zawiera listę dysków twardych, które może znaleźć, a także pliki „/ dev / loop” programu squashfs. Będzie jeden z nich dla każdej zainstalowanej aplikacji w mgnieniu oka. Są tylko do odczytu, więc nie powinieneś był usuwać niczego z tych systemów plików.
W tym komputerze testowym jest tylko jeden fizyczny dysk twardy, więc użyliśmy strzałki w dół, aby podświetlić opcję „/ dev / sda”. Następnie użyliśmy strzałki w prawo, aby wybrać „Kontynuuj”, a następnie wcisnęliśmy Enter.
testdisk musi również znać typ partycji. Przedstawia menu opcji wraz z typem partycji, która jest automatycznie wykrywana u dołu.
Jeśli nie masz dobrego powodu, aby tego nie robić, podświetl typ partycji, który jest automatycznie wykrywany, a następnie naciśnij klawisz Enter.
W wyświetlonym menu funkcji podświetl „Advanced” i naciśnij Enter.
Pojawi się menu wyboru partycji.
Pliki, których szukamy, znajdują się na partycji systemu plików Linuksa. Mamy tylko jedną partycję Linuksa na naszym dysku twardym, ale możesz mieć więcej.
Wybierz partycję, na której znajdowały się pliki, użyj lewego i prawego klawisza strzałki, aby wybrać „List”, a następnie naciśnij Enter. Pojawi się menu wyboru plików.
Użyj strzałek w górę iw dół lub klawiszy PgUp i PgDn, aby poruszać się po liście plików i katalogów. Naciśnij strzałkę w prawo lub Enter, aby wejść do katalogu, a strzałkę w lewo lub Esc, aby wyjść z katalogu.
Szukamy plików, których właścicielem był Dave. Pliki dla wszystkich kont użytkowników znajdują się w katalogu „Home”. Dlatego podświetlamy katalog „Home”, a następnie możemy nacisnąć strzałkę w prawo lub Enter, aby wejść do tego katalogu.
Wszystkie konta użytkowników są następnie wyświetlane dla nas. Podświetlamy dave, a następnie naciskamy strzałkę w prawo lub Enter, aby wejść do tego katalogu.
Teraz możemy zobaczyć pliki należące do konta dave. Wpisy zaznaczone na czerwono zostały usunięte. Poruszamy się po plikach i katalogach, aż zlokalizujemy pliki, które chcemy odzyskać.
Aby odzyskać plik, po prostu go zaznacz, a następnie naciśnij c (małe litery).
Wyświetlacz zmieni się i wyświetli komunikat o wyborze miejsca docelowego dla odzyskanego pliku. Ponieważ utworzyliśmy katalog o nazwie „Przywrócony” i uruchomiliśmy z niego testdisk, pierwszy wpis na liście (.) Jest tym katalogiem. Aby odzyskać ten usunięty plik do tego katalogu, naciskamy C (wielkie litery).
Po wykonaniu tej czynności wrócisz do ekranu wyboru plików. Jeśli chcesz odzyskać więcej plików, po prostu powtórz proces. Zaznacz usunięty plik, naciśnij c (małe litery), aby go skopiować, a następnie naciśnij C (wielkie litery), aby go odzyskać.
Praca z przywróconymi plikami
Po przywróceniu pliku drzewo katalogów zostanie odtworzone do jego pierwotnej lokalizacji, co jest przydatne, ponieważ przypomina o miejscu na dysku twardym, w którym znajdował się oryginalny plik. Oznacza to, że jeśli chcesz go skopiować, wiesz, gdzie go umieścić.
Jeśli odzyskasz wiele plików z różnych lokalizacji systemu plików, które mają taką samą nazwę, i tak będą musiały być przechowywane osobno.
Możesz wpisać następujące informacje, aby wyświetlić zawartość katalogu „Przywrócone”:
ls
Jeśli poprosiłeś testdisk o utworzenie pliku dziennika, znajdzie się on w katalogu „Przywrócono”. Ponieważ nasze odzyskane pliki znajdowały się w „/ home / dave”, zostały skopiowane do naszego katalogu „Przywrócone”, zagnieżdżonego w katalogach o tej samej nazwie.
Do skopiowanego katalogu „dave” możemy przejść za pomocą cd. Upewnij się, że na ścieżce nie ma poprzedzającego ukośnika (/) – chcesz zmienić na lokalny „home”, a nie systemowy „/ home”.
Wpisujemy:
cd home/dave
Odzyskane pliki znajdują się w tym katalogu, więc wpisujemy:
ls
Przyjrzyjmy się ponownie odzyskanym plikom za pomocą opcji -l (długa lista):
ls -l
Ponieważ użyliśmy sudo do uruchomienia testdisk, odzyskane pliki zostały przywrócone z „rootem” jako właścicielem. Możemy zmienić właściciela z powrotem na „dave” za pomocą chown:
sudo chown dave.dave *
Wpisujemy następujące informacje, aby upewnić się, że przywrócono właściwą własność:
ls -l
testdisk: Code for Relief
To uczucie ulgi po odzyskaniu ważnego pliku, który jeszcze przed chwilą poczuł się bezpowrotnie utracony, jest czymś, co zawsze docenisz.
Dlatego testdisk jest tak przydatnym narzędziem. Po przejściu przez menu i rozpoczęciu przywracania plików, łatwo wpaść w rytm podświetlenia, c, C, powtórz.