我有一个旧的 320 GB 笔记本电脑硬盘,我准备出售(或捐赠)。为了准备它,我先dd
写入一次随机数据,然后写入一次零:
dd if=/dev/urandom of=/dev/sdb
dd if=/dev/zero of=/dev/sdb
在这两种情况下,它都快到达磁盘末端,然后失败:
dd: error writing '/dev/sdb': Input/output error
用来od /dev/sdb
验证零写入,我看到:
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
4520565200000 150636 113232 106346 032136 015617 116562 007414 032774
4520565200020 122317 125101 056551 105476 117454 153132 054340 177042
4520565200040 036343 143567 116241 045303 146340 016110 034246 150020
...snip...
4520565257720 100673 143151 002110 144654 065605 120456 070460 106051
4520565257740 032350 125132 022255 032441 074515 142667 117313 127115
4520565257760 035414 166734 072432 032526 061274 137236 117436 156032
4520565260000
...这表明归零基本成功,但4520565260000 - 4520565200000 = 60000 octal
磁盘的最后()24 kB 仍然有非零(并且可能是非随机的)数据。
此磁盘通过外部 USB 转 SATA 适配器连接。我在 Ubuntu 和 Cygwin 下都尝试过,两种情况下的结果相同。
我应该尝试一些dd
有帮助的选项吗,还是这个磁盘只是物理上有问题?我从来没有遇到过这个问题,当它曾经拥有 NTFS 文件系统时,它从来没有显示过任何坏扇区。
答案1
使用 dd 时我总是使用以下内容:
dd if=<source> conv=sync,noerror of=<destination>
我认为您只需添加 conv=sync,noerror 选项,这样即使检测到错误它也会继续。它只会在无法读取的任何地方写入 0。