18

Итак, у меня есть жесткий диск, который выходит из строя. Я хочу стереть данные перед отправкой на замену. Я пытаюсь использовать dd if=/dev/zero of=/dev/sdXX , но он останавливается при первой ошибке записи. Как я могу перезаписать диск нулями, игнорируя ошибки записи? conv=noerror похоже, влияет только на входной файл.

5 ответов5

17

попробуйте ddrescue вместо dd - он старается с ошибками

12

Параметры, которые я использовал с ddrescue, чтобы стереть диск /dev/sdb (заполненный нулями от /dev/zero) и записать вывод в файл log.txt:

ddrescue --force /dev/zero /dev/sdb log.txt
3

Если вы просто хотите стереть диск, попробуйте dban

С сайта:

Darik Boot and Nuke ("DBAN") - это автономный загрузочный диск, который надежно стирает жесткие диски большинства компьютеров. DBAN автоматически и полностью удалит содержимое любого жесткого диска, который он может обнаружить, что делает его подходящей утилитой для массового или аварийного уничтожения данных.

2

Для записи, dd также имеет опцию conv=noerror чтобы пропустить ошибки. Если у вас были ошибки во входном файле (если вы не используете /dev/zero , вам нужно использовать conv=noerror,notrunc или conv=noerror,sync чтобы dd не обрезал выходной файл, где есть ошибки во входном файле. Для вашего запроса вы можете попробовать эту команду вместо:

dd if=/dev/zero of=/dev/sdXX conv=noerror  

Чтобы ускорить процесс и, возможно, избежать гибели накопителя в середине шага, вы также можете попытаться увеличить размер байта со стандартного 512 (что делает чтение dd посекторным, что медленным) до чего-то большего, например 4K ( что в восемь раз больше):

dd if=/dev/zero of=/dev/sdXX bs=4K conv=noerror  

Примечание. При большем размере байта пропущенные ошибки могут оставлять разделы читаемых данных чуть-чуть меньше выбранного вами размера в байтах, но все равно маловероятно, что кто-либо сможет получить что-либо из этих разделов после того, как весь диск будет пройден через процесс.

Кроме того, я уверен, что производители жестких дисков правильно утилизируют жесткие диски, которые возвращаются для гарантийной замены, в случае, если накопитель выйдет из строя до того, как вы сможете полностью завершить процесс перезаписи.

0

Определенно, это не решение для опытных пользователей, но если ошибки записи редки, вы можете просто продолжить вручную после их возникновения.

Теоретически вы можете написать что-нибудь, чтобы сделать это автоматически, но это не так тривиально, и я бы лучше написал инструмент, чтобы сделать трюк, чем беспокоиться о сценарии dd ..

   seek=BLOCKS
          skip BLOCKS obs-sized blocks at start of output

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