Uszkodzenia fizyczne pamięci Flash

Uszkodzenie pamięci Flash nie jest rzadkim zjawiskiem w czasach dzisiejszych. Jeżeli w przypadku problemów logicznych użytkownik mógłby spróbować odzyskać dane na własną rękę za pomocą różnych programów, to w razie uszkodzeń fizycznych nie ma opcji, żeby nie zwrócić się do specjalisty.

Prawie wszystkie nośniki typu NAND Flash (USB Flash, SD, Micro SD, MMC, Smart Media, Memory Stick, Compact Flash i inne) istnieją na jednakowej podstawie i zawierają w sobie następny zestaw:

Układy scalone pamięci NAND Flash. Najbardziej rozpowszechnione w czasach dzisiejszych mają obudowę TSOP-48, LGA-52, BGA 152/132.

Kontroler. On pełni funkcje odczytu/zapisu danych z układów scalonych pamięci, dystrybucji danych wewnątrz układów scalonych w celu równomiernego zużycia komórek pamięci, kontroli i korekcja błędów odczytu, wykonywania czynności w algorytmach w celu przyspieszenia dysku i zwiększenia bezpieczeństwa przechowywania danych. Również ma funkcje transmisji danych po interfejsie w obudowie na szynie (USB, SD i inne.).

Najczęściej powodem awarii pamięci Flash jest awaria kontrolera lub znaczne zużycie komórek pamięci, kiedy ilość błędów bitowych przekracza możliwości algorytmu ECC.

Procedura odzyskiwania danych z nośnika typu NAND Flash składa się z kilku etapów:

  1. Wylutowanie wszystkich układów scalonych pamięci nośnika. Wraz odbywa się kontrola temperatury, ponieważ w razie niskich temperatur jest ryzyko uszkodzenia delikatnych elementów układu scalonego, a w razie wysokiej temperatury następują nieodwracalne procesy wewnątrz układu scalonego, co później może utrudnić odczytywanie zapisanych danych.
  2. Odczytywanie zawartości wszystkich układów scalonych za pomocą specjalnego mechanizmu odczytu, który wchodzi w skład kompleksu programowo-aparatowego dla odzyskiwania danych. Pod czas odczytu zawartości układów scalonych do dumpów ustalają się takie ważne parametry, jak rozmiar strony chipa (minimalna ilość danych, które mogą być odczytane z układu scalonego pamięci) oraz rozmiar bloku chipa (minimalna ilość danych, która może być usunięta/nadpisana w układzie scalonym pamięci).
  3. Następnym etapem jest analiza odczytanych dumpów oraz wyśledzenie algorytmu korekcji błędów ECC. Koryguje się błędy odczytu, tworzy się plan nieskorygowanych sektorów, które później ponownie odczytują się z układów scalonych pamięci. Ten proces potrzebuję dużo czasu. Coraz częściej wypada korzystać z alternatywnych metod odczytu, m.in. zmiana mocy zasilania napięciem, ochłodzenie do -20°C, nagrzewanie do krytycznej temperatury, algorytmy Read Retry, oraz zestawienia wyżej wymienionych metod.

Po otrzymaniu dumpów dobrej jakości inżynier musi zaprojektować algorytm pracy kontrolera i otrzymać obraz dysku.

Pod czas swojej pracy kontroler korzysta z następnych algorytmów i transformacji danych:

  1. Bad column management. Już na etapie produkcji nowoczesne układy scalone posiadają wadliwe komórki. Przez osobliwości produkcji i organizacji struktury wewnętrznej układów scalonych pamięci adres uszkodzonej komórki powtarza się w granicach modułu układu. W razie sprawnej pamięci Flash komórki takiego typu są zaznaczane jako niewykorzystywane i opuszczają się pod czas przekierowania, a dane są zapisywane z przesunięciem. Odpowiednio, jeżeli pod czas odzyskiwania danych z pamięci flash nie stworzyć całej listy komórek tego typu, to naruszy się proces przekierowania, i nie uda się otrzymać ostateczny obraz nośnika.
  2. Przesunięcie bajtowe. W razie wykorzystywania kilku układów scalonych nagranie na nich odbywa się wraz z przesunięciem na 1 bajt. Najczęściej dotyczy kart pamięci Compact Flash w celu zwiększenia prędkości prac. Pod czas odzyskiwania danych inżynier misi wybudować prawidłową kolejność dumpów do poprawnej kombinacji.
  3. Likwidacja inwersji lub scramblingu. W dawnych nośnikach Flash w celu powiększenia terminu użytkowania jest wykorzystywana inwersja danych. W przypadku nowoczesnych jest bardzo popularne tworzenie bramki XOR wraz z przekształceniem zgodnie ze wcześniej skonfigurowanym szablonem. To pozwala równomiernie wypełnić używaną objętość układu scalonego zerami lub jedynkami, dzięki czemu można osiągnąć równomiernego zużycia komórek pamięci, oraz obniżyć poziom wzajemnego wpływu komórek. W ostatnim czasie coraz częściej jest używana dynamiczna bramka XOR, kiedy szablon przekształcenia każdego kolejnego bloku zależy od zawartości poprzedniego bloku. Zadaniem inżyniera w trakcie odzyskiwania danych jest określenie szablonu XOR lub obliczanie algorytmu formowania XOR-szablonu oraz usunięcie danego przetworzenia w dampach układów scalonych.
  4. Usunięcie wewnętrznego i zewnętrznego interleava. Większość nowoczesnych układów scalonych pamięci posiada dwa kanały odczytu/zapisu. Również układ scalony w jednej obudowie fizycznej może zawierać w sobie kilka części (obecnie do czterech). W celu powiększenia prędkości pracy kontroler akumulatora jest zaprogramowany w taki sposób, żeby wraz zapisywać/odczytywać dane z wykorzystywaniem obydwu kanałów jednocześnie, oraz nagrywać do kilku części układu scalonego, a w wypadku istnienia dwóch lub więcej układów fizycznych nośnika jest możliwe jednoczesne nagranie na wszystkie układy. Zadaniem inżyniera jest ustalenie, czy było jednoczesne nagranie na różne podzespoły układu scalonego, czy to było jednoczesne segmentowane nagrywanie lub na różne układy scalone. Koniecznie w danym wypadku brać pod uwagę rozmiar strony i bloku, z którymi działa kontroler, oraz stworzyć prawidłową kolejność zjednoczenia dampów, żeby dane w wyniku znajdowały się w odpowiedniej kolei.
  5. Usunięcie przekształceń odwrotnych. Różnego rodzaju kontrolery w swojej pracy mogą korzystać z dodatkowych przekształceń danych lub struktury danych wewnątrz bloków, którymi oni zarządzają. Naszym zadaniem jest wyznaczenie typu danych przekształceń i ich realizacja.
  6. Tworzenie obrazu. Po usunięciu wszystkich przekształceń otrzymujemy wirtualny dump, wewnątrz którego w poprawnej kolei są rozmieszczone wszystkie dane w blokach, jednak bloki będą chaotycznie porozrzucane po całym dumpie. To zrobione w celu równomiernego zużycia układów scalonych. Można zorganizować odpowiednią kolejność bloków lub za pomocą algorytmu translatora zdefiniować go zgodnie z typem kontrolera, lub po analizie otrzymanego dumpa nośnika zgodnie z jego charakterystycznymi oznakami. W razie niemożliwości można próbować stworzyć obraz zgodnie z markerem numeru bloku, po wyznaczeniu i przekształceniu jego do strefy serwisowej strony danych. Po wyznaczeniu poprawnego algorytmu translatora zgodnie z markerem otrzymujemy końcowy dump z poprawnie wybudowanymi blokami danych i możemy otrzymać dostęp do plików i folderów danych użytkownika.

W procesie tworzenia mogą wyniknąć niestandardowe sytuacje, m.in. zsuwanie w obrazie lub kilka bloków mogą mieć taki sam marker i pretendować na jedno miejsce w obrazie. Jednak doświadczony inżynier zajmujący się odzyskiwaniem danych zawsze wie, jak rozwiązać dany problem!

Formularz BASIC

    Zamów kontakt z nami


      Pandata Recovery
      Poland
      Warszawa
      ul. Obrzeżna, nr 5, 1006, 02-691
      +48 798 357 709
      pandata.com.pl