Do naszego laboratorium zgłosił się klient z problematycznym dyskiem pół przewodnikowym, czyli popularnie zwanym dyskiem SSD, a dokładnie:
Dysk: SSD
Marka: Slicon Power
Model: S60
Pojemność: 240GB
Interfejs: SATA
Sekcje wpisu:
Wstęp
Dysk działał w laptopie, ale nagle po prostu przestał pracować. Brak możliwości dostępu do danych na nim zawartych.
Objawy dysku – wykrywany jako PS3108S8 o pojemności 2MB, firmware / oprogramowanie S8R00000, bez numeru seryjnego.
Zanim opiszę co dzieję się z dyskiem warto wrócić do opisu producenta dysku:
Wyjątkowo trwały
Wyposażony w szybki kontroler oraz pamięć flash typu MLC NAND, S60 gwarantuje szybkość działania, stabilność i trwałość a w efekcie krótszy czas ładowania aplikacji i oszczędność Twojego czasu! Nie ważne czy pracujesz na komputerze, serfujesz po internecie czy też oglądasz filmy, możesz cieszyć się korzystając ze swojego komputera bez opóźnień.
Przeciwdziałanie uszkodzonym blokom
Jeśli dysk zawiera jeden lub więcej uszkodzonych bloków (tzw. Bad Sector), może to spowodować nieodwracalne szkody w systemie. Dysk SP Slim S60 posiada system Bad Block Management, który stale monitoruje i eliminuje uszkodzone bloki, aby utrzymać system operacyjny w dobrym stanie. To dlatego pojemność S60 widoczna w systemie operacyjnym może być nieznacznie mniejsza niż w alternatywnych produktach. Różnica ta pozwala zwiększyć bezpieczeństwo Twoich danych.
Opis produktu oraz zdjęcie pochodzą ze strony xkom.pl
Tak… Bardzo trwały…
Jak to zazwyczaj bywa, marketingowy bełkot, który nie przeszedł próby czasu.
Diagnoza
Z naszej diagnozy wynika, iż doszło do uszkodzenia oprogramowania (firmware) dysku z racji degradacji komórek pamięci w miejscu, gdzie przechowywane jest wewnętrzne oprogramowanie dysku. W wyniku czego dysk nie potrafi się uruchomić w prawidłowy sposób. Podczas rozruchu następuje błąd i dysk jest uruchamiany jedynie w trybie serwisowym, tzw. Safe Mode – dlatego wykrywany jest z nazwą kontrolera – w tym przypadku Phison PS3108.
Odzyskiwanie danych będzie polegało na uruchomieniu oprogramowania wewnętrznego poprzez PC3000 z dodatkiem SSD od acelab.
Dysk jest wspierany przez oprogramowanie, tym samym mamy możliwość ingerencji w pracę dysku i zmuszenie go do oddania plików.
Następnie, jeśli zachowały się pozostałe dane potrzebne do odbudowania translacji danych, powinniśmy mieć dostęp do plików użytkownika dysku.
Proces odzyskiwania danych z dysku SSD
W pierwszej kolejności wyjmuję dysk z obudowy producenta, a następnie podłączam dysk do sprzętu PC-3000.
Uruchamiam narzędzie do dysków SSD, wybieram dysk z rodziny Kingston z Phison PS3108 (istotny jest rodzaj kontrolera, nie producent dysku).
Dysk jak widzimy zgłasza się w trybie serwisowym / safe mode.
Status mówi sam za siebie, dysk przeszedł w tryb safe mode i brak jest dostępu do danych.
Następnie odtwarzam oprogramowanie wewnętrzne dysku, w tym przypadku w wersji 7.2 – Burner_PS3108_7.2.bin
Udało się! Dysk został już wykryty jako BURNERV1 z racji loadera, pojemność 511MB – jest to bez znaczenia w tym momencie.
Log narzędzia:
Loader uploading
****************************************
Code name............................... : Burner_PS3108_7.2.bin
Write PRAM.............................. : Ok
Checking................................ : Ok
Write overlay into PRAM................. : Ok
Checking................................ : Ok
Calling executable code................. : Ok
Write HDD microcode .................... : Ok
SSD status:
SSD is in ready state................... : Yes
Firmware mode........................... : LDR
SSD is locked........................... : No
SSD is in Safe Mode..................... : No
Logical access is possible.............. : No
Physical access is possible............. : Possibly
****************************************
Test completed
Dysk nie jest już w trybie serwisowym / safe mode.
Jest w gotowości, jednak dalej nie mamy dostępu logicznego do danych.
Pora odbudować translacje danych, czyli logiczne adresowanie do fizycznych lokalizacji.
Najprościej mówiąc: dzięki temu będziemy mieli dostęp do plików na dysku.
W zależności od pojemności dysku oraz od jego stanu proces ten może zająć dłuższą chwilę, czasami jednak nawet kilka godzin.
Poniżej dziennik procesu:
Translator initialization
****************************************
Creating translator
****************************************
Read System Info........................ : Ok
Read Chips Info......................... : Ok
channel: 0
****************************************
Service area scanning
****************************************
channel: 0; block: 0x0000............... : C0C0 (Smart Vt)
channel: 0; block: 0x0002............... : C5C5 (L2P)
channel: 0; block: 0x0003............... : C5C5 (L2P)
channel: 0; block: 0x0004............... : C2C2 (PU info)
channel: 0; block: 0x0005............... : C4C4 (L2P Zone)
channel: 0; block: 0x0006............... : C3C3 (PVE)
channel: 0; block: 0x0008............... : C2C2 (PU info)
channel: 0; block: 0x0009............... : C5C5 (L2P)
channel: 0; block: 0x000A............... : C5C5 (L2P)
channel: 0; block: 0x000C............... : C5C5 (L2P)
channel: 0; block: 0x000D............... : C5C5 (L2P)
channel: 0; block: 0x000E............... : C5C5 (L2P)
channel: 0; block: 0x000F............... : C5C5 (L2P)
channel: 0; block: 0x0010............... : C5C5 (L2P)
channel: 0; block: 0x0011............... : C5C5 (L2P)
channel: 0; block: 0x0013............... : C6C6 (Srv)
channel: 0; block: 0x0014............... : C3C3 (PVE)
channel: 0; block: 0x0015............... : C3C3 (PVE)
channel: 0; block: 0x0016............... : C5C5 (L2P)
channel: 0; block: 0x0017............... : C5C5 (L2P)
channel: 0; block: 0x0018............... : C5C5 (L2P)
channel: 0; block: 0x0019............... : C5C5 (L2P)
channel: 0; block: 0x001A............... : C5C5 (L2P)
channel: 0; block: 0x001B............... : C3C3 (PVE)
channel: 0; block: 0x001C............... : C5C5 (L2P)
channel: 0; block: 0x001E............... : C5C5 (L2P)
channel: 0; block: 0x001F............... : C5C5 (L2P)
channel: 0; block: 0x0020............... : C5C5 (L2P)
channel: 0; block: 0x0021............... : C5C5 (L2P)
channel: 0; block: 0x0022............... : C5C5 (L2P)
channel: 0; block: 0x0023............... : C7C7 (Physical log)
channel: 0; block: 0x0024............... : C0C0 (Smart Vt)
****************************************
Completed
Table of pointers loading (channel: 0; block: 0x0000)
Completed
Table of pointers loading (channel: 0; block: 0x0024)
Completed
Table of filled blocks loading (channel: 0; block: 0x0004)
Completed
Service blocks scanning
block: 0x001F........................... : Bad pages count: 1
Completed
Apply filters
Chunks of translator (Found)............ : 0x28480
Filter 0...
Chunks of translator (Deleted).......... : 0x30AE
Filter 1...
Chunks of translator (Deleted).......... : 0x21BC2
Filter 2...
Chunks of translator (Deleted).......... : 0x000C
Filter 3...
Chunks of translator (Deleted).......... : 0x0004
Filter 4...
Chunks of translator (Deleted).......... : 0x0000
Completed
channel: 1
****************************************
Service area scanning
****************************************
channel: 1; block: 0x0000............... : C0C0 (Smart Vt)
channel: 1; block: 0x0002............... : C5C5 (L2P)
channel: 1; block: 0x0003............... : C2C2 (PU info)
channel: 1; block: 0x0004............... : C5C5 (L2P)
channel: 1; block: 0x0005............... : C0C0 (Smart Vt)
channel: 1; block: 0x0006............... : C4C4 (L2P Zone)
channel: 1; block: 0x0007............... : C2C2 (PU info)
channel: 1; block: 0x0008............... : C5C5 (L2P)
channel: 1; block: 0x0009............... : C5C5 (L2P)
channel: 1; block: 0x000A............... : C5C5 (L2P)
channel: 1; block: 0x000B............... : C3C3 (PVE)
channel: 1; block: 0x000D............... : C4C4 (L2P Zone)
channel: 1; block: 0x000E............... : C5C5 (L2P)
channel: 1; block: 0x000F............... : C5C5 (L2P)
channel: 1; block: 0x0010............... : C5C5 (L2P)
channel: 1; block: 0x0011............... : C5C5 (L2P)
channel: 1; block: 0x0013............... : C5C5 (L2P)
channel: 1; block: 0x0014............... : C5C5 (L2P)
channel: 1; block: 0x0015............... : C7C7 (Physical log)
channel: 1; block: 0x0018............... : C3C3 (PVE)
channel: 1; block: 0x0019............... : C5C5 (L2P)
channel: 1; block: 0x001A............... : C6C6 (Srv)
channel: 1; block: 0x001B............... : C5C5 (L2P)
channel: 1; block: 0x001C............... : C5C5 (L2P)
channel: 1; block: 0x001D............... : C2C2 (PU info)
channel: 1; block: 0x001E............... : C4C4 (L2P Zone)
channel: 1; block: 0x001F............... : C5C5 (L2P)
channel: 1; block: 0x0020............... : C3C3 (PVE)
channel: 1; block: 0x0021............... : C5C5 (L2P)
channel: 1; block: 0x0022............... : C5C5 (L2P)
channel: 1; block: 0x0023............... : C5C5 (L2P)
channel: 1; block: 0x0024............... : C5C5 (L2P)
****************************************
Completed
Table of pointers loading (channel: 1; block: 0x0000)
Completed
Table of pointers loading (channel: 1; block: 0x0005)
Completed
Table of filled blocks loading (channel: 1; block: 0x0007)
Completed
Service blocks scanning
Completed
Apply filters
Chunks of translator (Found)............ : 0x236E2
Filter 0...
Chunks of translator (Deleted).......... : 0x48DF
Filter 1...
Chunks of translator (Deleted).......... : 0x1B603
Filter 2...
Chunks of translator (Deleted).......... : 0x0000
Filter 3...
Chunks of translator (Deleted).......... : 0x0000
Filter 4...
Chunks of translator (Deleted).......... : 0x0000
Completed
channel: 2
****************************************
Service area scanning
****************************************
channel: 2; block: 0x0000............... : C0C0 (Smart Vt)
channel: 2; block: 0x0002............... : C5C5 (L2P)
channel: 2; block: 0x0003............... : C4C4 (L2P Zone)
channel: 2; block: 0x0004............... : C5C5 (L2P)
channel: 2; block: 0x0005............... : C3C3 (PVE)
channel: 2; block: 0x0006............... : C4C4 (L2P Zone)
channel: 2; block: 0x0007............... : C5C5 (L2P)
channel: 2; block: 0x0008............... : C5C5 (L2P)
channel: 2; block: 0x0009............... : C7C7 (Physical log)
channel: 2; block: 0x000C............... : C3C3 (PVE)
channel: 2; block: 0x000D............... : C5C5 (L2P)
channel: 2; block: 0x000E............... : C5C5 (L2P)
channel: 2; block: 0x0010............... : C2C2 (PU info)
channel: 2; block: 0x0011............... : C5C5 (L2P)
channel: 2; block: 0x0012............... : C4C4 (L2P Zone)
channel: 2; block: 0x0013............... : C5C5 (L2P)
channel: 2; block: 0x0014............... : C5C5 (L2P)
channel: 2; block: 0x0015............... : C5C5 (L2P)
channel: 2; block: 0x0016............... : C5C5 (L2P)
channel: 2; block: 0x0017............... : C5C5 (L2P)
channel: 2; block: 0x0018............... : C5C5 (L2P)
channel: 2; block: 0x0019............... : C2C2 (PU info)
channel: 2; block: 0x001A............... : C3C3 (PVE)
channel: 2; block: 0x001B............... : C5C5 (L2P)
channel: 2; block: 0x001C............... : C5C5 (L2P)
channel: 2; block: 0x001D............... : C5C5 (L2P)
channel: 2; block: 0x001E............... : C2C2 (PU info)
channel: 2; block: 0x001F............... : C6C6 (Srv)
channel: 2; block: 0x0020............... : C5C5 (L2P)
channel: 2; block: 0x0021............... : C5C5 (L2P)
channel: 2; block: 0x0022............... : C5C5 (L2P)
channel: 2; block: 0x0023............... : C0C0 (Smart Vt)
****************************************
Completed
Table of pointers loading (channel: 2; block: 0x0000)
Completed
Table of pointers loading (channel: 2; block: 0x0023)
Completed
Table of filled blocks loading (channel: 2; block: 0x001E)
Completed
Service blocks scanning
Completed
Apply filters
Chunks of translator (Found)............ : 0x24202
Filter 0...
Chunks of translator (Deleted).......... : 0x3B96
Filter 1...
Chunks of translator (Deleted).......... : 0x1CE6C
Filter 2...
Chunks of translator (Deleted).......... : 0x0000
Filter 3...
Chunks of translator (Deleted).......... : 0x0000
Filter 4...
Chunks of translator (Deleted).......... : 0x0000
Completed
channel: 3
****************************************
Service area scanning
****************************************
channel: 3; block: 0x0000............... : C0C0 (Smart Vt)
channel: 3; block: 0x0002............... : C5C5 (L2P)
channel: 3; block: 0x0003............... : C3C3 (PVE)
channel: 3; block: 0x0005............... : C5C5 (L2P)
channel: 3; block: 0x0006............... : C2C2 (PU info)
channel: 3; block: 0x0007............... : C5C5 (L2P)
channel: 3; block: 0x0009............... : C5C5 (L2P)
channel: 3; block: 0x000A............... : C5C5 (L2P)
channel: 3; block: 0x000B............... : C2C2 (PU info)
channel: 3; block: 0x000C............... : C5C5 (L2P)
channel: 3; block: 0x000D............... : C3C3 (PVE)
channel: 3; block: 0x000E............... : C3C3 (PVE)
channel: 3; block: 0x000F............... : C5C5 (L2P)
channel: 3; block: 0x0010............... : C5C5 (L2P)
channel: 3; block: 0x0011............... : C5C5 (L2P)
channel: 3; block: 0x0012............... : C5C5 (L2P)
channel: 3; block: 0x0013............... : C5C5 (L2P)
channel: 3; block: 0x0014............... : C5C5 (L2P)
channel: 3; block: 0x0016............... : C5C5 (L2P)
channel: 3; block: 0x0017............... : C5C5 (L2P)
channel: 3; block: 0x0018............... : C5C5 (L2P)
channel: 3; block: 0x0019............... : C5C5 (L2P)
channel: 3; block: 0x001A............... : C0C0 (Smart Vt)
channel: 3; block: 0x001B............... : C5C5 (L2P)
channel: 3; block: 0x001C............... : C5C5 (L2P)
channel: 3; block: 0x001D............... : C5C5 (L2P)
channel: 3; block: 0x001E............... : C4C4 (L2P Zone)
channel: 3; block: 0x001F............... : C4C4 (L2P Zone)
channel: 3; block: 0x0020............... : C5C5 (L2P)
channel: 3; block: 0x0021............... : C6C6 (Srv)
channel: 3; block: 0x0023............... : C5C5 (L2P)
channel: 3; block: 0x0024............... : C7C7 (Physical log)
****************************************
Completed
Table of pointers loading (channel: 3; block: 0x0000)
Completed
Table of pointers loading (channel: 3; block: 0x001A)
Completed
Table of filled blocks loading (channel: 3; block: 0x000B)
Completed
Service blocks scanning
Completed
Apply filters
Chunks of translator (Found)............ : 0x29785
Filter 0...
Chunks of translator (Deleted).......... : 0x3FFA
Filter 1...
Chunks of translator (Deleted).......... : 0x21F8B
Filter 2...
Chunks of translator (Deleted).......... : 0x0000
Filter 3...
Chunks of translator (Deleted).......... : 0x0000
Filter 4...
Chunks of translator (Deleted).......... : 0x0000
Completed
Analysis of obtained data
Estimated SSD capacity.................. : 469 762 048 (0x1C000000) LBA
Available to user....................... : 468 862 128 (0x1BF244B0) LBA
User blocks count....................... : 0x03800000
Chunks of translator:
channel: 0.............................. : Used: 0x3800; Found: 0x3800; Min.: 0x0000; Max.: 0x37FF
channel: 1.............................. : Used: 0x3800; Found: 0x3800; Min.: 0x0000; Max.: 0x37FF
channel: 2.............................. : Used: 0x3800; Found: 0x3800; Min.: 0x0000; Max.: 0x37FF
channel: 3.............................. : Used: 0x3800; Found: 0x3800; Min.: 0x0000; Max.: 0x37FF
L2P:
Records count........................... : 0x0400
Completed
Translator build
Completed
****************************************
Completed
****************************************
Test completed
OK, translator został odbudowany i odtworzony, czas na odczyt danych.
W narzędziu Data Extractor tworzę nowe zadanie i viola! Mamy dostęp do plików.
Wybieramy odczyt tylko tego, co jest istotne dla klienta i po kilku godzinach mamy odczytane ponad 8GB danych.
Prędkości odczytu nie są tak zawrotne jakich można by spodziewać się od dysków SSD (od 100KB/s do 3MB/s), jednak jest to dość normalne w sytuacji, gdy nośnik jest już w złym, zdegradowanym stanie.
Rezultat
Odczytaliśmy 22 322 201 sektorów, czyli 8.7GB danych.
Zero uszkodzeń.
W tym przypadku udało odzyskać się 100% danych z dysku SSD na jakich zależało użytkownikowi.
Warto wspomnieć, że w tym jak i podobnych przypadkach z dyskami SSD, możliwość odczytania z nośników SSD mają jedynie laboratoria odzyskiwania danych z odpowiednim zapleczem technicznym.
Koszt
W tym konkretnym przypadku koszt zamknął się w kwocie 1500 zł.
Proszę pamiętać, że koszt zawsze jest ustalany na podstawie diagnozy i może się różnić.
Podajemy kosztorys prac przed podjęciem się zlecenia – tak, by klient mógł sam ocenić czy warto kontynuować.
Jeśli Twój dysk SSD przestał być widoczny, a zależy Ci na przywróceniu z niego dokumentów, plików, zdjęć, filmów itp. to zapraszamy do kontaktu.