Acho que sua ideia pode funcionar.
Você pode gravar os dados diretamente no nó do dispositivo da unidade (por exemplo, /dev/sdd
). O comando rm
não é possível ou necessário (na verdade, ele não remove muitos dados, rm
apenas atualiza os metadados no sistema de arquivos. Você pode considerar escrever todos em um ciclo, seguido por todos os zeros no próximo ciclo.
O truque é fazer um contador persistente que você possa pegar após as reinicializações. Isso pode ser feito facilmente com um arquivo, no exemplo, o COUNT_FILE
é "$ HOME / .counter". A contagem pode ser menor que a real porque o sistema pode ter sido reinicializado ou etc antes que o dd
seja concluído.
Você também pode chamar algo assim em /etc/rc.local
para iniciá-lo automaticamente quando o sistema for inicializado.
#!/bin/ss
COUNT_FILE="$HOME/.counter"
read COUNT < "$COUNT_FILE"
if echo "$COUNT" | grep '[^0-9]' > /dev/null
then
echo >&2 "$0: ERROR: non-integer counter found in $COUNT_FILE."
exit 1
fi
while true
do
echo dd if=/dev/urandom of=/dev/sdd bs=61865984
COUNT=$(( COUNT + 1 ))
echo $(( COUNT )) > "$COUNT_FILE"
done
Você também pode investigar o comando badblocks
, que grava padrões no disco e os lê de volta. O bom de usar badblocks
é que ele grava, lê e compara cada byte em cada ciclo, portanto, você deve começar a ver mais e mais badblock
números quando o disco começar a falhar.
Além disso, se você acidentalmente pegar uma unidade USB diferente conectada como /dev/sdd
, você a destruirá completamente quando este script for executado.