Fizyczne przyczyny utraty danych wynikają ze sprzętowych awarii nośników danych, takich, jak uszkodzenia elektroniczne lub mechaniczne, czy problemy oprogramowania układowego, a logiczne – związane są ze skasowaniem poszczególnych plików, sformatowaniem lub usunięciem całych partycji, rozsynchronizowaniem macierzy RAID i różnego rodzaju błędami struktur logicznych systemów plików.
Korzystanie z urządzenia, z którego zostały stracone dane.
Najczęściej spotykanym błędem jest praca na komputerze, z którego została utracona informacja. Sama praca systemu operacyjnego wiąże się z dokonywaniem licznych zapisów na dysku. Plik wymiany, plik hibernacji, liczne pliki tymczasowe generowane przez procesy wykonywane przez użytkownika lub automatycznie, w tle, w niekontrolowany sposób nadpisują poprzednią zawartość. Nawet jeżeli użytkownik jest w stanie się upilnować i niczego nie zapisywać na dysku, nigdy nie upilnuje systemu operacyjnego.
Jeśli do tego dojdzie, zawartość świadomie (np. programy do odzyskiwania danych) lub nieświadomie (np. aktualizacje systemu operacyjnego) pobierana z sieci, szanse na odzyskanie utraconej zawartości spadają jeszcze bardziej. Tym bardziej, że niektórzy użytkownicy nie tylko instalują oprogramowanie do odzyskiwania danych na dyskach, z których te dane zostały stracone, ale też na tych samych dyskach zapisują wyniki pracy tych programów. W ten sposób często jeden odzyskany plik uniemożliwia poprawne odzyskanie następnego.
W przypadku utraty danych należy bezwzględnie niezwłocznie wyłączyć komputer, Najlepiej przez odcięcie wszystkich źródeł zasilania (także wyjęcie baterii w przypadku laptopów). Sam proces zamykania systemu operacyjnego wiąże się z zapisywaniem na dysku wielu różnych informacji, które może i są istotne dla samego systemu, ale na pewno są daleko mniej ważne od naszych danych.
Użycie CHKDSK
Chkdsk, scandisk i inne procedury sprawdzania spójności i naprawy struktur logicznych systemów plików są bardzo niebezpieczne dla danych. Te procedury są często używane w celu przywrócenia działania systemu i nie zawsze wyrządzają szkody, jednak ze względu na ryzyko, jakie ze sobą niosą, nigdy nie powinny być używane na nośnikach zawierających ważne dane. Aby lepiej zrozumieć to ryzyko, musimy sobie uświadomić podstawowy cel i zasadę działania takich procedur.
Podstawowym celem procedur weryfikujących spójność struktur logicznych systemu plików jest doprowadzenie tych struktur do takiego stanu, by partycja nadawała się do zamontowania przez system operacyjny.
Struktury logiczne są skanowane w poszukiwaniu błędów i jeśli jakieś błędy zostaną znalezione, są naprawiane. To chyba dobrze, prawda? Otóż nie. Gdyby naprawa błędów polegała na wpisaniu w odpowiednie miejsca właściwych wartości, niczego więcej byśmy nie potrzebowali.
Ale czym innym jest zidentyfikowanie błędu, a czym innym ustalenie, co w tym miejscu powinno być. Chkdsk tego nie umie, więc po prostu usuwa uszkodzone fragmenty struktur, by nie przeszkadzały przy montowaniu partycji i nie destabilizowały pracy systemu operacyjnego. Ale jakie zagrożenie dla danych niesie usunięcie uszkodzonych fragmentów struktur logicznych? Przecież skoro są uszkodzone, to chyba są bezużyteczne?
Struktury logiczne, nawet te uszkodzone, są cennym materiałem do analizy dla specjalisty naprawdę znającego się na odzyskiwaniu danych. Ułatwiają zidentyfikowanie i odnalezienie zagubionych plików. Nieraz można je naprawdę naprawić wykorzystując inne dane, wiedzę o systemach plików i używanych w nich schematach, przyjmując założenia w kategoriach prawdopodobieństwa, a niekiedy po prostu zgadując lub podstawiając do skutku prawdopodobne warianty. Zniszczenie uszkodzonych struktur bezpowrotnie uniemożliwia ich wykorzystanie. W takiej sytuacji radość z poprawnego uruchomienia systemu operacyjnego może być brutalnie przerwana odkryciem, że bardzo ważne pliki gdzieś zniknęły.
TRIM
Konsekwencje niekontrolowanych zmian w czasie naprawy struktur logicznych systemu plików wykraczają daleko poza proste zgubienie plików w przypadku nośników obsługujących funkcję TRIM. Jest to funkcja pośrednicząca w przekazywaniu informacji o obszarach niezaalokowanych w strukturach logicznych systemu plików (wolnym miejscu na partycji) do obsługiwanego przez oprogramowanie układowe podsystemu translacji adresów logicznych na fizyczne. Szczegółowe opisanie działania tej funkcji wykracza poza ramy tego artykułu, ale na potrzeby samodzielnego odzyskiwania danych wystarczy nam informacja, że nośnik obsługujący funkcję TRIM nie musi fizycznie przechowywać danych, które nie są odpowiednio zaalokowane przez system plików.
Jeśli nośnik nie przechowuje fizycznie obszaru niezaalokowanego logicznie, w odpowiedzi na żądanie odczytania sektorów niezaadresowanych w strukturach systemu plików zwróci sektory wypełnione wartością 0x00. W praktyce oznacza to, że przeszukując dysk w poszukiwaniu utraconych danych nie będziemy mogli ich znaleźć. W przypadku dysków SSD fizyczne bloki przechowujące dane usunięte na poziomie struktur logicznych są kasowane w czasie rzędu kilku minut odbierając i specjalistom jakiekolwiek szanse na odzyskanie znajdującej się w nich zawartości.
Nieco lepiej sytuacja przedstawia się w przypadku dysków twardych wykorzystujących technologię zapisu gontowego (SMR), gdzie nie występuje operacja fizycznego kasowania danych i są realne szanse na odnalezienie utraconych danych pracując w adresacji fizycznej. Przynajmniej dopóki ta zawartość nie zostanie nadpisana kolejnymi danymi zapisywanymi na ten dysk. A przecież sprawdzanie spójności danych często skutkuje bardzo długimi seriami zapisów.
Ze względu na sposób działania funkcji TRIM, najlepiej jest wyłączyć ją na komputerze, którego zamierzamy użyć do odzyskiwania danych jeszcze przed podłączeniem dysku, z którego dane chcemy odzyskiwać. Komenda, jaką należy wpisać w wierszu poleceń, by wyłączyć funkcję TRIM, to: fsutil behavior set disabledeletenotify 1.
Szczegółowe wskazanie nośników obsługujących funkcję TRIM byłoby zbyt objętościowe
i zbyt szybko by się dezaktualizowało, więc dla bezpieczeństwa lepiej przyjąć, że funkcję tę obsługują wszystkie dyski SSD (z naprawdę nielicznymi i coraz rzadziej spotykanymi wyjątkami) i dyski z technologią SMR (tu dysków nieobsługujących funkcji TRIM jest sporo więcej, ale lepiej przesadzić z nadmiarem ostrożności, niż gdyby jej zabrakło). Ze względu na projektowane rozwiązania zarządzania adresowaniem danych w dyskach z zapisem przeplotowym (IMR/HIMR), które mają szansę pojawić się na rynku w perspektywie kilku najbliższych lat, możemy się spodziewać, że także w nich pojawi się obsługa TRIM lub podobnie działającej funkcji.
Sformatowanie partycji
Jednym z bardziej absurdalnych zachowań praktykowanych podczas amatorskich prób odzyskiwania danych jest tworzenie nowych lub formatowanie istniejących partycji. Zapewne osoby dopuszczające się takich czynności liczą na to, że utworzenie nowej partycji pozwoli zobaczyć dane znajdujące się w tym miejscu wcześniej lub że formatowanie naprawi jakieś błędy, Takie czynności nierzadko zalecane są na słabych merytorycznie forach internetowych, a także wymuszane są przez niektóre programy do odzyskiwania danych napisane przez ludzi niemających o tym głębszego pojęcia.
Utworzenie nowej partycji w obszarze niezaalokowanym w tablicy partycji, gdzie znajdują się utracone dane nie jest odtworzeniem poprzedniej partycji, ale utworzeniem w jej miejscu nowej. Niekiedy, jeśli błędy występują wyłącznie w tablicy partycji, utworzenie nowej partycji o położeniu dokładnie odpowiadającym partycji starej może być skutecznym rozwiązaniem problemu, ale jedynie w przypadku, gdy ta partycja nie zostanie sformatowana. Wtedy system dowie się o istnieniu tej partycji i będzie mógł odnaleźć we właściwym miejscu struktury starej partycji.
W przypadku sformatowania partycji zostaną utworzone nowe struktury logiczne, które nadpiszą poprzednie. Skala zniszczeń będzie uzależniona od wielu czynników, spośród których największe znaczenie mają rodzaj używanego systemu plików oraz nośnika danych, na jakim pracujemy. W szczególności większych szkód możemy się spodziewać na dyskach SMR i SSD. To jedynie kilka najpopularniejszych błędów popełnianych przy próbach samodzielnego odzyskiwania danych.
Podsumowując – najważniejsze, aby wystrzegać się jakichkolwiek zapisów na nośniku, z którego straciliśmy dane i nie dopuścić do pogorszenia stanu wyjściowego.
Najrozsądniejszym rozwiązaniem jest wykonanie kopii posektorowej dysku i dalsza praca z kopią, ale kto by na to tracił czas, kiedy w Internecie można znaleźć tyle prostych instrukcji samodzielnego odzyskiwania danych?