Mar 16 2010

Una domenica mattina

Domenica mattina, ti svegli bello tranquillo, giochi un po’ con il meraviglioso pupo e poi, perche’ no, decidi di accendere il pc e dare un occhiata alle email. Scrivania, ti siedi comodo, schiacci il bottone e… e basta… non succede null’altro. Stai per un po’ a fissare quel monitor con il logo di chi te l’ha venduto, tu sai che dopo qualche secondo se ne dovrebbe andare per lasciare posto alla bandierina multicolorata che ti informa che Windows sta per partire ma… Niente, se ne sta li, bellamente a guardarti senza proferir parola alcuna. Vabbe’, tu pensi, il solito Windows che chissa’ che casino ha combinato durante l’ultima hybernation ieri, spengo, riaccendo e tutto tornera’ a posto. E invece no, nuovamente quella schermata inutile che sta li a fissarti, esattamente come tu fai con lei. No, non scherziamo, fammi vedere cosa sta succedendo realmente. Powercycle, una pioggia di pressioni sul tastino di escape, il logo del produttore non fa nemmeno in tempo ad apparire, al suo posto ora la familiare sequenza di messaggi di POST.
Scanning SATA disks: “Port 1: cdrom”, e vabbe’. “Port 5:” Niente. Sta li. Solo “Port 5:” E io so benissimo cosa c’e’ attaccato alla port 5, o quantomeno cosa dovrebbe esserci, perche’ il BIOS non ci sta capendo molto. Ok, che palle, si sara’ staccato un cavo, mi tocca aprire il PC. E pensare che io volevo solo dare una controllata rapida alla posta. Cacciavite, via le viti, leva il pannello. Cacchio, ma i cavi sono attaccati bene… Vabbe, levali e rimettili, che la polvere a volte fa cose strane. Niente. Il nulla. Il bios sta li a cercare di parlare con quell’entita’ collegata alla porta 5 del controller SATA. Lo sento che nel suo piccolo sta urlando “Ehi tu, device buffa, mi dici chi sei e cosa fai nella vita?” Ma la device buffa non risponde. Dopo un tot, anche il bios ci rinuncia. Timeout, e va avanti, ma non per molto visto che senza un HD con il sistema operativo sopra non puo’ fare un granche’. Parte la sequenza di porco qui e porco la’. Anzi, credo di aver sentito citare impropriamente anche personaggi biblici, ma ora non ricordo esattamente. Rapida successione di pensieri: Se il disco se n’e’ andato dovro’ reinstallare tutto, un immane rottura di palle e colossale richiesta di tempo da dedicare. E comunque il mio PC non sara’ mai come prima, qualche setting di qualcosa me lo saro’ dimenticato, qualcos’altro mi sfuggira’ certamente. Ma la cosa piu’ importante e’ che ho un backup di tutti i miei documenti, dati, email. Sia santificato il backup automatico che gira ogni due o tre giorni, quantomeno le cose piu’ importanti si sono salvate.
Ok, un altro paio di vaffa e mettiamoci al lavoro: butta dentro un altro HD qualunque che c’e’ in giro, monta un OS di corsa che voglio andare a verificare esattamente che cosa c’e’ nel backup. OS montato, click qui, click la, restore, questo e’ il path di rete dove c’e’ il file di backup. Ultimo click su OK e il restore parte. Quanto ci mettera’ a tirare su tutto? Non faccio neppure in tempo a pensarlo che una finestrella impertinente mi dice “Done. Time elapsed: 00:00:02”. Due secondi? Devo aver sbagliato qualcosa, rifa. Rifo, ma non cambia niente: in due secondi netti il restore e’ completato, e, al posto dei miei preziosi dati ci sono solo quattro directory.
Vuote.
No, aspetta, come? Come come? Disco fottuto e backup inutile? Ora sta venedo giu pure il cielo, invocato dal sottoscritto nominando santi come se stessi sgranando un virtuale rosario, uno ad uno, piu’ volte per ciascuno. Ritroviamo la calma, che mi serve per pensare giusto. Cosa c’e’ su quel disco che non sta da nessun altra parte? Troppa roba… Ogni volta che penso a qualcosa, stava sul quel disco. Documenti, dati finanziari, le bollette da pagare, gli ultimi miei anni di vita, tutta la musica legalmente acquistata… Basta, meglio smettere di fare questa lista mentalmente, troppo dura da digerire, fa troppo male. L’ultima copia di quei dati che so per certo esistere da qualche altra parte risale al trasloco, due anni fa.
Male male male.
Vabbe’, ormai abbiamo capito, inutile rimuginarci sopra, il disco se n’e’ andato e non c’e’ un backup sano. E’ tempo di pensare ad un piano B, una magia che possa farmi estrarre quei dati. Mi sono tornate in mente cose fatte e rifatte in passato, quando qualche cliente aveva lo stesso problema. Certo, erano altri tempi, la tecnologia non era cosi’ avanzata pero’ i miracoli li abbiamo gia’ fatti capitare, e allora riproviamoci, old school. Sono due le parti principali del disco: la meccanica e l’elettronica. Riattacca l’alimentazione e metti un orecchio vicino al disco: no, nessun rumore strano, si sentono chiaramente i dischi che spinnano, le testine che sganciano e si muovono, direi che la meccanica, altre sfighe permettendo, potrebbe essere sana. Bene, il problema e’ al 90% nell’elettronica. La prima cosa da provare a fare e’ quello che si faceva vent’anni fa: trova un altro disco identico e sostituisci tutta l’elettronica. Detto, fatto: macchina, corsa da Fry’s e ricerca del disco: niente. Porca vacca, il mio disco nuovo e’ gia’ considerato troppo vecchio, non c’e’ piu. Si torna a casa e si cerca online: era piu’ facile del previsto, un tot di posti lo hanno disponibile, ma ovviamente nessuno con un negozio fisico dove poter andare e portarselo via. Vabbe, mi tocchera’ aspettare.
Odio aspettare.
Ordino il disco dal venditore che mi promette la spedizione piu’ rapida, un FedEx overnight 10am che costa piu’ del disco stesso, ma non fa niente. Nel frattempo, un po per tentare di cacciare la sfiga, un po per mettere le mani avanti, comincio a contattare una societa’ che fa data-recovery: parlo con un tizio che mi spiega che se non c’e’ niente di gravissimo sono capaci di tirarmi fuori i dati, alla modica cifra di 400 dollari, piu altri 300 nel caso dovessero usare la cleanroom, piu’ tutte le spese di spedizione di dischi avanti e indietro. Pazienza, che ci devo fare, i dati li sopra probabilmente valgono quella cifra, ovvio che i maroni spinnano piu’ veloci dei dischi che sto cercando di leggere senza riuscirci, ma tant’e’.
E’ domani, l’omino fedex arriva come promesso prima delle 10. Spacchetta il pacchetto ed ecco il disco sacrificabile. Li metto uno a fianco all’altro e controllo che effettivamente siano identici: lo sono, a parte un piccolo dettaglio, prevedibile dopotutto, il firmware del nuovo disco e’ piu’ recente dell’altro. Ok, vabbe’, che ci sara’ mai di male, firmware aggiornato ma non dovrebbe fare differenza. Torx numero 6 (btw: perche’ in tutti i set Torx la chiave piu’ piccola e’ la 7?) tira giu’ l’elettronica da uno, tirala giu’ dall’altro, rimonta il nuovo sul vecchio. A questo punto, tutto l’incrociabile era incrociato, escluso i flussi, naturalmente, quello e’ male. Attacco l’alimentazione al disco, accendo il tutto…
CLONG CLONG CLONG!
Rumore di ferraglia pazzesco! Spegni, spegni subito! Maremma maiala! Com’e’ possibile che una versione aggiornata di firmware possa scatenare sto merdaio? Testine a spasso all’impazzata, e speriamo sia solo quello… Una nuova rapida sgranata di rosario a questo punto era inevitabile, ed infatti c’e’ stata. Sgomento, ma nessuna rassegnazione. Che posso fare ora? Potrei provare a cercare la vecchia versione del firmware, quella che stava sul disco rotto, rimettere a posto le due elettroniche, fare un downgrade del disco nuovo e swappare di nuovo, dopotutto quella era l’unica differenza fra i dischi. Ma riusciro’ a trovare il firmware e relativo software per rimpiazzarlo? Proviamoci…
Mi armo di pazienza, che ormai e’ l’unica cosa rimasta, e mi preparo ad una hard session googolatoria. Anzi, prima passiamo sul sito di Seagate, che se mi va di culo (hahaha! come no, visto l’andazzo…) trovo tutto. Bastano pochi minuti per tornare con i piedi per terra: trovo infatti il sw necessario alla riprogrammazione, trovo un paio di versioni di firmware recenti ma nessuna menzione su dove e come trovare versioni piu’ vecchie. Ok, google sara’ mio amico, come sempre, ci sara’ pure un qualcuno in giro per il mondo che per qulche strano motivo ha messo in linea una versione vecchia di quel firmware. Ricerchina semplice, chiavi banali, marca del disco, modello, versione firmware…
Oh oh…
Ma va?
Ah si?
Google mi spara pagine e pagine di link a forum vari dove, a quanto pare, migliaia di persone con lo stesso disco, stessa versione di firmware, si e’ trovata nella mia stessa identica situazione… Questa non me l’aspettavo. Indago e ricerco un po meglio, mi leggo un po di cose ed effettivamente pare che non sono io lo sfigato con il disco che si e’ rotto per cause ignote, ma sono quei simpaticoni di Seagate ad aver messo in giro migliaia di dischi con su un firmware con un bug maiale! Ok, per incappare in quel bug serve comunque un po di sfiga, pero’ non sono esattamente il solo che ci e’ riuscito, siamo in tanti. Non so perche’, ma mi sento gia’ un po’ meglio, sara’ che l’unione fa la forza, sara’ quel che sara’, ma sento odore di qualcosa di buono, qualche speranza in piu. Il fatto che tanti malcapitati stiano chiedendo a tutto spiano aiuto, come me, mi da la forza di pensare che esista qualche buon samaritano che abbia trovato una possibile soluzione e l’abbia condivisa con tutti gli altri sfigati. Sessione di lettura pesante, saltando da un forum all’altro, fino a quando non vedo, o meglio, leggo, parole che mi confortano: “Seagate busy bug: solved”. Ohhh! Ora sto decisamente meglio, posso addirittura buttare il rosario virtuale nel cestino. La soluzione al problema non e’ semplice ma c’e’, ed arriva dalla Polonia. Nella mia testa immagino il classico nerd quindicenne brufoloso che vive chiuso nella sua stanza con la sola compagnia di pc, internet e saldatore, e la cosa mi piace ancora di piu: per esperienza so che questi piccoli nerd sono coloro che riescono a fare cose straordinarie, con soli mezzi di fortuna e tanta fantasia.
Leggo attentamente il suo post e tutti i commenti relativi, e’ tanta roba e capisco immediatamente che non e’ esatamente una “two-clicks solution”, ma a questo punto nulla mi puo’ far paura. Innanzitutto trovo una descrizione dettagliata del problema, che semplifichero’ qui per i miei lettori: se durante i test in fabbica e’ stata scritta una certa, precisa sequenza di bit sulla traccia di test del disco, e solo se durante lo smart test che il disco fa ad ogni accensione viene scritto il risultato nel 350mo bit del log circolare (lungo esattamente 350 bit), alla successiva accensione il firmware cerchera’ di scrivere il successivo risultato nel 351mo bit del log, che, essendo di 350, non esiste, creando un crash e impiallandosi li dov’e’, come un moscerino sul parabrezza di una macchina che corre in autostrada. Questo conferma il vecchio detto che la fortuna e’ cieca, ma la sfiga ci vede benissimo, e, a quanto pare, conosce pure il mio indirizzo! Una volta noto il problema, il mio neopromosso eroe polacco, anch’egli probabilmente con un disco carico di cose importanti (ok, magari erano solo pornazzi scaricati dal mulo, cio’ nonostante per lui erano importanti!) si e’ dedicato per mesi interi, con l’aiuto di un gruzzolo di amici di forum, a fare reverse-engineering di tutto l’ambaradan per cercare di spostare quel puntatore malefico, e la cosa piu’ pazzesca e’ che ci e’ riuscito!
Coloro che sono arrivati fino qui a leggere questi miei pensieri buttati giu frettolosamente, immagino siano ben pochi, a questo punto staranno urlando “Ok, ma ci dici qual’e’ la soluzione?” Certo, eccola qua: I dischi Seagate, quantomeno quelli della serie Barracuda, hanno un accesso diagnostico al microcontroller a bordo del disco stesso, sotto forma nientepopodimeno che di una porta seriale. In teoria, e’ sufficiente collegarsi alla seriale con un qualunque terminale per poter dare comandi precisi al microcontroller per svolgere azioni a bassissimo livello. In teoria un operazione molto semplice, nella pratica pero’ c’e’ qualche complicazione in piu. Primo: quali comandi? A questo livello basta davvero poco per trasformare i miei preziosi dati in una marmellata di bit. Secondo: la seriale a bordo non e’ certo pensata per l’end-user, non e’ una RS232 canonica, ma una seriale TTL. La soluzione della seconda parte, suggerita anche dall’eroe con i brufoli, porta via un po di tempo, tre dollari di componentistica ma soprattutto richiede il trovare dove ho messo il saldatore, che e’ un po di tempo che non uso. Vabbe’, facciamolo: il classico MAX232, quattro condensatori, due pezzi di fili da qui a li, altri dua li a qui ed ecco convertita la seriale, che ora posso pinzare senza paura al laptop che usero’ per l’operazione. Uno dei suoi amici di forum ha usato addirittura una soluzione ancora piu’ casereccia: il data cable di un vecchio telefono Nokia, che contiene esattamente quello di cui abbiamo bisogno, ovvero una usb to serial e un convertitore di livelli.
Ma aspetta…
Il MAX232 usa la tensione di alimentazione verso la parte TTL, e la minima tensione di utilizzo sono 4 volt, mentre l’interfaccia sul disco e’ un TTL a 3.3v. Probabilmente non gli fa male, ma non voglio rischiare nemmeno un pochetto. Mi metto quindi a scartabellare datasheet su internet, e trovo l’ADM202E, che e’ proprio quello che fa per me. Ravanando meglio, trovo pure una protoboard che usa proprio questo chippino (SchmartBoard 710-0001-01) ed ha gia’ montato un DB9 da una parte e degli header volanti lato TTL. Ottimo, dove la posso trovare? Fry’s! Favoloso, rapido viaggio e 14 dollari e la board e’ a casa, cosi’ mi evito pure le saldature. Per la prima parte invece, i comandi, devo fidarmi ciecamente del ragazzino, dei suoi mesi di studio del problema, delle urla di gioia che non si sentono ma si possono chiaramente leggere nei suoi post quando dice di aver risolto.
C’e’ pero’ un ulteriore problema: appena il disco parte compie la famosa operazione schifida che lo blocca in pochi secondi, e in quel breve, brevissimo tempo non c’e’ modo di passare tutti i necessari comandi. Non solo: per risolvere la cosa c’e’ bisogno di far scrivere una cazzutissima serie di bit sul disco stesso, e finche’ il disco non ha completato i self-test, non e’ disponibile per l’operazione, ma il self-test non si concludera’ mai, perche’ va in crash prima.
Uhm…
Andiamo avanti a leggere i post del neoeroe e cerchiamo di capire come ha fatto lui. Semplice ed ingegnoso, esattamente come mi aspettavo: sara’ sufficiente staccare i collegamenti fra l’elettronica del disco e le testine, in modo che non possa piu ne leggere ne scrivere, ma sara’ necessario lasciare intatti i collegamenti al motore, in modo che almeno la prima parte dei test possa concludersi. I collegamenti verso le testine pero’ devono poter essere poi ripristinati al volo, a macchina accesa. Urgh, sento odore di potenziale distruzione. Ok, facciamo, seguendo il consiglio riportato dal nostro amichetto, preparo una strisciolina di plastica rigida, ma non troppo spessa, utilizzando i bellissimi biglietti da visita della moglie, in fighissimo PVC semitrasparente. Infilo un estremita’ della strisciolina fra la contattiera delle testine e l’elettronica, e metto una vite lasciata un po molle, in modo che poi io possa estrarre la plastica e i contatti contattino tutti quanti. Attacco la seriale, il mio fido SecureCRT che mi fa da terminale, seriale settata a 38400,n,8,1. Tempo di dare tensione al disco.
Click… sento il motore partire, lo lascio arrivare in velocita’, gli do ancora qualche secondo e poi via, una raffica di CTRL-Z sul terminale.
Azz, magia vera! Compare un prompt seguito a breve distanza da una fila di messaggi di errore, criptici ma non abbastanza per nascondere il fatto che il selftest non sta andando a buon fine, un po come se ci fossero le testine scollegate…
Ok, e’ arrivato il momento:
F3 T>/2
F3 2>Z
Spin Down Complete Elapsed Time 0.147 msecs
F3 2>
Il motore si ferma. Sto effettivamente dando comandi al disco, questa cosa si sta facendo addirittura divertente, il vecchio smanettone che c’e’ in me sta tornando fuori con una inaudita prepotenza! Ma andiamo avanti, senza dimenticare che ora arriva la parte piu’ pericolosa: sfiliamo il pezzetto di plastica e lasciamo che l’eletronica possa nuovamente utilizzare le testine.
Swip.
Ok, apparentemente siamo ancora vivi. Ora tutto e’ collegato, dobbiamo far scrivere i bit magici sulla superfice del disco.
F3 2>U
Spin Up Complete Elapsed Time 7.457 secs
F3 2>/1
F3 1>N1
F3 1>/T
Mah… Non ho idea di cosa quei comandi stiano scrivendo, ne dove. Seguo pedantemente, religiosamente le istruzioni, che richiedono un powercycle del disco. Stacco. Riattacco. Spin up, testine che si sganciano e vanno a fare il loro movimento di test. Ctrl-Z a raffica. Prompt.
F3 T>
F3 T>i4,1,22
F3 T>m0,2,2,0,0,0,0,22
Max Wr Retries = 00, Max Rd Retries = 00, Max ECC T-Level = 14, Max Certify Rewrite Retries = 00C8
User Partition Format 5% complete, Zone 00, Pass 00, LBA 00004339, ErrCode 00000080, Elapsed Time 0 mins 05 secs
User Partition Format Successful – Elapsed Time 0 mins 05 secs
F3 T>
F3 1>/T
Ancora una volta non ho assolutamente idea di cosa stia succedendo “dentro” al disco, ma il mio eroe brufoloso sembra assolutamente sapere quel che consiglia di fare, ed io l’ho fatto. Certo, quel “User Partition Format” non e’ esattamente rassicurante, ma il nostro amico dice che e’ solo una brutta scelta di termini da parte di chi lo ha scritto.
Sperem.
Ora non resta che tentare di rileggere il disco. Spengo, stacco i cavetti attaccati con le pinzette all’elettronica del disco, attacco la porta SATA e spero in bene.
Click.
Beep.
Scanning SATA disks: “Port 1: cdrom”, e vabbe’. “Port 5: ST3750630AS Seagate Barracuda 7200.11”.
Evvvai! I miei dati! Il mio disco di merda! Si legge! Fiat lux! Habemus Papam! Vaffanculo!
Ok, tre minuti di niente per far scendere il tasso adrenalinico nel sangue.
A posto: boot dall’installazione temporanea preparata precedentemente per il restore, disk image istantanea del disco di cacca. Spegni. Leva il disco. Buttalo via. Verifica di averlo buttato via. Monta un Western Digital, riaccendi, ripristino della disk image sul WD. Spegni, swap dei dischi e voila!
Riaccendo il pc, e, un po per prendermi per il culo, ma stavolta mi fa sorridere, Windows mi fa “Previous startup didn’t complete successfully”. Come se non lo sapessi, pirla! Continua, e non rompere i maroni.
Cinque secondi dopo ed era li, con il mio login prompt personalizzato, con tutti i miei bei programmini, tutti i miei dati, tutto a posto, come se nulla fosse successo.
Ah, che bella sensazione!
Mi faccio pat pat sulla spalla da solo, e non devo assolutamente dimenticarmi di scrivere una mail al quindicenne, ringraziandolo a piu non posso. Avessi il suo indirizzo fisico gli manderei pure una bottiglia di limoncello fatto in casa.
Ho scritto tanto… ed ora e’ tempo di andare. Ora devo rivedere tutte le mie politiche ed i miei software di backup. E poi fare un giro per tutte le macchine che ho in giro e buttare via tutti i dischi Seagate. Mai piu Seagate in vita mia. E pensare che questa cosa l’avevo gia’ detta tanto, tanto tempo fa, i piu’ “anziani” ricorderanno il periodo in cui non si compravano Seagate perche’ era noto che si fottevano dopo niente. Perche’ non mi do ascolto?
Ma prima di andare, un ultimo consiglio a chi e’ riuscito a seguirmi fin qui: controllate i vostri HD. Se avete per le mani un Seagate Barracuda serie 7200.11, andate subito, di corsa, senza aspettare un attimo qui,¬†inserite il numero di serie del disco (le istruzioni su come trovare il serial number sono qui) e, nel caso l’applicazione vi dicesse che c’e’ un firmware upgrade disponibile, fatelo subito, non aspettate neppure un attimo.

Mar 6 2010

Occasional

Occasional” consipation? Scatola da 100?
E menonale che sarebbe “occasional”!

Ah, questi americani…


Mar 3 2010

Una bella compagnia di merda

Quantomeno secondo il Corriere:

Merdiana Fly

Merdiana Fly


Mar 2 2010

Addirittura sette…

Mi era gia’ capitato di guidare qualche macchina con sei marce, ma con la settima non l’avevo ancora vista…

Il problema vero e’ che quella macchina supera il massimo limite di velocita’ presente da queste parti gia’ in terza…