Odzyskiwanie danych z dysku SSD Patriot P210 (SM2258XT)

Parametry zlecenia w skrócie

  • Model nośnika: Patriot P210
  • Kontroler: Silicon Motion SM2258XT
  • ID pamięci NAND: 453E98B37672
  • Pojemność dysku: 256 GB
  • Łączna pojemność danych: 45,80 GB
  • Pliki sprawne: 50 254
  • Pliki uszkodzone: 24
  • Skuteczność odzysku: 99%
  • Klasyfikacja przypadku: Poziom 3 uszkodzenia fizycznego (SSD)
Próba automatycznej odbudowy Translatora dla kontrolera SM2258XT zakończona błędem odczytu w programie do odzysku danych

Analiza uszkodzenia

Do naszego laboratorium trafił dysk SSD marki Patriot, model P210, przywieziony przez klienta z Prabut. Zgłoszone objawy wskazywały na typowe uszkodzenie oprogramowania wewnętrznego (firmware’u).

Jak wspomnieliśmy w poprzednim wpisie o błędzie SATAFIRM S11, najczęstszą przyczyną awarii tego typu nośników jest postępująca degradacja komórek pamięci w modułach NAND.

W przypadku uszkodzenia oprogramowania wewnętrznego w dyskach opartych o kontrolery Silicon Motion urządzenie może nadal identyfikować się poprawnie (tak jak w opisywanym przypadku), jednak podczas próby odczytu przestrzeni LBA wchodzi w stan BSY (zajęty) i nie zwraca żadnej odpowiedzi. Z punktu widzenia systemu wygląda to jak całkowity brak reakcji dysku.

W omawianym zleceniu oprogramowanie PC-3000 SSD rozpoznało nośnik następująco:

Selected family......................... : Patriot P200
Controller.............................. : SM2258XT

SSD status:
SSD is in ready state................... : No
Firmware mode........................... : Unknown
SSD is locked........................... : Unknown
SSD is in Safe Mode..................... : Unknown
Logical access is possible.............. : No
Physical access is possible............. : No

Ready state waiting..................... : Ok

SSD status:
SSD is in ready state................... : Yes
Firmware mode........................... : ROM
SSD error code.......................... : 0x00 (No errors)
SSD is locked........................... : No
SSD is in Safe Mode..................... : Yes
Logical access is possible.............. : No
Physical access is possible............. : No

Chips id................................ : 453E98B37672
Vendor.................................. : Sandisk
Type.................................... : 64L BiCS3 TLC 16k

Czym jest Loader

Loader (LDR) to zmodyfikowane oprogramowanie dysku, które jest ładowane do bufora kontrolera lub pamięci RAM dysku.

Zawiera on między innymi konfigurację dla modułów pamięci (Data Area, ECC, SA) potrzebną do odbudowania modułu Translatora i odzyskania dostępu do danych.

Loader uploading
****************************************
MPISP code name......................... : Q1103A0 B05_00; Q1031A(N)

Q1103A0 B05_00; Q1031A(N)............... : Ok
Calling executable code................. : Ok

Seed table reading
Completed
Microcode reading (0)................... : Ok
Firmware version (Internal)............. : S1031B0 BiCS3_02
SSD parameters reading.................. : Ok
Loader not found by internal name.
Search for compatible loaders...

Ready state waiting..................... : Ok
Q1107A0 BiCS3_02; Q1031A(N)............. : Ok
Calling executable code................. : Ok

Reset SSD controller.................... : Ok
Config Package.......................... : Ok
Q1107A0 BiCS3_02; P0812(D).............. : Ok
Calling executable code................. : Command execution error; Write sector error (LBA: 21 930); HDD DMA Redynes (1) timeout (10000)

Błąd ładowania Loadera

W przypadku kontrolerów SM2258XT oraz SM2259XT nie można stworzyć uniwersalnego Loadera (LDR) zawierającego wszystkie konfiguracje układów NAND.

Pomimo prawidłowo zidentyfikowanej wersji oprogramowania wewnętrznego napotkaliśmy masę błędów podczas inicjalizacji.

Ready state waiting..................... : Ok

Reset SSD controller.................... : Ok
Config Package.......................... : Ok
Q1107A0 BiCS3_02; P0812(D).............. : Ok
Calling executable code................. : Command execution error; Write sector error (LBA: 21 930); HDD DMA Redynes (1) timeout (10000)

SSD status: SSD is in ready state................... : No
Firmware mode........................... : Unknown
SSD is locked........................... : Unknown
SSD is in Safe Mode..................... : Unknown
Logical access is possible.............. : No
Physical access is possible............. : No
Operation aborted
****************************************
Loader is not uploaded! Some of the functions are not available!
Utility initialization was terminate!
Drive power supply...................... : OFF

Logi z błędem sprawdzania znacznika strony (Page marker checking error) podczas nieudanej odbudowy Translatora SSD

Odbudowa Translatora

Kolejne próby automatycznej odbudowy tablic translacji przy wskazaniu innego zgodnego wsadu również zakończyły się niepowodzeniem...

Translator initialization
****************************************
Creating Translator
****************************************
Microchips information uploading........ : Ok
SSD parameters reading.................. : Ok
Reassigned block table loading.......... : Ok
Drive power supply...................... : OFF
****************************************
****************************************
Test interrupted

...
LBA 7 190 856; block: 0x0B5A; page: 0x0E82; Page marker checking error
LBA 7 190 864; block: 0x0B5A; page: 0x0E82; Page marker checking error
LBA 7 190 872; block: 0x0B5A; page: 0x0E83; Page marker checking error
LBA 7 190 880; block: 0x0B5A; page: 0x0E83; Page marker checking error
LBA 7 190 888; block: 0x0B5A; page: 0x0E83; Page marker checking error
...

Na tym etapie ponad 60% dysku nie dawało się odczytać, zaś pliki odnależione podczas skanowania sygnatur w większości były niesprawne.

Dalsza analiza konfiguracji

Po przeanalizowaniu logów, które wygenerowały automatyczne narzędzia (12GB pliku tekstowego) wybrany został Loader z inną wersją oprogramowania i konfiguracją pamięci.

Loader uploading
****************************************
Power Off
Power On
Ready state waiting..................... : Ok
Safe mode............................... : Ok
MPISP code name......................... : – -; -

- -; -............. : Ok
Calling executable code................. : Ok

Seed table reading
Completed
Microcode reading (0)................... : Ok
Firmware version (Internal)............. : S1031B0 BiCS3_02
SSD parameters reading.................. : Ok
Loader not found by internal name.
Search for compatible loaders...

Znalezienie właściwych ustawień

Po dokonaniu modyfikacji parametrów odczytu utworzony został moduł Translatora, który następnie został wgrany do zadania i w efekcie końcowym pozwolił na prawidłowy dostęp do LBA.

Reset SSD controller.................... : Ok
Config Package.......................... : Ok
- -; -.............. : Ok
Calling executable code................. : Ok

SSD status:
SSD is in ready state................... : Yes
Firmware mode........................... : DBG
SSD error code.......................... : 0x00 (No errors)
SSD is locked........................... : No
SSD is in Safe Mode..................... : No
Logical access is possible.............. : No
Physical access is possible............. : Possibly
****************************************
Test completed

Po ręcznym ustawieniu parametrów odczytu udało się odbudować oprogramowanie i uzyskać dostep do danych

Koniec prac i odzyskanie danych

ISP reading (Copy: 00)
Completed
Page reading (channel: 3; chip: 0; block: 0x0001; page: 0x0000)................. : Ok
MPINFO reading.......................... : Ok

Model................................... : Patriot P210 256GB
Serial number........................... : P210FBBB20073013769
Firmware................................ : S1031B0

Load Translator
****************************************
From file............................... : \Data\Translator\Translator_P0812.bin
****************************************

Opracowanie przypadku zajęło 12 dni. Po znalezieniu właściwych ustawień i odtworzeniu modułu Translatora udało się uzyskać stabilny dostęp do danych i wykonać poprawny odczyt nośnika.

Łączna skuteczność odzysku wyniosła około 99% – niewielka część plików okazała się uszkodzona. Kluczowe dla użytkownika bazy danych i dokumenty zostały odzyskane w 100%, co z praktycznego punktu widzenia oznacza pełny sukces.