Odzyskiwanie danych z dysków SSD Intel

Intel Intel, to największy na świecie producent układów scalonych. Firma Intel powstała w 1968 r., a jej nazwa pochodzi od angielskich słów Integrated Electronics. Przez lata Intel wypracował sobie pozycję lidera postępu technologicznego oraz zyskał reputację producenta wydajnego i niezawodnego sprzętu.


Także na rynku dysków SSD Intel zaznaczył swoją obecność produktami o znacznie mniejszej awaryjności od konkurencji. Dotyczy to zwłaszcza dysków zbudowanych na własnych kontrolerach i pamięciach. Na rynku dostępne są dyski z dziesięciokanałowymi kontrolerami Intel PC29AS21AA0, PC29AS21BA0 oraz z osimiokanałowym PC29AS21CA0. Począwszy od PC29AS21BA0 kontrolery Intela szyfrują dyski przy pomocy 128-bitowego AES. Oznacza to, że dla odczytania zawartości układów pamięci konieczna jest znajomość klucza, którym dane użytkownika zostały zaszyfrowane. Inną ciekawostką związaną z kontrolerami Intela jest to, że w przypadku uszkodzeń komórek pamięci wyłączają z eksploatacji nie całe bloki, ale pojedyncze strony. Jednak ta oszczędność w praktyce niewiele daje. Ponieważ zużycie układów następuje głównie w wyniku operacji zapisu i kasowania, które są wykonywane całymi blokami, bardzo szybko okazuje się, że z eksploatacji i tak trzeba wyłączyć wszystkie strony uszkodzonego bloku.


Etapy inicjalizacjidysku SSD Intel

W pierwszym etapie inicjalizacji dyski SSD na kontrolerach Intela ładują mikroprogram z wewnętrznego ROMu kontrolera pozwalający na inicjalizację podstawowych systemów dysku. Następnie ładowany jest mikroprogram zawarty w zewnętrznym ROMie (pamięć Flash-NOR). Zadaniem tego mikroprogramu jest inicjalizacja wszystkich pozostałych systemów dysku oraz odczytanie z pamięci Flash-NAND i załadowanie do bufora RAM podstawowego mikroprogramu, a także załadowanie i inicjalizacja modułów serwisowych odpowiedzialnych m. in. za zapewnienie poprawnego dostępu do danych użytkownika. Po zakończeniu tej procedury napęd zazwychzaj wychodzi w gotowość.


Jeśli dysk nie wychodzi w gotowość, a rejestr stanu pokazuje "zajęty" (BSY), oznacza to, że błędy wystąpiły na jednym z dwóch pierwszych etapów inicjalizacji. W przypadku błędów podstawowego mikroporogramu, uszkodzenia lub braku któregoś z modułów serwisowych, błędów w dostępie do układów pamięci Flash-NAND lub innych problemów na ostatnim etapie inicjalizacji, dyski Intela przechodzą w awaryjny tryb pracy. W tym trybie dysk blokuje dostęp do danych użytkownika, zamiast numeru seryjnego zwraca kod błędu, a także wykazuje pojemność równą 8 MB.


Konfiguracja pamięci Flash-NAND

W przypadku kontrolerów Intel PC29AS21AA0 i PC29AS21BA0 wewnętrzna organizacja napędów różni się od dysków SSD na innych kontrolerach. Dziesięciokanałowe kontolery Intela potrafią obsłużyć do 80 układów pamięci, gdyż na każdym z niezależnych kanałów może być do 8 linii CE (Chip Enable). Przy tym ilość pamięci przyporządkowanych do poszczególnych kanałów nie musi być taka sama. Np. często spotykaną konfiguracją jest przyporządkowanie do wszystkich kanałów oprócz 4 i 5 po dwóch pamięci, a na 4 i 5 kanale po trzech. W dyskach zazwyczaj występuje więcej układów pamięci, niż jest niezbędne dla zapewnienia ich nominalnej pojemności, co w połączeniu z algorytmem wyrównywania zużycia układów pozwala przedłużyć żywotność napędów.


Procedura translacji logicznych adresów LBA w fizyczne adresy wskazujące, w którym konkretnie miejscu fizycznie znajdują się potrzebne dane w dyskach SSD Intela odbywa się dwuetapowo. W pierwszym etapie kontroler przy pomocy specjalnych tablic translacji dla każdego sektora LBA znajduje odpowiedni sektor fizycznego obrazu. Tablice translacji, to swego rodzaju mapa opisująca rozmieszczenie logicznych adresów LBA w fizycznym obrazie, którego zasady budowy z wchodzących w skład dysku pamięci opisuje moduł serwisowy o nazwie Defmap. Same tablice translacji przechowywane są w module Context i składają się z dwóch części. CTXFB przechowuje podstawową część tablic translacji, zaś CTXF5 zawiera ostatnie zmiany, które nie zostały jeszcze przeniesione do podstawowej części. Następnie, przy wykorzystaniu modułu Defmap dysk ustala, w któym układzie pamięci i w której jego stronie szukany sektor się znajduje.


Po odnalezieniu właściwego miejsca dysk odczytuje właściwą stronę układu pamięci, koryguje błędy odczytu, wybiera z formatu strony właściwy sektor, deszyfruje go i na koniec zwraca sektor danych użytkownika.


Najczęstsze usterki dysków SSD Intel

BAD_CTX

BAD_CTX, to najdzęściej spotykany problem z dyskami SSD Intela. Jest to grupa błędów zwązanych z problemami z odczytem i kontrolą poprawności modułu Context. Każdy z błędów z grupy BAD_CTX ma swój własny kod, który jest zwracany zamiast numeru seryjnego. Np. błędy z kodem BAD_CTX 0000013? wskazują na uszkodzenie któregoś z podmodułów Context, zaś BAD_CTX 0000015? na błędy w odczycie stron pamięci Flash-NAND.


NO_CONTEXT

NO_CONTEXT, to błąd występujący, kiedy dyskowi w ogóle nie uda się odnaleźć modułu Context. Oznacza to m. in., że dysk nie może odnaleźć tablic translacji pozwalających na uzyskanie dostępu do daych użytkownika.


NO_DEFMAP

NO_CONTEXT, to błąd występujący, kiedy dyskowi nie uda się odnaleźć modułu Defmap lub moduł ten nie przeszedł weryfikacji poprawności. Brak poprawnego modułu Defmap uniemozliwia przekształcenie adresów logicznych w fizyczne, co przekłada się na brak dostępu do danych użytkownika.


CHAN_CE

CHAN_CE, to błąd występujący w przypadku uszkodzenia jednego lub wielu układów Flash-NAND. Podczas inicjalizacji dysk sprawdza wszystkie dostępne układy pamięci podając komendę odczytu identyfikatora. Następnie kontroler porównuje uzyskane odpowiedzi z każdej pamięci (numer linii CE i kanału) z informacją zawartą w jednym z modułów serwisowych. Jeśli którakolwiek z otrzymanych wartości różni się od przechowywaniej we właściwym module, dysk przechodzi w awaryjny tryb pracy i zwraca komunikat o błędzie. Często przyczyną tego błędu są mechaniczne uszkodzenia ścieżek, śniedź, korozja, zanieczyszczenia, uszkodzenia połączeń lutowniczych itp.


NO_FW

NO_FW sygnalizuje, że dyskowi w ogóle nie udało się odnaleźć lub załadować podstawowego mikroprogramu. Przyczyną tego błędu może być skasowanie mikroprogramu lub uszkodzenie wszystkich jego modułów.


BSY

Kiedy dysk w ogóle nie wychodzi w gotowość, nie odpowiada na żadne polecenia, a rejestr stanu wskazuje status "zajęty" (BSY), zazwyczaj świadczy to o jego uszkodzeniu fizycznym. W takim wypadku najlepiej zacząć od sprawdzenia złącz oraz pomiarów elementów zasilania. Mikroprogram dysków SSD Intel na tyle dobrze realizuje awaryjny tryb pracy, że błędy modułów nie powodują zablokowania dysku, a jedynie uniemożliwiają operacje na danych użytkownika i powodują wyświetlenie komunikatu o błędzie.


Odzyskiwanie danych z dysków Intel

Jakakolwiek próba naprawy uszkodzonego dysku SSD, a zwłaszcza wymiana układów scalonych (nie dotyczy elektronicznych elementów zasilania) aktualizacja lub próba przeprogramowania firmware, czy niskopoziomowe formatowanie są operacjami destrukcyjnymi dla danych. Jeśli na dysku znajdują się jakiekolwiek ważne informacje, przed próbą naprawy należy je najpierw odzyskać lub się z nimi pożegnać!


W większości przypadków kluczem do odzyskania danych z dysków SSD Intela jest odbudowa translatora - grupy modułów odpowiedzialnych za przekształcanie logicznych adresów LBA w adresy fizyczne, pozwalające zlokalizować określony sektor w określonej stronie określonego układu pamięci. W wielu przypadkach bardzo pomocne są zachowanie starsze wersje modułów Defmap, CTXF5 i CTXFB. Jeśli odbudowa modułów translatora nie jest możliwa, można spróbować odczytać zawartość układów pamięci wykorzystując do tego celu komendy technologiczne, a następnie uporządkować poszczególne sektory według czterobajtowych markerów adresów LBA znajdujących się za każdym sektorem.


W przypadku najstarszych dysków na kontrolerach Intel PC29AS21AA0 można wylutować układy pamięci, odczytać je na programatorze, a następnie uporządkować ich zawartość z wykorzystaniem wspomnianych wyżej markerów. W przypadku nowszych kontrolerów wylutowanie i odczytanie pamięci Flash-NAND nie ma sensu. Ponieważ kontrolery PC29AS21BA0 i PC29AS21CA0 szyfrują zawartość pamięci, odzyskanie użytecznej informacji z obrazów binarnych zaszyfrowanych układów nie będzie możliwe.


Hasło ATA

Zgodnie z oficjalną informacją pochodzącą z firmy Intel, w przypadku dysków SSD tego producenta nie ma możliwości odczytania lub usunięcia założonego hasła ATA (ATA-Password). Hasło Master pozwalające na odblokowanie dysku przy jednoczesnym jego skasowaniu komendą Secure Erase jest generowane losowo. Założenie hasła ATA na dysk Intela blokuje nie tylko dostęp do danych użytkownika, ale też możliwość pracy w trybie awaryjnym. W przypadku próby wydania dyskowi jakiejkolwiek komendy, zwraca on ABRT. Ponieważ nie jest znana metoda odczytania, usunięcia lub obejścia hasła ATA, jego znajomość jest warunkiem koniecznym dla odzyskania dostępu do danych.


Szczególnie problematyczne mogą być dyski pochodzące z uszkodzonych laptopów. W wielu modelach laptopów hasło zakładane na dysk nie jest toższame z hasłem wprowadzanym przez użytkownika, ale jest wynikiem funkcji skrótu (funkcji haszującej). W przypadku jeśli dysk jest sprawny, tylko zablokowany hasłem ATA, a awarii uległ laptop, w którym ten dysk był używany, dla odzyskania dostępu do danych niezbędna może okazać się naprawa laptopa.


Naprawa błędu BAD_CTX

Ponieważ w przypadku błędu BAD_CTX dyski wychodzą w gotowość, można je naprawić z wykorzystaniem komend ATA. Aby to uczynić należy zacząć od założenia hasła ATA komendą 0xF1 (Security Set Password). Następnie trzeba podać komendę 0xF3 (Security Erase Prepare). Na koniec należy podać komendę 0xF4 (Security Erase Unit) z załozonym na początku hasłem ATA.


Po tej procedurze dysk przejdzie w stan "zajęty" (BSY) na kilkadziesiąt sekund, po czym ponownie wyjdzie w gotowość już ze swoją normalną pojemnością. Przed dalszą eksploatacją warto dysk przetestować wykonując kilkukrotnie operację całkowitego przepisania i skasowania jego zawartości.


Po testach łatwo można stwierdzić, że w czasie kilkudziesięciu sekund dysk nie jest w stanie skasować całej swojej zawartości, stąd można wysnuć wniosek, że procedura Secure Erase w dyskach SSD Intela ogranicza się do przebudowania translatora oraz zmiany klucza szyfrującego. Nie zmienia to faktu, że w wyniku naprawy dostęp do danych zostanie bezpowrotnie utracony. Także przy wyborze hasła ATA należy zachować ostrożność, gdyż w przypadku jego zapomnienia dysku nie da się odblokować.