2

У меня есть старый жесткий диск для ноутбука на 320 ГБ, который я собираюсь продать (или пожертвовать). Чтобы подготовить его, я использую 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 кБ на диске все еще есть ненулевые (и, вероятно, неслучайные) данные.

Этот диск подключен через внешний адаптер USB-SATA. Я попробовал это под Ubuntu и Cygwin, и увидел одинаковый результат в обоих случаях.

Есть ли какая-то опция, которую я должен передать dd которая бы помогла, или этот диск просто физически плох? У меня никогда не было проблем с этим, и он никогда не показывал плохих секторов, когда использовался для хранения файловой системы NTFS.

1 ответ1

0

При использовании дд я всегда использовал следующее:

dd if=<source> conv=sync,noerror of=<destination>

Я думаю, что вам просто нужно добавить параметр conv = sync, noerror, чтобы он продолжался, даже если обнаружит ошибку. Он просто напишет 0, где он не может читать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .