Мне нужно стереть жесткий диск, прежде чем отдать его, но я хочу иметь возможность делать это порциями, чтобы я мог остановиться и возобновить работу в различных точках в середине. Например, если для очистки диска потребуется 24 часа, а у меня есть блоки по 6-8 часов каждую ночь, я бы хотел подключить жесткий диск USB к ноутбуку, чтобы стереть его в течение ночи, отключить и забрать ноутбук в утром, а затем возобновить на следующую ночь, пока это не будет полностью сделано.
Я использую dd
из терминала Linux, например
$ nohup dd if=/dev/zero of=/dev/sdX bs=1M &
Первоначально я думал просто следить за его ходом с помощью kill -USR1 ${ddpid}
, отслеживать его, а затем возобновлять с того места, где остановился после прерываний. Я сразу не полюбил это, так как с первой попытки запутался в математике и потерял время на повторную очистку уже вытертой области.
Сейчас я рассматриваю возможность разбиения диска заранее, а затем стираю каждый раздел по одному или пару за раз. Поскольку это диск объемом 4 ТБ, я не смог преодолеть границу 2 ТБ с помощью fdisk
, поэтому я использовал gdisk
для создания новых разделов:
Device Start End Sectors Size Type
/dev/sdb1 2048 589826047 589824000 281.3G Linux filesystem
/dev/sdb2 589826048 1179650047 589824000 281.3G Linux filesystem
/dev/sdb3 1179650048 1769474047 589824000 281.3G Linux filesystem
/dev/sdb4 1769474048 2359298047 589824000 281.3G Linux filesystem
/dev/sdb5 2359298048 2949122047 589824000 281.3G Linux filesystem
/dev/sdb6 2949122048 3538946047 589824000 281.3G Linux filesystem
/dev/sdb7 3538946048 4128770047 589824000 281.3G Linux filesystem
/dev/sdb8 4128770048 4718594047 589824000 281.3G Linux filesystem
/dev/sdb9 4718594048 5308418047 589824000 281.3G Linux filesystem
/dev/sdb10 5308418048 5898242047 589824000 281.3G Linux filesystem
/dev/sdb11 5898242048 6488066047 589824000 281.3G Linux filesystem
/dev/sdb12 6488066048 7077890047 589824000 281.3G Linux filesystem
/dev/sdb13 7077890048 7667714047 589824000 281.3G Linux filesystem
/dev/sdb14 7667714048 7814037134 146323087 69.8G Linux filesystem
Я запускаю dd
обратном направлении от sdb14 до sdb1 только для того, чтобы все было прямо.
Когда я заканчиваю каждый раздел, я собираюсь вернуться в fdisk/gdisk и удалить раздел, даже если весь диск не стерт.
Как только я закончу со всеми разделами, я планирую также стереть начало диска:
$ dd if=/dev/zero of=/dev/sdX bs=1M count=512
(Я понимаю, что 512 - это немного излишне; пожалуйста, не стесняйтесь указывать лучший номер в комментариях.)
Достигнет ли это моей цели - вытереть диск полностью, по частям, не оставляя ни одного пропущенного пробела?