Voici une nouvelle version modifiée et bien plus étendue de ma réponse à votre question précédente:
sfill
du secure-delete
paquet peut faire ce que vous voulez.
Contrairement à zerofree (qui ne fonctionne qu'avec les systèmes de fichiers ext2, ext3 et ext4), sfill fonctionnera avec n'importe quel système de fichiers.
par exemple
sfill -l -l -z /mnt/X
La page d'accueil sfill / secure-delete semble maintenant avoir disparu, mais elle est empaquetée pour debian et ubuntu. probablement d'autres distributions aussi. si vous avez besoin de code source, celui-ci peut être trouvé dans les archives debian si vous ne le trouvez nulle part ailleurs.
REMARQUE: sfill ne fonctionne que sur un système de fichiers monté. Si vous remplissez à zéro les fichiers d'image à partir du système hôte plutôt qu'à partir d'une machine virtuelle, vous devrez monter l'image fs sur l'hôte. La méthode exacte varie en fonction du type de fichier image dont il s'agit (par exemple qcow2 ou raw).
Le montage d'images «brutes» est simple et direct. Utilisez simplement kpartx
le fichier image pour créer un périphérique de bouclage et / dev / mapper / entrées pour chaque partition peut ensuite être monté individuellement.
voici un script partiel modifié à partir d'un fragment du script que j'utilise pour monter des images de disques durs libérés net-bootable (utilisé pour les mises à jour du bios sur les machines où flashrom ne fonctionne pas):
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"
REMARQUE: cela suppose que chaque partition de l'image est montable. vrai dans mon cas d'utilisation (une image hd de freedos avec une partition). pas vrai si l'une des partitions est, disons, swap space. Détecter de telles partitions et utiliser dd pour mettre à zéro la partition de swap reste un exercice pour le lecteur :)
Cette méthode, ou une variante de celle-ci, devrait également fonctionner pour les volumes LVM.
Si vos images sont qcow, vous pouvez utiliser l' qemu-nbd
outil du qemu-utils
package, qui présentera le fichier image et ses partitions en tant que périphériques de bloc réseau - par exemple / dev / nbd0 / dev / ndb0p1 - qui peut être utilisé de la même manière que le / périphériques dev / mapper ci-dessus.
Il est peut-être plus facile et moins compliqué (mais plus long) d'utiliser qemu-img
pour convertir de qcow en raw, utilisez la méthode pour raw ci-dessus, puis reconvertissez l'image brute modifiée en qcow2 compressé. Cela entraînera probablement des images légèrement plus petites que l'utilisation de qemu-nbd car vous compresserez la nouvelle image qcow2 lors de sa création.
sfill
suggestion ? Il semble qu'il ne nécessite pas d'extX.