Seu método de preencher todo o espaço livre com zeros usando dd
deve funcionar absolutamente.
Talvez tenha sido detectado que você estava escrevendo zeros e, na verdade, não os escreveu (isso tornou o arquivo esparso). Tente escrever algum outro valor de byte?
dd if=/dev/zero bs=512 count=[count of free sectiors] |
tr \000 \001 >/home/fillitup
Em relação ao seu comentário entre parênteses "uma substituição deve ser feita, a necessidade de sobrescrever várias vezes é apenas um boato", o que não é aplicável de qualquer maneira. A alegada insuficiência de uma substituição diz respeito à recuperação física de dados da mídia. Nesse nível, seus dados são criptografados de qualquer maneira, por isso, mesmo que possam recuperar bits da mídia, esses bits são criptografados.