我试图拯救一个有读取错误的1TB磁盘。因为我没有一个空闲的1TB硬盘,我创建了一个由两个500GB硬盘组成的raid 0。维基百科 的第一次运行。
sudo ddrescue -f -n /dev/sdk /dev/md/md_test /home/user/rescue.map
ddrescue已经完成了这次运行 大约20小时后,超过7000个读取错误。 现在我试图做第二次运行。
sudo ddrescue -d -f -v -r3 /dev/sdk /dev/md/md_test /home/user/rescue.map
并读取非尝试过的块,但ddrescue给我这个。
GNU ddrescue 1.23
About to copy 1000 GBytes from '/dev/sdk' to '/dev/md/md_test'
Starting positions: infile = 0 B, outfile = 0 B
Copy block size: 128 sectors Initial skip size: 19584 sectors
Sector size: 512 Bytes
Press Ctrl-C to interrupt
Initial status (read from mapfile)
rescued: 635060 MB, tried: 0 B, bad-sector: 0 B, bad areas: 0
Current status
ipos: 1000 GB, non-trimmed: 0 B, current rate: 0 B/s
opos: 1000 GB, non-scraped: 0 B, average rate: 0 B/s
non-tried: 365109 MB, bad-sector: 0 B, error rate: 0 B/s
rescued: 635060 MB, bad areas: 0, run time: 0s
pct rescued: 63.49%, read errors: 0, remaining time: n/a
time since last successful read: n/a
Copying non-tried blocks... Pass 1 (forwards)
ddrescue: Write error: Invalid argument
我不知道这个写错是什么意思,我已经在手册上找过答案了。 任何帮助都是感激的!Thx!
过了一会儿,我找到了写入错误的原因,损坏的硬盘容量是931,5G,但raid 0的总容量只有931。3G.意识到这一点,而我仔细看了一下输出的。lsblk 命令,于是我用3块500G硬盘重建raid 0阵列,ddrescue现在可以正常工作了。
所以我用3个500G的硬盘重建raid 0阵列,ddrescue现在可以正常工作了。