Usar o /dev/zero
para apagar um HDD é muito lento, então vou usar um arquivo preparado de 1GB com aleatório ou zeros.
Mas como posso fazer um loop com esse arquivo dd
?
dd if=loopfile of /dev/sdx
Responder1
/dev/zero
não é nada lento, talvez tudo que você precise seja dd bs=1M
. Deve fazer vários gigabytes por segundo, então o HDD/SSD é o gargalo.
# dd bs=1M status=progress if=/dev/zero of=/dev/null
234309550080 bytes (234 GB, 218 GiB) copied, 11 s, 21.3 GB/s
Ou apenas vá com shred
.
# shred -v -n 1 /dev/eraseme
Isso deve acompanhar dados (pseudo) aleatórios na velocidade total do HDD. Se for zero, -n 0 -z
mas com shred
ele não será mais rápido que dados aleatórios.
Responder2
O problema aqui para você é que o tamanho de bloco padrão dd
é 512 bytes, ou seja, duas chamadas de sistema e duas solicitações de IO por KB. Você tem dois milhões deles por GB; não admira que seja lento.
Não use
dd
. Usecat
(é muito mais rápido em muitas situações e raramente, ou nunca, mais lento):cat /dev/zero >/dev/sdX
Se você realmente precisa usar
dd
, aumente o tamanho do bloco para algo racional:dd if=/dev/zero bs=32M of=/dev/sdX
Se você estiver tentando apagar o disco com dados pseudoaleatórios, considereDBANcom uma única passagem. (Não se preocupe com múltiplas passagens; uma passagem é suficiente ou você precisa de umamartelo.)