30 de març del 2013

Recuperant dades dun disc dur malmès (2)

Tal com vaig prometre, acabaré l'article sobre com recuperar dades d'un disc dur malmès. Havíem acabat de llegir el suport original (el disc dur) i tenim sobre un ordinador bo la imatge llegida amb ddrescue.

Si, pel motiu que sigui hem fet el procés en dues vegades i tenim dues imatges i dos fitxes de registre, el primer serà unir-los en un de sol:
$ sudo ddrescue -m recovery_2.log hddimage_2.img \
                                   hddimage.img recovery.log
El resultat quedarà unit a hddimage.img i recovery.log.

Quan ja tenim una imatge final (suposem hddimage.img), i si l'estructura de directoris no està corrupte, la podem muntar directament i veure'n el seu contingut amb:
$ sudo mkdir /media/hddrec
$ sudo mount -o loop –t ntfs hddimage.img /media/hddrec
Alternativament, la podem copiar sobre una nova partició d'un disc dur sa (COMPTE, s'esborrarà la partició destí i tot el seu contingut !!!), utilitzant la comanda següent:
$ sudo dd if=hddimage.img of=/dev/sdb1
En aquest cas, s'ha copiat la imatge sobre la primera partició d'un disc extern a /dev/sdb. Lògicament, la partició destí ha de ser més gran, o com a mínim igual, que la partició original.

Si contenia errors, podem provar de reparar-los amb:
$ sudo ntfsfix /dev/sdb1
I si tot va bé, ja la podrem muntar normalment. Com a darrer recurs, sempre podem deixar que sigui un sistema Windows qui provi de fer la reparació de la partició.

Si malgrat tots els esforços no podem reparar la partició per poder-la muntar i veure el seu contingut, sempre ens queda un parell de recursos finals. En primer lloc, tenim foremost:
$ sudo apt-get install foremost
$ sudo foremost -i hddimage.img -o recovery_dir
Aquesta utilitat ens recupera els fitxers que troba a la imatge, llegint-los en brut (identificant capçaleres) i ens els agrupa per tipus. El problema és que perdem l'estructura de directoris i el nom dels fitxers, pel que ens podem trobar amb un mar de directoris i fitxers. Però pot ser el darrer recurs per recuperar aquell full de càlcul, base de dades, o el document de la tesi...

En segon lloc tenim photorec (forma part del conjunt d'eines testdisk). El podem utilitzar amb:
$ sudo apt-get install testdisk
$ sudo foremost -i hddimage.img -o recovery_dir
Funciona de manera similar al foremost, però enlloc d'agrupar els fitxers per tipus ho fa per directoris.

I bé, aquestes són les eines que espero que mai no hàgiu de fer servir. Acabo com vaig començar, amb un savi consell que potser no apreciareu fins que ja sigui massa tard:

Feu còpies de seguretat de les vostres dades !!!


Imatge: 'Flood Files' http://www.flickr.com/photos/11018968@N00/859824333 Trobada a flickrcc.net

26 de març del 2013

Recuperant dades dun disc dur malmès

Feu còpies de seguretat de les vostres dades. Això és la millor garantia de poder recuperar les vostres dades quan el disc dur falli. No si falla. Quan falli.

Feta l'advertència de rigor, vaig a documentar una sessió real de recuperació d'un disc dur d'un portàtil que es va fer malbé per una mala caiguda. Els símptomes inicials eren:
  • El windows (sic, què voleu, el portàtil no era pas meu) no arrenca.
  • Al muntar el disc en una carcassa externa només es pot accedir a la partició de recuperació de fàbrica (típica d'un portàtil), però no a la del sistema i les dades (partició única, ja he dit que el portàtil no era meu!).
Les dades que contenia eren prou valuoses per a la seva propietària, però no prou per portar-lo a una empresa especialitzada. Per sort, tenim grans eines de codi obert amb les quals provar de recuperar les dades en un cas així. En concret, utilitzarem l'eina ddrescue de GNU (compte no confondre amb dd_rescue, que és una eina complement diferent). Això i els consells dels experts. Així que, abans de res, instal·lem l'utilitat esmentada:
$ sudo apt-get install gddrescue
La primera cosa a tenir present a l'hora de recuperar un disc dur malmès, és que aquest pot morir del tot en qualsevol moment. Per tant, és important fer una còpia de les dades que es pugui sobre un altre disc dur, per poder treballar després amb aquesta imatge.

L'aplicació ddrescue ens permet anar recuperant part de les dades del disc dur en diferents sessions i utilitzant diverses estratègies, per anar-les afegint a una imatge que es va completant amb les noves dades. Per això utilitza un fitxer de registre on guarda informació sobre els sectors que ha anat llegint, quins sectors contenen errors, etc...

Per tant, és prioritari llegir de seguida la part corresponent al sistema de fitxers:
$ ddrescue -i0 -s50M /dev/sdc3 hddimage.img recovery.log
Amb aquesta comanda llegim la tercera partició dels disc dur /dev/sdc i creem una imatge hddimage.img i un fitxer de registre recovery.log en el directori actual. En concret llegim 50 MB (-s50M) a partir de l'inici de la partició (-i0).

En cas que es generin errors, cal mirar de salvar com a mínim el primer MB (li deixem fins a tres re-intents de lectura, amb -r3) amb:
$ ddrescue -i0 -s1M -d -r3 /dev/sdc3 hddimage.img recovery.log
En el meu cas vaig poder recuperar aquesta part sense problemes, en qüestió de minuts. A partir d'aquí, cal salvar les dades bones el més ràpidament possible:
$ ddrescue -v -i0 --min-read-rate=1M --no-split \
                           /dev/sdc3 hddimage.img recovery.log
La comanda força una velocitat de lectura mínima de 1 Mbps. És a dir, que es saltarà els sectors malmesos per llegir primer els que són correctes. Si el disc està força bé, anirà ràpid, però en el meu cas, el disc estava "trinxat", amb molts sectors tocats i saltejats, pel que va ser un procés lent. Calculo que ben bé unes 40 hores, que van permetre recuperar un 95% de les dades. Com acostuma a passar, no va poder recuperar els fitxers més preuats.

Tos seguit es llegeix la resta del disc (si encara aguanta):
$ sudo ddrescue -v -i0 /dev/sdc3 hddimage.img recovery.log
$ sudo ddrescue -v -i0 -r3 /dev/sdc3 hddimage.img recovery.log
Les dues comandes proven de llegir la part pendent del disc, la primera directament, la segona amb tres re-intents. Aquest procés va trigar en el meu cas al voltant de 500 hores (més de dues setmanes i mitja, nit i dia funcionant). Creieu-me: feu còpies de seguretat de les vostres dades.

La imatge mostra un moment del procés:

La bona notícia és que es va poder recuperar el 99.9% de les dades, inclosos els fitxers desitjats.

I com que ja m'he allargat molt per un sol article, deixaré per un altre dia com muntar i restaurar imatges, recuperar dades si el sistema de fitxers està malmès i altres cosetes relacionades. Serà aviat. De veritat.