Berikut adalah repost yang dimodifikasi dan diperluas dari jawaban saya untuk pertanyaan Anda sebelumnya:
sfilldari secure-deletepaket dapat melakukan apa yang Anda inginkan.
Tidak seperti zerofree (yang hanya bekerja dengan sistem file ext2, ext3, dan ext4), sfill akan bekerja dengan sistem file apa pun.
misalnya
sfill -l -l -z /mnt/X
Halaman beranda sfill / secure-delete sekarang tampaknya telah menghilang, tetapi dipaket untuk debian dan ubuntu. mungkin distro lain juga. jika Anda memerlukan kode sumber, itu dapat ditemukan di arsip debian jika Anda tidak dapat menemukannya di tempat lain.
CATATAN: sfill hanya berfungsi pada sistem file yang terpasang. Jika Anda nol-mengisi file gambar dari sistem host daripada dari dalam VM, Anda harus me-mount gambar fs pada host. Metode yang tepat bervariasi tergantung pada jenis file gambar apa itu (mis. Qcow2 atau mentah).
Memasang gambar 'mentah' mudah dan langsung. Cukup gunakan kpartxpada file gambar untuk membuat perangkat loopback dan / dev / mapper / entri untuk setiap partisi kemudian dapat dipasang secara individual.
inilah skrip parsial yang dimodifikasi dari fragmen skrip yang saya gunakan untuk me-mount gambar hard-disk freedos net-bootable (digunakan untuk pembaruan bios pada mesin di mana flashrom tidak berfungsi):
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"
CATATAN: mengasumsikan setiap partisi dalam gambar dapat dipasang. benar dalam kasus penggunaan saya (gambar hd freedos dengan satu partisi). tidak benar jika salah satu partisi, katakanlah, bertukar ruang. Mendeteksi partisi seperti itu dan menggunakan dd ke nol partisi swap dibiarkan sebagai latihan untuk pembaca :)
Metode ini, atau varian dari itu, harus bekerja untuk volume LVM juga.
Jika gambar Anda qcow maka Anda dapat menggunakan qemu-nbdalat dari qemu-utilspaket, yang akan menyajikan file gambar dan partisi-partisi sebagai perangkat blok jaringan - misalnya / dev / nbd0 / dev / ndb0p1 - yang dapat digunakan dengan cara yang mirip dengan / perangkat dev / mapper di atas.
Mungkin lebih mudah dan lebih mudah (tetapi lebih memakan waktu) untuk digunakan qemu-imguntuk mengkonversi dari qcow ke mentah, menggunakan metode untuk mentah di atas, dan kemudian mengubah gambar mentah yang dimodifikasi kembali ke qcow2 terkompresi. Ini mungkin akan menghasilkan gambar yang sedikit lebih kecil daripada menggunakan qemu-nbd karena Anda akan mengompres gambar qcow2 yang baru saat sedang dibuat.
sfillsarannya ? Sepertinya tidak memerlukan extX.