Aqui está uma repostagem modificada e muito expandida da minha resposta à sua pergunta anterior:
sfill
do pacote secure-delete
pode fazer o que você quiser.
Ao contrário do zerofree (que funciona apenas com 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 é empacotada para o debian e o ubuntu. provavelmente outras distros também. se você precisar de código fonte, que pode ser encontrado nos arquivos debian se você não puder encontrá-lo em nenhum outro lugar.
NOTA: sfill só funciona em um sistema de arquivos montado. Se você preencher com zeros os arquivos de imagem do sistema host e não de dentro de uma VM, será necessário montar a imagem fs no host. O método exato varia dependendo do tipo de arquivo de imagem (por exemplo, qcow2 ou raw).
A montagem de imagens "brutas" é fácil e direta. Basta usar kpartx
no arquivo de imagem para criar um dispositivo de loopback e as entradas / dev / mapper / para cada partição podem ser montadas individualmente.
aqui está um script parcial modificado de um fragmento do script que eu uso para montar imagens do disco rígido do freedos inicializáveis pela rede (usado para atualizações do BIOS em máquinas onde o flashrom não funcionará):
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 são montáveis. true em meu caso de uso (uma imagem hd do freedos com uma partição). Não é verdade se uma das partições é, digamos, swap de espaço. Detectar tais partições e usar dd para zerar a partição swap é deixado como um exercício para o leitor:)
Esse método, ou uma variante dele, também deve funcionar para os volumes LVM.
Se suas imagens forem qcow, você poderá usar a ferramenta qemu-nbd
do pacote qemu-utils
, que apresentará o arquivo de imagem e suas partições como dispositivos de bloco de rede. / dev / nbd0 / dev / ndb0p1 - que pode ser usado de forma semelhante aos dispositivos / dev / mapper acima.
É possivelmente mais fácil e menos trabalhoso (mas consome mais tempo) usar qemu-img
para converter de qcow em raw, usar o método raw acima e depois converter a imagem bruta modificada de volta em qcow2 compactado. Isso provavelmente resultará em imagens ligeiramente menores do que usando o qemu-nbd, já que você estará compactando a nova imagem qcow2 quando estiver sendo criada.