Итак, у меня есть жесткий диск, который выходит из строя. Я хочу стереть данные перед отправкой на замену. Я пытаюсь использовать dd if=/dev/zero of=/dev/sdXX
, но он останавливается при первой ошибке записи. Как я могу перезаписать диск нулями, игнорируя ошибки записи? conv=noerror
похоже, влияет только на входной файл.
5 ответов
попробуйте ddrescue вместо dd - он старается с ошибками
Параметры, которые я использовал с ddrescue, чтобы стереть диск /dev/sdb
(заполненный нулями от /dev/zero
) и записать вывод в файл log.txt
:
ddrescue --force /dev/zero /dev/sdb log.txt
Если вы просто хотите стереть диск, попробуйте dban
С сайта:
Darik Boot and Nuke ("DBAN") - это автономный загрузочный диск, который надежно стирает жесткие диски большинства компьютеров. DBAN автоматически и полностью удалит содержимое любого жесткого диска, который он может обнаружить, что делает его подходящей утилитой для массового или аварийного уничтожения данных.
Для записи, 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
Примечание. При большем размере байта пропущенные ошибки могут оставлять разделы читаемых данных чуть-чуть меньше выбранного вами размера в байтах, но все равно маловероятно, что кто-либо сможет получить что-либо из этих разделов после того, как весь диск будет пройден через процесс.
Кроме того, я уверен, что производители жестких дисков правильно утилизируют жесткие диски, которые возвращаются для гарантийной замены, в случае, если накопитель выйдет из строя до того, как вы сможете полностью завершить процесс перезаписи.
Определенно, это не решение для опытных пользователей, но если ошибки записи редки, вы можете просто продолжить вручную после их возникновения.
Теоретически вы можете написать что-нибудь, чтобы сделать это автоматически, но это не так тривиально, и я бы лучше написал инструмент, чтобы сделать трюк, чем беспокоиться о сценарии dd ..
seek=BLOCKS
skip BLOCKS obs-sized blocks at start of output