dissabte, de gener 18, 2014

Com recuperar particions amb ddrescue

Fa un temps vaig explicar com desar una partició amb partimage (1).

Però fa poc em vaig trobar que un disc començava a fallar tot i que era perfectament utilitzable, així que vaig còrrec a comprar un nou disc. Un cop el disc instal·lat vaig intentar desar les dues particions que volia recuperar i em vaig trobar que partimage deixa de copiar a la que troba un sol error de disc (2). Vaig intentar-ho amb dd amb el mateix resultat. Després d'una estona de cercar vaig donar amb la solució: ddrescue (3)(4). No confondre amb dd_rescue que es una versió més antiga i menys segura (5).

 ddrescue

El que fa ddrescue es que segueix copiant saltant els errors després de repetir la lectura alguns cops en cas d'error. El resultat depèn del nombre i la mida dels errors, però si aquesta es petita com en el meu cas, permet recuperar tot allò que es salvable. En el meu cas, havia perdut dues particions, una de 463GB ext4 i un altre de 10 GB ntfs. De la primera ho vaig recuperar tot excepte 158MB i la segona no la vaig poder recuperar, tot i que no tenia res important. Així que vaig poder recuperar tot allò que necessitava.

Cal dir que quan vaig decidir la recuperació ja feia molts dies que rebia avisos de la fallada esporàdica del disc. Així que en cas d'errors de disc convé no demorar la recuperació.

Instal·lem el nou disc i fem les particions necessàries. Convé indicar que les particions noves on volem recuperar les dades no poden ser menors que les antigues, així que les farem lleugerament més grans. Al final del procés podem canviar la seva mida amb gparted, vaja en cas que les vulguem reduir, si les volem més grans gairebé millor estalviar-nos el gparted i fer-les de la mida desitjada.

Arrenquem amb un CD-Live o amb un llapis usb (6)
Comprovem on s'han muntat les particions amb:

sudo fdisk -l

i ens ajudem de la mida de les particions que prèviament hem anotat amb molta cura.

Per al següent exemple volem recuperar dues particions que tenim a:

/dev/sdb2
/dev/sdb6


i les particions a les que les copiarem seran:

/dev/sda2
/dev/sda3


respectivament.

Abans de continuar recordem que com hem dit les noves particions no poden ser menors que les antigues.

1) Instal·lem el ddrescue

El ddrescue és als repositoris universe, i hi ha diverses opcions per afegir aquest repositori;

1.1) De forma manual:

sudo gedit /etc/apt/sources.list

i afegim el mot univers als sources.list després de cada main (3 cops).

1.2) Amb les següents ordres manuals:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo sed -i -e "s/# deb/deb/g" /etc/apt/sources.list


Després actualitzem els paquets:

sudo apt-get update
sudo apt-get install gddrescue


2) Recuperem les particions

Primer muntarem una carpeta per desar els registres. Recordem desar-ho abans de reiniciar o enviar-los per correu si treballeu amb un CD-Live o amb un usb que no permeti desar-hi!

sudo cd /mnt
sudo mkdir disc
mount /dev/sda9/ /mnt/disc/


I ja podem executar el ddrescue. 
En el cas d'un partició ext4 serà una cosa així:

ubuntu@ubuntu:/mnt/disc$ sudo /sbin/ddrescue -v -f /dev/sdb2 /dev/sda2 /mnt/disc/ddrescueWinXPred.log


About to copy 10484 MBytes from /dev/sdb2 to /dev/sda2
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512  bytes
Max retries: 0  
Direct: no    Sparse: no    Split: yes    Truncate: no


Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:         0 B,  errsize:       0 B,  errors:       0
Current status
rescued:    10484 MB,  errsize:   12288 B,  current rate:        0 B/s
   ipos:     3159 MB,   errors:       3,    average rate:    4716 kB/s
   opos:     3159 MB,     time from last successful read:      37 s
Finished


En el cas d'una partició ntfs, serà una cosa així:

About to copy 463491 MBytes from /dev/sdb6 to /dev/sda3
    Starting positions: infile = 0 B,  outfile = 0 B
    Copy block size: 128 sectors
Sector size: 512  bytes
Max retries: 0  
Direct: no    Sparse: no    Split: yes    Truncate: no


Recordem enviar-nos per correu els registres.

3) Comprovem el disc

Reiniciem i fem:

sudo e2fsck -fp /dev/sda2
sudo e2fsck -fp /dev/sda3


Et voilà!

Per acabar, comprovem si el disc que fallava està en garantia, normalment de 2 a 5 anys segons la qualitat i el preu. Cas que el portem al servei tècnic convindrà, després d'haver-nos assegurat que la recuperació ha funcionat, esborrar el seu contingut o millor dit, escriure contingut nou per que l'anterior no es pugui recuperar. Ja que quan esborrem normalment, com ja hem explicat en altres ocasions, el que passa és que només s'indica al sistema que l'espai es lliure per poder ser utilitzat, però no s'esborra i es fàcilment recuperable amb eines com ara el systemrescuecd (8).

Per esborrar definitivament el disc podem fer (no deixeu de llegir el paràgraf anterior!):

Suposant que segueixi a /dev/sdb(9)(10):

Instal·lem el shred:

sudo apt-get install secure-delete

Esborrem el disc:

shred --verbose /dev/sdb


I esperem força, ja que ho fa tres cops!

I ara ja podem tornar el disc al servei tècnic, sabent que hem fet força difícil la recuperació de les nostres dades, tot i que no podem assegurar que sigui impossible ja que circula el rumor que les agències de les tres lletres tenen programes especialitzats per a estudiar les restes del camp magnètic sobre les àreas del disc que recordarien el que ha estat aplicat durant prou de temps. Però això ho deixem per a un altre dia.

Intentaré explicar el resultat de la reclamació del disc al fabricant ja que encara està en garantia. Tan si aconsegueixo un nou disc com si no, i explicaré qualsevol cas el tracte rebut pel meu venedor habitual des de fa molt de temps.

Referències:
1) http://galindaines.blogspot.com/2007/12/com-desar-una-partici-amb-partimage.html
2) http://www.sysresccd.org/forums/viewtopic.php?t=2139
3) http://dimitar.me/clone-disk-drives-with-ubuntu/
4) http://www.gnu.org/software/ddrescue/ddrescue.html
5) http://www.toad.com/gnu/sysadmin/index.html#ddrescue
6) http://galindaines.blogspot.com/2007/12/si-grcies-gmail-o-al-teu-espai-de-disc.html
7) http://superuser.com/questions/237247/how-do-i-add-a-apt-get-repository-without-editing-etc-apt-sources-list
8) http://www.sysresccd.org/
9) http://jschaferwilson.wordpress.com/2011/02/26/linux-howto-wipe-a-hard-drive/
10) http://ubuntuforums.org/showthread.php?t=2022447

Cap comentari:

Publica un comentari a l'entrada