Ecco un ripostaggio modificato e molto esteso della mia risposta alla tua domanda precedente:
sfill
dal secure-delete
pacchetto puoi fare quello che vuoi.
A differenza di zerofree (che funziona solo con filesystem ext2, ext3 ed ext4), sfill funzionerà con qualsiasi file system.
per esempio
sfill -l -l -z /mnt/X
La home page sfill / secure-delete sembra ora essere svanita, ma è confezionata per debian e ubuntu. probabilmente anche altre distro. se hai bisogno del codice sorgente, puoi trovarlo negli archivi debian se non lo trovi da nessun'altra parte.
NOTA: sfill funziona solo su un filesystem montato. Se stai riempiendo a zero i file di immagine dal sistema host anziché dall'interno di una VM, dovrai montare l'immagine fs sull'host. Il metodo esatto varia a seconda del tipo di file immagine (ad esempio qcow2 o raw).
Montare immagini "grezze" è semplice e diretto. Basta usare kpartx
il file immagine per creare un dispositivo di loopback e le voci / dev / mapper / per ciascuna partizione possono essere montate singolarmente.
ecco uno script parziale modificato da un frammento dello script che uso per montare immagini del disco rigido freedos avviabili in rete (utilizzate per gli aggiornamenti del BIOS su macchine in cui flashrom non funzionerà):
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: si presume che ogni partizione nell'immagine sia montabile. vero nel mio caso d'uso (un'immagine hd di freedos con una partizione). non è vero se una delle partizioni è, diciamo, spazio di swap. Rilevare tali partizioni e usare dd per azzerare la partizione di swap viene lasciato come esercizio per il lettore :)
Questo metodo, o una sua variante, dovrebbe funzionare anche per i volumi LVM.
Se le tue immagini sono qcow, puoi usare lo qemu-nbd
strumento dal qemu-utils
pacchetto, che presenterà il file immagine e le sue partizioni come dispositivi di blocco della rete - ad esempio / dev / nbd0 / dev / ndb0p1 - che possono essere usati in modo simile al / dispositivi dev / mapper sopra.
È probabilmente più facile e meno complicato (ma richiede più tempo) per qemu-img
convertire da qcow a raw, utilizzare il metodo per raw sopra, quindi riconvertire l'immagine grezza modificata in qcow2 compresso. Ciò comporterà probabilmente immagini leggermente più piccole rispetto all'uso di qemu-nbd poiché comprimerai la nuova immagine qcow2 mentre viene creata.
sfill
suggerimento ? Sembra che non richiede extX.