Aqui está um repost modificado e muito expandido da minha resposta à sua pergunta anterior:
sfill
do secure-delete
pacote pode fazer o que você quiser.
Diferente do zerofree (que funciona apenas com os sistemas de arquivos ext2, ext3 e ext4), o sfill funcionará com qualquer sistema de arquivos.
por exemplo
sfill -l -l -z /mnt/X
A página inicial sfill / secure-delete agora parece ter desaparecido, mas está empacotada para o debian e o ubuntu. provavelmente outras distros também. se você precisar de código fonte, isso pode ser encontrado nos arquivos debian, se você não puder encontrá-lo em nenhum outro lugar.
NOTA: sfill funciona apenas em um sistema de arquivos montado. Se você estiver preenchendo com zero os arquivos de imagem do sistema host em vez de dentro de uma VM, precisará montar a imagem fs no host. O método exato varia dependendo do tipo de arquivo de imagem (por exemplo, qcow2 ou bruto).
A montagem de imagens "brutas" é fácil e direta. Basta usar kpartx
no arquivo de imagem para criar um dispositivo de loopback e / dev / mapper / entradas para cada partição, em seguida, podem ser montados individualmente.
aqui está um script parcial modificado a partir de um fragmento do script que eu uso para montar imagens de disco rígido de freedos inicializáveis em rede (usadas para atualizações da bios em máquinas nas quais o flashrom não funciona):
image="myrawimagefile.img"
# use kpartx to build /dev/mapper device nodes
KP=$(kpartx -a -v "$image")
# now mount each partition under ./hd/
for p in $(echo "$KP" | awk '/^add map/ {print $3}') ; do
dm="/dev/mapper/$p"
fp=$(echo "$p" | sed -r -e 's/^loop[0-9]+//')
mkdir -p "./hd/$fp"
mount "$dm" "./hd/$fp"
sfill -l -l -v "./hd/$fp"
umount "$dm"
done
# now remove the loopback device and /dev/mapper entries
kpartx -d "$image"
NOTA: assume que todas as partições da imagem podem ser montadas. verdadeiro no meu caso de uso (uma imagem hd freedos com uma partição). não é verdade se uma das partições for, digamos, trocar espaço. Detectando essas partições e usando dd para zero, a partição swap é deixada como um exercício para o leitor :)
Esse método, ou uma variante dele, também deve funcionar para volumes LVM.
Se suas imagens são qcow, você pode usar a qemu-nbd
ferramenta do qemu-utils
pacote, que apresentará o arquivo de imagem e suas partições como dispositivos de bloco de rede - por exemplo, / dev / nbd0 / dev / ndb0p1 - que pode ser usado de maneira semelhante à / dispositivos dev / mapper acima.
É possivelmente mais fácil e menos complicado (mas demorado) para qemu-img
converter de qcow em raw, use o método para raw acima e, em seguida, converta a imagem bruta modificada novamente em qcow2 compactado2. Provavelmente, isso resultará em imagens um pouco menores do que no uso do qemu-nbd, pois você comprimirá a nova imagem qcow2 enquanto ela está sendo criada.
sfill
sugestão ? Parece que não requer extX.