Sziasztok!
Egy USB pendrive-ról szeretnék adatokat visszamenteni dd-vel.
Azonban rengeteg bad sector van elszórva a meghajtón, amiket nem lehet olvasni.
A probléma az, hogy minden egyes ilyen rossz szektor olvasásakor 1-2 percet vár a Linux, így a 2 GB-os pendrive mentése akár hónapokig tarthat.
A parancs amit használok (dd-vel ugyanez):
dcfldd bs=512 conv=noerror,sync if=/dev/sdb of=pen.img
Hogyan lehetne állítani azt, hogy mennyit várjon egy sector olvasására (akár user space vagy kernel szinten)?
uname: 3.10.11-200.fc19.x86_64
Köszönöm.
- 4456 megtekintés
Hozzászólások
Itt van dmesg-ben egy példa a hibára:
[ 4871.991950] sd 28:0:0:0: [sdb] Unhandled error code
[ 4871.991955] sd 28:0:0:0: [sdb]
[ 4871.991958] Result: hostbyte=DID_ABORT driverbyte=DRIVER_OK
[ 4871.991961] sd 28:0:0:0: [sdb] CDB:
[ 4871.991963] Read(10): 28 00 00 00 f9 e8 00 00 f0 00
[ 4871.991973] end_request: I/O error, dev sdb, sector 63976
[ 4871.991977] quiet_error: 22 callbacks suppressed
[ 4871.991980] Buffer I/O error on device sdb, logical block 7997
[ 4871.991986] Buffer I/O error on device sdb, logical block 7998
[ 4871.991988] Buffer I/O error on device sdb, logical block 7999
[ 4871.991991] Buffer I/O error on device sdb, logical block 8000
[ 4871.991994] Buffer I/O error on device sdb, logical block 8001
[ 4871.991997] Buffer I/O error on device sdb, logical block 8002
[ 4871.991999] Buffer I/O error on device sdb, logical block 8003
[ 4871.992016] Buffer I/O error on device sdb, logical block 8004
[ 4871.992022] Buffer I/O error on device sdb, logical block 8005
[ 4871.992028] Buffer I/O error on device sdb, logical block 8006
Valahol csoportosan, valahol pedig egy-egy szektor hibázik csak..
- A hozzászóláshoz be kell jelentkezni
ddrescue ?
ddrescue -d -r1 /dev/old_disk /dev/new_disk # work with direct disk access on error areas
- A hozzászóláshoz be kell jelentkezni
Köszi, már próbálom is.
SZERK:
Nem jó, ugyanúgy perceket vár 1 hibás szektor esetén..
- A hozzászóláshoz be kell jelentkezni
Az alábbi módon sikerült lementenem a meghajtó nagy részét (végül kiderült hogy egy 200 MB-os részen helyezkednek el a hibás szektorok):
dcfldd bs=512 count=4608 conv=noerror,sync if=/dev/sdb of=pen4608.img
dcfldd bs=512 skip=390000 conv=noerror,sync if=/dev/sdb of=pen390000.img
dd bs=512 count=385392 if=/dev/zero of=pennull.img
cat pen4608.img pennull.img pen390000.img > penfinal.img
mount -t vfat penfinal.img /mnt/pen
Azért 385292, mert 390000-4608=385292.
Azonban még mindig érdekel az eredeti kérdés!
- A hozzászóláshoz be kell jelentkezni