giovedì 7 settembre 2017

Recupero dati da chiavetta USB (parte 1 Teoria)

Sto impazzendo con una chiavetta USB che non riesco ad utilizzare e che credo contenga i piani per distruggere le cose brutte del pianeta in modo selettivo, lasciano intatte le cose e le persone buone... devo riuscire a recuperare quei dati.
All'inserimento del sistema, la chiavetta viene riconosciuta 

[32117.874393] usb 2-1.1: new high-speed USB device number 13 using ehci-pci
[32117.983147] usb 2-1.1: New USB device found, idVendor=0420, idProduct=1307
[32117.983151] usb 2-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[32117.983694] usb-storage 2-1.1:1.0: USB Mass Storage device detected
[32117.984042] scsi host6: usb-storage 2-1.1:1.0
[32118.995798] scsi 6:0:0:0: Direct-Access     ChipsBnk Flash Disk       5.00 PQ: 0 ANSI: 2
[32118.996783] sd 6:0:0:0: Attached scsi generic sg1 type 0
[32118.997298] sd 6:0:0:0: [sdb] 16384 512-byte logical blocks: (8.39 MB/8.00 MiB)
[32118.997945] sd 6:0:0:0: [sdb] Write Protect is off
[32118.997947] sd 6:0:0:0: [sdb] Mode Sense: 0b 00 00 08
[32118.998550] sd 6:0:0:0: [sdb] No Caching mode page found
[32118.998554] sd 6:0:0:0: [sdb] Assuming drive cache: write through
[32119.005963] sd 6:0:0:0: [sdb] Attached SCSI removable disk

ma sembra non contenga alcuna partizione dati. 

Il led rosso lampeggia per restare poi a luce fissa, segno che il controller, almeno apparentemente funziona. Dopo il riconoscimento escono degli errori di sistema 

[ 6767.472661] usb 2-1.1: reset high-speed USB device number 8 using ehci-pci

Di montare una partizione inesistente nemmeno a parlarne. cfdisk ed Fdisk non sembrano riconoscere l'unità. Creo una partizione e perdo i dati nel chip? no, la partizione non si riesce a crearla. 

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x80b29bcd.

Formattare?.... no, ci ho provato e non si riesce a formattare

A questo punto ho due opzioni:
1) invio la chiavetta a chi si occupa di recupero dati e vediamo cosa succede
2) mi arrangio con la misera attrezzatura a disposizione e risparmio qualche euro (che comunque non ho)
Sorge quindi un problema: cosa potrebbe avere di guasto? Proviamo a ragionarci un pò su ed analizzare le possibili cause
La chiavetta è costruita con pochi componenti. Principalmente un controller ed un chip di memoria NAND flash. Oltre ad una manciata di resistenze e condensatori c'è un quarzo oscillatore da 12 mhz.
Il controller è un CBM2091 della Chip Bank Microelectronics un TQFP (Thin Quad Flat Package) 7x7 mm e spesso 1mm (abbastanza diffuso e credo facilmente reperibile) 
Il Nand Flash Memory chip è uno Specteck FBNL52AHGK3WG da 8 Gb TSOP Type 1 (Thin Small Outline Package) a 48 pin, anche questo di "relativamente facile" reperibilità (sempre te ne vendano uno soltanto e convenga pagare le spese di spedizione). 
Ma il malfunzionamento da cosa potrebbe dipendere?

Potrebbe essere il quarzo? Poco probabile. fosse il quarzo che non oscilla la chiavetta non verrebbe nemmeno vista, mentre abbiamo verificato che viene riconosciuta. Scartiamo quindi il quarzo.

Potrebbero essere i pin D+ e D- della USB magari staccati causa inserimenti forzati che hanno sollecitato meccanicamente la chiavetta?? Un ispezione con un microscopio digitale ci conferma che i contatti sul PCB sono a posto, compresi quelli verso la porta USB del PC. 

Potrebbe essere il controller? Probabile. Dal data sheet vediamo che esso contiene due regolatori di tensione che regolano i 5volts (pin 1) dell'USB, uno a 3.3 volts (pin 2) ed uno a 1.8 volts (pin 3), usati per il chip di memoria. Basterebbe verificare se da quei due pin ci sono le tensioni dichiarate ma... stiamo parlando di saldare ai piedini dell'integrato da 0,5mm (davvero inaccessibili senza specifica attrezzatura) dei fili altrettanto sottili con una punta a spillo (skill level 10/10). Altro non mi viene in mente. 

Potrebbe essere il chip di memoria? Probabile. Verificato che è alimentato correttamente dal controller, potrebbe essere il chip guasto o che ha raggiunto il numero massimo di cicli di lettura scrittura. Come verificare? bisognerebbe staccarlo dal PCB, inserirlo in un lettore di flash ram per esserne sicuri (lettore che per ora non ho) e verificare se leggibile.

Poi dipende: vogliamo davvero recuperare i dati eventualmente presenti o vogliamo riparare la chiavetta? entrambe le ipotesi  richiedono due approcci diversi. Per recuperare i dati (almeno tentare, se recuperabili) occorre staccare il flash chip e: o inserirlo in un lettore oppure provare a saldarlo su una chiavetta gemella (praticamente introvabile). Altrimenti, per riparare, appurato se il controller funziona o meno, occorre sostituire i chip sperando di trovarli e sperando che il costo del materiale non superi il valore di una chiavetta da 8 giga. Al limite si potrebbe verificare se i chip da 16 o 64 abbiano la stessa piedinatura ed aumentare così la memoria disponibile. Mettiamo in conto anche il valore "emotivo" di una riparazione difficilissima.... priceless.  
Vedremo. Alla prossima

P.S. il gobbo sgobba. Ripeto: il gobbo sgobba. 

Nessun commento: