Odzyskiwanie skasowanych danych
W artykule przedstawiam proste metody odzyskania skasowanych plików (np. w wyniku sformatowania pendrive-a czy przypadkowego usunięcia pliku z dysku). Artykuł opisuje narzędzia dostępne zarówno w systemach Windows jak i Linux. Wszystkie opisane w tekście narzędzia są dostępne bezpłatnie.
Zasadniczymi programami przedstawionymi w tekście są: Recuva oraz Photorec. Różnią się one między sobą skutecznością, więc w pewnych sytuacjach optymalnie jest skorzystać z obu. Użycie oprogramowania Recuva jest bardzo proste i od niego proponujemy zacząć.
Wstęp
Przed rozpoczęciem odzyskiwania skasowanych danych, trzeba pamiętać że każdy zapis na nośnik (dysk) z którego chcemy odzyskać dane zmniejsza szansę na odzyskanie maksymalnej liczby plików. Dlaczego? Otóż nowo zapisywane pliki mogą nadpisać miejsce na dysku, gdzie znajdują się dane "usunięte". Dlatego warto zachować pewną ostrożność:
- Jeśli odzyskujemy dane z dysku na którym pracujemy, nie instalujemy na nim dodatkowego oprogramowania ani nie pracujemy dalej na nim.
Najlepiej dysk wyjąć z komputera oraz podłączyć go jako dodatkowy do innego PC, z którego będziemy odzyskiwać dane. W takim przypadku można skorzystać z adaptera USB - ATA/SATA, który umożliwi podłączenie dysku do komputera, na którym odzyskujemy pliki, za pomocą kabla USB - czyli bez rozkręcania komputera (cena adaptera ok. 40 zł). - Odzyskanych danych nie zapisujemy na tym samym nośniku (dysku). Można je zapisać na innym dysku / innym pendrive.
- Opcja dla zaawansowanych - optymalnie pracujemy tylko na kopii nośnika z którego odzyskujemy dane (patrz koniec artykułu).
- Te same zasady dotyczą nośników przenośnych - pendrive / kart pamięci - nie korzystamy z nich do czasu odzyskania utraconych danych.
Recuva
Darmowym i prostym w obsłudze oprogramowaniem umożliwiającym lokalizację skasowanych plików jest Recuva. Program ten dostępny tylko dla systemów Windows, osoby pracujące w systemach Linux mogą od razu przejść do kolejnego podrozdziału opisującego oprogramowanie Testdisk / Photorec.
Skanowanie dysku
Po instalacji oraz uruchomieniu oprogramowania Recuva, w górnym menu wybieramy odpowiedni dysk (tj ten z którego chcemy odzyskać usunięte dane) oraz naciskamy przycisk "skanuj". Po chwili możemy już w drzewie po lewej zaznaczyć pliki, które możemy odzyskać. Następnie korzystamy z przycisku "odzyskaj" - prawy dolny róg, co zapisze pliki w wybranej przez nas lokalizacji (przypominamy o zapisaniu odzyskanych danych na innym dysku / nośniku).
Warto również zaznaczyć pewne możliwości konfiguracyjne Recuva - przycisk "Opcje" (prawy górny róg interface):
- "Deep Scan" (dokładniejsze, ale dłuższe skanowanie badanego nośnika),
- "Scan for non-deletes files" (użyteczne w przypadku odzyskiwania plików z uszkodzonego systemu plików)
- "Restore folder structure" (odzyskanie struktury katalogów, przydatne w przypadku odzyskiwania plików z uszkodzonego systemu plików)
Praca z recuva, gdy posiadamy posektorową kopię nośnika
Recuva nie oferuje opcji pracy na obrazie dysku (jak wykonać obraz posektorowy nośnika - patrz rozdział: kopia posektorowa). Możemy jednak skorzystać z innego oprogramowania, które udostępni wcześniej wykonany obraz jako dysk w systemie Windows . Przykładem aplikacji, które umożliwiają taką funkcjonalność są np.:
Na zrzucie ekranowym poniżej przedstawiamy użycie OSFMount:
Zauważmy że oprogramowanie to umożliwia podłączenie obrazu w trybie read-only. Od tego momentu obraz dostępny będzie jako dysk G. Dalsze kroki są analogiczne jak przy pracy bezpośrednio na nośniku.
Testdisk
Innym darmowym oprogramowaniem umożliwiającym odczyt usuniętych plików z dysku jest pakiet Testdisk / Photorec. Pierwszy z nich służy do odzyskiwania danych, utraconych w wyniku pewnych awarii nośnika (np. kiedy dysk nie jest w normalny sposób widoczny w systemie operacyjnym), choć posiada również funkcjonalność "undelete". Photorec z kolei skanuje dane na nośniku w poszukiwaniu sygnatur plików (ciągów bajtów charakterystycznych dla konkretnych typów plików).
Oba programy o obsługują znaczną liczbę systemów plików: FAT, NTFS, EXT2/3/4,ReiserFS, itd.
Zobaczmy na początek jak działa Testdisk - a dokładniej - jego funkcjonalność "undelete".
Uruchamiamy bez parametrów:
C:\> testdisk_win.exe
Następnie:
- Create (utwórz nowy plik logów działania Testdisk; logi tworzone są w celach diagnostycznych, najprawdopodobniej nie będą nam potrzebne)
- Wybieramy nośnik z którego chcemy odzyskać dane
- Wybieramy tryb partycjonowania nośnika. Najpopularniejsze opcje: Intel/PC partiton (odzyskiwanie z dysku) lub None (np. odzyskiwanie z pendrive)
- Wybieramy opcję -> Advanced, a następnie wybieramy system plików oraz zaznaczamy opcję "Undelete"
- Pozostaje już tylko wybrać pliki do odzyskania i wskazać katalog w którym powinny być odtworzone
Photorec
Photorec mimo że w nazwie zawiera słowo „photo”, sugerujące odzyskiwanie jedynie formatów graficznych, umożliwia odzyskanie również innych plików (niemal 400 różnych rozszerzeń). Przede wszystkim program ten działa w trybie poszukiwania pewnych charakterystycznych wzorców plików - w obszarze całego nośnika lub w obszarze oficjalnie niezajętym przez inne pliki - w takich miejscach mogą znajdować się wcześniej usunięte dane.
Taki sposób poszukiwania utraconych plików skutkuje zazwyczaj większą skutecznością niż opisane wcześniej mechanizmy w programie Testdisk, natomiast trwają zdecydowanie dłużej.
W przypadku chęci odzyskania danych bezpośrednio z nośnika, po prostu uruchamiamy oprogramowanie bez parametrów, w kolejnym kroku zostaniemy poproszeni o wybór dysku, z którego chcemy odzyskać dane.
Całość pracy - podobnie jak w programie Testdisk - odbywa się w interfejsie tekstowym, a w następnych krokach jesteśmy proszeni o podanie kolejnych opcji (z jakiej partycji odzyskać dane, gdzie je zapisać, itp). W każdym momencie mamy wyświetlaną pomoc (opis skrótów klawiaturowych realizujących konkretne zadania).
Photorec w działaniu:
Część odzyskanych plików:
Skuteczność przedstawianych narzędzi
Poniżej przedstawiamy pewne podsumowanie skuteczności Recuva vs Photorec na wybranym przypadku. Podczas testów wykorzystano 4GB pendrive na którym:
- zapisano kilka plików (pdf, ppt, doc, txt, ...)
- utworzono bootowalny obraz Linux-a (z wykorzystaniem UNetbootin)
- sformatowano pendrive (szybkie formatowanie, stworzenie NTFS)
- wgrano kilka plików
- usunięto jeden z nich
Na takiej testowej próbce bardziej skuteczny był duet Testdisk / Photorec - para ta była w stanie np. odtworzyć kilka plików tekstowych (z pierwszego punktu powyżej), których "nie widział" Recuva.
Jednocześnie warto zaznaczyć, że oprogramowanie Recuva było o wiele prostsze w obsłudze.
Kopia posektorowa [użytkownicy zaawansowani]
Na początku tekstu wspominaliśmy o dobrej praktyce, mówiącej o niezapisywaniu jakichkolwiek danych na nośniku, z którego chcemy odzyskać dane. Jedną z lepszych metod mającą na uwadze tą zasadę jest realizacja niskopoziomowej kopii nośnika oraz prowadzenie dalszej pracy jedynie na kopii.
Główną zaletą pracy na obrazie, jest fakt że możemy na nim działać dowolnie nie martwiąc się, że przypadkiem usuniemy ważne dane.
Aby wykonać niskopoziomowy obraz nośnika możemy użyć program o nazwie dd dostępny w systemach Windows oraz Linux . W systemie Linux polecenie dd znajduje się w pakiecie GNU core utilities i powinno być domyślnie dostępne w większości dystrybucji.
Z kolei wersję dla systemu Windows można pobrać np. tutaj.
Załóżmy, że chcemy odzyskać wykasowane dane z pendrive. W pierwszym
kroku użyjemy dd do wykonania obrazu pendrive dostępnego jako dysk F: w
systemie Windows.
Uwaga, nieprawidłowe użycie polecenia dd
może spowodować usunięcie z dysku z którego uruchamiamy dd (np. jeśli
użyjemy złego parametru of). Czytelnik więc wykonuje te operacje zupełnie na własną odpowiedzialność.
Na początek listujemy dostępne urządzenia typu storage:
C:\> dd --list
rawwrite dd for windows version 0.6beta3.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by terms of the GPL Version 2.
Win32 Available Volume Information
\\.\Volume{9f3e1bcb-3c26-11dc-b403-806d6172696f}\
link to \\?\Device\HarddiskVolume1
fixed media
Mounted on \\.\c:
\\.\Volume{4b7623c4-3c43-11dc-be9a-005056c00008}\
link to \\?\Device\HarddiskVolume2
fixed media
Mounted on \\.\d:
\\.\Volume{7d750f02-3c1e-11dc-be95-806d6172696f}\
link to \\?\Device\CdRom0
CD-ROM
Mounted on \\.\e:
\\.\Volume{9f3e1bc6-3c26-11dc-b403-806d6172696f}\
link to \\?\Device\Floppy0
removeable media
Mounted on \\.\a:
\\.\Volume{60ccebe4-9969-11df-81e9-005056c00008}\
link to \\?\Device\Harddisk1\DP(1)0-0+7
removeable media
Mounted on \\.\f:
...
[wycięto dla jasności listingu]
...
Następnie możemy wykonać kopię
C:\> dd if=\\.\f: of=D:\disk_image.dd bs=4k --size --progress
Parametry kolejno oznaczają:
- if=\\.\f: (odczyt z dysku F:)
- if to skrót od: input file (czyli miejsca z którego kopiujemy)
- of=D:\disk_image.dd (zapis obrazu dysku do wskazanego pliku)
- of to skrót od: output file (czyli miejsca do którego kopiujemy)
- bs=4k (odczytywanie w blokach 4kilobajtowych, można tą wartość zwiększyć, np. do 1M w celu przyspieszenia realizacji kopii)
- --size (parametr charakterystyczny dla wersji Windows oprogramowania dd, wymuszenie na dd aby nie odczytał w pewnych sytuacjach danych znajdujących się za fizycznym końcem nośnika - szczegóły patrz instrukcja do dd)
- --progress (wyświetlanie aktualnego postępu tworzenia kopii)
Po prawidłowym wykonaniu obrazu, możemy już na nim pracować (tj. np. podłączyć obraz jako dodatkowy dysk widziany w systemie Windows za pomocą oprogramowania OSFMount - patrz wcześniejsza część artykułu). Można również wykonać kopię tego obrazu (tym razem standardowymi poleceniami systemu operacyjnego), na wypadek gdyby zaszła potrzeba pracy na początkowym obrazie (np. w wyniku uszkodzenia obrazu na którym pracujemy).
Uwaga: z nieco inną sytuacją przy realizacji kopii posektorowej mamy do czynienia podczas gdy pracujemy z uszkodzonym nośnikiem (np. nie jest możliwe odczytanie pewnych sektorów) - w tekście nie zajmujemy się takim przypadkiem, odsyłając jednocześnie do oprogramowania: ddrescue oraz Testdisk.
Więcej informacji
- Ultimate boot CD - bootowalna płyta zawierająca rozmaite narzędzia diagnostyczne (w tym również Photorec/Testdisk oraz narzędzia do wykonywania niskopoziomowych kopii).
- Bootmed - inna bootowalna dystrybucja Linux posiadająca narzędzia ułatwiające naprawę systemów które przestały poprawnie startować
- Zero Assumption Recovery - komercyjne oprogramowanie ułatwiające odzyskiwanie danych, również z nośników, również z nośników które uległy pewnym uszkodzeniom
michal.sajdak@securitum.pl









