[pso] Really raw read de pe un block device

Mircea Bardac cs at mircea.bardac.net
Fri Mar 6 01:21:33 EET 2009


Octavian Voicu wrote:
> Ideea mea e sa fac un dump al intregului hdd stricat pe un hdd extern
> folosind dd.
> 
> Am folosit:
> 
> dd if=/dev/hda2 of=hda2.bin bs=4096 conv=noerror
> 
> Parametrul conv=noerror continua chiar daca apar erori pentru unele blocuri.
> 
> Functioneaza, dar sunt foarte multe blocuri consecutive care dau erori,
> urmate de alte sectiuni mari care merg fara probleme. Per total, intr-o
> noapte a copiat vreo 8 GB (din 120).
> 
> Intrebarea mea e daca se poate efectua un read foarte low level, fara
> retry-uri si fara error checking, astfel incat sa citeasca sectiunile bune
> si sa returneze garbage sau whatever pentru cele stricat. Astfel ar merge
> mult mai repede si ar returna cam acelasi lucru, cred eu (in momentul de
> fata fiecare bloc stricat inseamna sa astepte dupa un timeout si cred ca
> face si cateva retry-uri, din ce am vazut un dmesg).

Hmm.. been through this... some time ago. La fel am facut cu dd,
conv=noerror, "poate merge mai repede cu un bs mai mare...".

> Ca optimizare o solutie la care m-am gandit ar fi sa maresc block size-ul
> pentru dd (bs=40960 de exemplu), dar ma gandesc ca nu ar avea mare efect
> pentru ca oricum linux face un buffering al lui si nu s-ar schimba mare
> lucru.

Intr-adevar merge lent cu un bs mic. Nu mai stiu cum am rezolvat
problema - parca totusi am crescut bs-ul.

Mi se pare ca, daca se face bs mai mare si apare o eroare, tot blocul o
sa fie scris ca 0000...000 la destinatie, cu toate ca eroarea ar fi doar
intr-o parte a lui (nu sunt sigur de acest comportament though).

Intre timp am aflat de ddrescue [1] care ar trebui sa fie mai destept
decat dd la copierea datelor de pe un HDD-uri pe moarte - sincer, nu
l-am folosit, dar s-ar putea sa fie un punct mai bun de start.

Good luck.

P.S. Dupa experienta neplacuta pe care am avut-o, toate datele
importante se gasesc in cel putin 2 locuri [soon (si) intr-un sistem cu
 ZFS/RAIDZ [2]].

[1] http://www.gnu.org/software/ddrescue/ddrescue.html
[2]' http://en.wikipedia.org/wiki/Non-standard_RAID_levels#RAID-Z
[2]" http://blogs.sun.com/bonwick/entry/raid_z

-- 
Mircea
http://mircea.bardac.net


More information about the pso mailing list