serwis komputerowy, odzyskiwanie danych


W poszukiwaniu zaginionych partycji


Dlaczego partycje giną?


Partycja, zwana też dyskiem logicznym, to w najprostszym przypadku wydzielony logicznie obszar dysku fizycznego. Zwykle na jednym dysku fizycznym możemy mieć jedną lub kilka partycji, z których niektóre mogą mieć specjalne znaczenie. Mogą to być partycje zarezerwowane na potrzeby systemu operacyjnego lub popularne w laptopach partycje odzyskiwania systemu (recovery). Możliwe są też sytuacje, kiedy jedna partycja będzie się znajdowała na kilku fizycznych nośnikach. Z takim rozwiązaniem najczęściej spotykamy się w przypadku macierzy RAID. Ale dlaczego partycjom zdarza się przepaść bez wieści?
Powodów zaginięcia partycji może być wiele. Do najczęstszych z nich należą błędy użytkownika takie, jak nieudane eksperymenty z logicznym podziałem dysków, przypadkowe sformatowanie nie tego dysku, co trzeba, podpięcie dysku zewnętrznego do telewizora. Drugą ważną grupą przyczyn utraty dostępu do partycji są wirusy i wszelkiego rodzaju złośliwe oprogramowanie. Trzecia kategoria przyczyn zgubienia partycji, to przyczyny o charakterze fizycznym, na które warto zwrócić większą uwagę.
Błędy o charakterze fizycznym mogą być przypadkowe - jak np. nagły zanik zasilania w sieci elektrycznej podczas zapisywania danych, jednak najczęściej są one objawami lub zwiastunami awarii nośnika. Częstą przyczyną błędów zapisu na dyskach twardych są błędy namagnesowania powierzchni spowodowane niestabilnym zasilaniem. Problem ten dotyczy zwłaszcza dysków w komputerach stacjonarnych, w których dyski są podpięte bezpośrednio do zasilacza. Jeśli zasilacz pracuje niestabilnie, podaje napięcia wahające się w szerokim zakresie lub znacznie odbiegające od nominalnych, awaria podłączonego do takiego zasilacza dysku jest kwestią czasu.
W przypadku dysków zewnętrznych, podłączanych przez USB zaginięcie partycji, pojawienie się partycji RAW lub złożona przez system operacyjny propozycja sformatowania dysku może oznaczać naprawdę poważny problem. Przejściówki USB - SATA często mają własny BIOS, który umożliwia zdetektowanie przez system operacyjny dysku pod nazwą wybraną przez producenta obudowy niezależnie od faktycznego modelu znajdującego się w tej obudowie napędu. Taka przejściówka potrafi się zgłosić w systemie także wtedy, kiedy podłączony przez nią dysk jest niesprawny, a nawet, gdy żaden dysk nie jest do niej podłączony. Wtedy właśnie najczęściej pojawia się problem z dostępem do partycji. Jeżeli problem ma charakter fizyczny, próby skanowania dysku programami do odzyskiwania danych nie tylko nie mogą przynieść pozytywnego rezultatu, ale i mogą doprowadzić do degradacji powierzchni magnetycznej w stopniu uniemożliwiającym uratowanie znajdującej się na tym dysku informacji.
Przejsciówki USB-SATA czasami zawierają także klucze szyfrujące. Utrata takiej przejściówki może uniemożliwić odszyfrowanie znajdujących się na dysku danych. Trzeba pamiętać, że jeżeli przejściówka ma możliwość szyfrowania danych, to szyfruje je nawet wtedy, gdy na dysku nie jest założone hasło. A ponieważ przejściówki psują się wyjątkowo rzadko, w przypadku podejrzenia uszkodzenia sprzętowego nie należy zaczynać od wymiany przejściówki, ale od diagnozy dysku przez podpięcie go bezpośrednio przez interfejs SATA.

Logiczna organizacja dysku - trochę teorii


Pierwszy sektor dysku (LBA 0 - bo sektory numerowane są począwszy od 0) jest sektorem rozruchowym. Często ten sektor jest też określany jako MBR - od angielskiej nazwy Master Boot Record. W sektorze tym zapisana jest tablica partycji - informacja o zapisanych na dysku partycjach. Nie zawsze musi to być informacja o wszystkich partycjach znajdujących się na dysku i nie zawsze musi się bezpośrednio odnosić do każdej z nich. Zapis w tablicy partycji może np. odsyłać do znajdujących się w kolejnych sektorach zapisów GPT (GUID Partition Table) lub do partycji rozszerzonej, zawierającej własną tablicę dysków logicznych.
Po odczytaniu zawartości sektora rozruchowego ustalane są i odczytywane pierwsze sektory poszczególnych partycji. Sektory te mają różne nazwy w zależności od typu systemu plików, np. Boot w przypadku partycji FAT i NTFS, Volume Header w partycjach HFS lub superblock w partycjach typu Ext, XFS, UFS, czy ReiserFS. Na podstawie informacji zawartych w tych sektorach ustalane są podstawowe parametry partycji, jak np. rozmiar klastrów, oraz położenie pozostałych metadanych, jak np. tablice alokacji plików (File Allocation Table) i katalogi w partycjach FAT, rekordy MFT (Master File Table) w partycji NTFS, czy tablice inode w partycjach Ext itd. Na podstawie odczytanych metadanych możliwe jest ustalenie położenia i atrybutów przechowywanych na danej partycji plików.
W sytuacji, kiedy dochodzi do uszkodzenia któregokolwiek z elementów metadanych, zbudowanie poprawnego obrazu struktury logicznej dysku środkami systemu operacyjnego przeważnie staje się niemożliwe. Stosowane środki zapobiegawcze polegające zazwyczaj na duplikowaniu najwazniejszych elementów metadanych przeważnie okazują się nieskuteczne. Jednak dla specjalisty odzyskującego dane nawet fragmenty uszkodzonych metadanych mogą być źródłem cennych informacji o strukturze logicznej systemu plików. Dlatego w sytuacji uszkodzeń o charakterze logicznym nie należy formatować dysków. Nawet wtedy, gdy proponują to co bardziej prymitywne programy do odzyskiwania danych lub tak doradzają amatorzy na forach internetowych. Nie należy także ufać programom do automatycznej naprawy systemu plików, jak np. chkdsk, czy fsck. Przed uruchomieniem takiego programu należy koniecznie wykonać kopię posektorową, gdyż takie programy dokonują niekontrolowanych zapisów bezpośrednio na dysku i w razie pogorszenia sytuacji nie będzie możliwości powrotu do stanu wyjściowego.

Praktyka poszukiwania utraconych partycji


Bez MBR


W przypadku utraty lub uszkodzenia zawartości sektora rozruchowego MBR system operacyjny nie potrafi odnaleźć znajdujących się na dysku partycji. Zazwyczaj dysk jest widoczny w menedżerze urządzeń i w zarządzaniu dyskami jako pusty i niezainicjalizowany. W takiej sytuacji poszukiwanie partycji warto rozpocząć od sektorów, w których zazwyczaj się one zaczynają - np. LBA 63, LBA 2048. Można też sprawdzić kolejne potęgi dwójki - LBA 128, LBA 256, LBA 512 ... Sprawdzając pierwsze sektory za MBR często można odnaleźć tablice GPT. Ponieważ zaadresowanie dysków większych niż 2 TB przy pomocy tablicy partycji MBR nie jest możliwe, w przypadku największych dysków jest niemal pewne, że używają one GPT. W dalszej kolejności warto sprawdzić obszary pod koniec dysku. Można tam odkryć np. kopię sektora Boot NTFS.
Na podstawie odnalezionych w ten sposób metadanych często można ustalić rozmiar i położenie przynajmniej niektórych partycji. W dalszej kolejności wyszukiwanie można w podobny sposób powtórzyć dla pozostałej "wolnej" przestrzeni dysku odnajdując kolejne metadane. W taki właśnie sposób programy do odzyskiwania danych przeprowadzają szybkie skanowanie. Jeżeli uszkodzenie struktur logicznych ograniczyło się wyłącznie do sektora MBR, ten sposób postępowania jest wystarczający do odzyskania wszystkich znajdujących się na dysku danych.
Metoda ta opiera się na fakcie, że metadane (w tym ich kopie) umieszczone są zazwyczaj na początku lub końcu dysku i poszczególnych partycji, a także na założeniu, że partycje zazwyczaj tworzone są po kolei, bez odstępów i zajmują praktycznie całą przestrzeń dysku. Stosując takie podejście można skrócić czas odzyskiwania danych i od razu skupić się na przeszukiwaniu potencjalnie najważniejszych i najbardziej rokujących fragmentów dysku. Ponadto w przypadku dysków pracujących niestabilnie lub uszkodzonych skanowanie stosunkowo niewielkich obszarów zmniejsza ich obciążenie i zwiększa szanse wykopiowania najważniejszych danych, zanim definitywnie odmówią współpracy.

Przed użyciem dysku znajdującego się w stacji dysków D: musisz go sformatować


Taki właśnie komunikat często widzi użytkownik zamiast swoich danych. Komunikat ten wskazuje, że partycja wprawdzie najprawdopodobniej istnieje, ale jej metadane są uszkodzone w sposób uniemożliwiający dostęp do znajdujących się na niej informacji. Żądanie sformatowania dysku może pojawić się w przypadku uszkodzenia lub utraty sektora rozruchowego partycji (np. boot). W takiej sytuacji można odszukać kopię boota, a jeżeli i ona jest uszkodzona - spróbować ręcznie odtworzyć parametry partycji korzystając z fragmentów obu kopii. Jeśli obie kopie zostały utracone lub uszkodzone w stopniu niepozwalającym na odtworzenie parametrów partycji, można te parametry ustalić opierając się o odnalezione fragmenty struktur logicznych, jak tablice FAT, katalogi, zapisy MFT itd.
Oczywiście jeśli na takiej partycji znajdują się ważne dane w żadnym wypadku nie należy jej formatować. Formatowanie partycji wiąże się z utworzeniem nowych struktur logicznych, które nadpiszą stare i poważnie utrudnią dalsze odzyskiwanie danych. Nawet jeśli formatowanie nie zniszczy samych plików, utrudni choćby fragmentaryczne odtworzenie struktury logicznej i może spowodować utratę nazw oraz innych atrybutów plików.

Czy więc może istnieć życie po sformatowaniu?


Szybkie sformatowanie dysku polega na utworzeniu i zapisaniu na nim nowych metadanych odpowiadających zadanemu typowi i parametrom nowej partycji. W praktyce zazwyczaj jest to równoznaczne z bezpowrotnym zniszczeniem przez nadpisanie informacji o starej znajdującej się w tym miejscu partycji, jednak nie powoduje nadpisania wszystkich znajdujących się na niej plików.
W takich przypadkach można próbować odnaleźć pliki po sygnaturach. Każdy typ plików zawiera charakterystyczne dla niego struktury, które pozwalają na jego zidentyfikowanie na powierzchni dysku nawet w sytuacji, kiedy informacja o jego nazwie, położeniu i innych atrybutach została utracona. Większość programów do odzyskiwania danych zawiera bazę predefiniowanych sygnatur najpopularniejszych plików. Specjalistyczny program do odzyskiwania zdjęć od programu do odzyskiwania danych ogólnego przeznaczenia często różni się tym, że zawiera uboższą bazę sygnatur, pozwalającą jedynie na odzyskiwanie plików graficznych. Profesjonalne programy umożliwiają samodzielne dodawanie sygnatur opracowanych na podstawie analizy plików danego typu.
Rezultatem odzyskiwania danych po sygnaturach mogą być nie tylko pliki, ale i fragmenty struktur logicznych, katalogi FAT, rekordy MFT, węzły indeksowe inode itp. Odnalezienie fragmentów starych metadanych pozwala na przynajmniej częściową odbudowę struktury logicznej poprzedniej partycji. Jeśli nowo utworzona partycja nie była używana, w wielu wypadkach można odnaleźć dostatecznie dużo metadanych starej partycji, by strukturę logiczną odtworzyć niemal w 100 %, jednak każdy zapis powoduje nadpisywanie i bezpowrotną utratę kolejnych fragmentów poprzedniej zawartości. Dlatego w razie pomyłkowego sformatowania dysku nie należy niczego na nim zapisywać. W przeciwnym wypadku pozostaje ręczne przeglądanie często tysięcy plików z nazwami nadanymi automatycznie przez program odzyskujący dane (zazwyczaj jest to numer sektora LBA, w którym ten plik się zaczyna) posortowanych jedynie po ich rozszerzeniu. W dodatku bez żadnej gwarancji, że te, które są naprawdę ważne w ogóle uda się odzyskać.
Dużo poważniejsze konsekwencje formatowania partycji mogą nas spotkać w przypadku dysków twardych wykorzystujących technologię SMR i dysków SSD. Wiekszość z nich (na tyle znacząca, że najvezpieczniej przyjąć założenie, że wszystkie) obsługuje funkcję TRIM. Funkcja ta umożliwia systemowi operacyjnemu informowanie kontrolera dysku o obszarach zwolnionych w strukturach logicznych. Dzięki tej informacji dysk nie musi fizycznie przechowywać zawartości tych sektorów, a w odpowiedzi na polecenie ich odzyskania może zwrócić same zera. W ślad za taką informacją bardzo szybko dochodzi także do fizycznego zniszczenia danych, przez co ich odzyskanie staje się niemożliwe nawet w warunkach laboratoryjnych. Dlatego bez względu na komunikaty systemu operacyjnego i głupie porady na forach internetowych nigdy nie formatuj partycji, na jakich masz ważne dane, a przed przystąpieniem do odzyskiwania danych wyłącz obsługę funkcji TRIM w systemie operacyjnym.