dd loop input Arquivo para o dispositivo de saída?

1

Usar o /dev/zero para apagar um disco rígido é muito lento, por isso vou usar um arquivo preparado de 1GB com números aleatórios ou zeros.

Mas como posso fazer o loop deste arquivo com dd ?

dd if=loopfile of /dev/sdx 
    
por ThomasDr 17.04.2017 / 16:22

2 respostas

2

/dev/zero não está 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 use shred .

# shred -v -n 1 /dev/eraseme

Isso deve ir com (pseudo) dados aleatórios na velocidade total do disco rígido. Se for zero, então -n 0 -z , mas com shred , não será mais rápido que dados aleatórios.

    
por 17.04.2017 / 16:33
2

O problema aqui para você é que o tamanho de bloco padrão para dd é de 512 bytes, então são duas chamadas de sistema e duas solicitações de E / S por KB. Você tem dois milhões desses por GB; não admira que seja lento.

  • Não use dd . Use cat (é 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 pseudo-aleatórios, considere DBAN com um único passo . (Não se preocupe com multi-passe; qualquer passagem é suficiente ou você precisa de um martelo .)

por 17.04.2017 / 18:37

Tags