在尝试dd
200GB Maxtor IDE硬盘的最后几个块时,我遇到以下错误:
$ dd if=/dev/zero of=/dev/sdc bs=4M status=progress
203901894656 bytes (204 GB, 190 GiB) copied, 7283.07 s, 28.0 MB/s
dd: error writing '/dev/sdc': Permission denied
48621+0 records in
48620+0 records out
208223076351 bytes (208 GB, 194 GiB) copied, 8379.27 s, 24.8 MB/s
这个错误甚至试图恢复后坚持dd
用seek=48620
,其中48620是要跳过的块的数量。为了确定这个错误是否是坏扇区的结果,我想以badblocks
同样的方式运行,从dd
失败的地方开始。
这将转换为badblocks
如此命令:
badblocks -svw -b 4000000 -c 500000 -p 1 -o /cygdrive/b/badblocks.txt /dev/sdc 199148543 48620
... -b 4000000
等于我在初始dd
驱动器时使用的4M块大小,而48620是first_block
指定badblocks
要从中开始的第一个块的选项。
但是,这会导致两个错误之一。要么非致命错误......
badblocks: Invalid argument during seekrs)
...在整个命令运行过程中出现,或者单个致命错误结束它:
Segmentation fault (core dumped)
即使设置为更合理的值,上述错误也会持续存在。-c
2000
此外,当我放弃尝试badblocks
在dd
失败的确切块上运行时,而是尝试简单地将first_block
选项增加到足够高的数字:
badblocks -svw -b 4000000 -c 1000000 -p 1 -o /cygdrive/b/users/hashim/desktop/maxtorbadblocks.txt /dev/sdc 199148543 12345678
...在不破坏命令的情况下出现以下错误的大量实例:
badblocks: Invalid argument during seekrs) again get several get the same error.