Hier ist ein modifizierter und viel erweiterter Repost meiner Antwort auf Ihre vorherige Frage:
sfill
aus dem secure-delete
Paket kann machen, was Sie wollen.
Im Gegensatz zu zerofree (das nur mit ext2-, ext3- und ext4-Dateisystemen funktioniert) funktioniert sfill mit jedem Dateisystem.
z.B
sfill -l -l -z /mnt/X
Die Homepage sfill / secure-delete scheint nun verschwunden zu sein, ist jedoch für Debian und Ubuntu verpackt. wahrscheinlich auch andere Distributionen. Wenn Sie Quellcode benötigen, finden Sie diesen in den Debian-Archiven, wenn Sie ihn nirgendwo anders finden.
HINWEIS: sfill funktioniert nur auf einem gemounteten Dateisystem. Wenn Sie die Image-Dateien nicht vom Host-System aus, sondern vom Host-System aus füllen, müssen Sie das fs-Image auf dem Host bereitstellen. Die genaue Methode hängt von der Art der Bilddatei ab (z. B. qcow2 oder raw).
Das Mounten von "Rohbildern" ist einfach und unkompliziert. Verwenden Sie einfach kpartx
die Image-Datei, um ein Loopback-Gerät zu erstellen, und / dev / mapper / entry für jede Partition kann dann einzeln gemountet werden.
Hier ist ein Teilskript, das von einem Fragment des Skripts geändert wurde, das ich zum Mounten von netzstartfähigen Freedos-Festplattenabbildern verwende (wird für BIOS-Updates auf Computern verwendet, auf denen Flashrom nicht funktioniert):
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"
HINWEIS: Es wird davon ausgegangen, dass jede Partition im Image bereitgestellt werden kann. true in meinem Anwendungsfall (ein freedos hd-Image mit einer Partition). Nicht wahr, wenn eine der Partitionen beispielsweise Swap Space ist. Das Erkennen solcher Partitionen und die Verwendung von dd zum Nullstellen der Swap-Partition bleibt dem Leser als Übung :)
Diese Methode oder eine Variante davon sollte auch für LVM-Volumes funktionieren.
Wenn Ihre Bilder qcow sind, können Sie das qemu-nbd
Tool aus dem qemu-utils
Paket verwenden, das die Bilddatei und ihre Partitionen als Netzwerkblockgeräte darstellt - z. B. / dev / nbd0 / dev / ndb0p1 -, die auf ähnliche Weise wie das / verwendet werden können Dev / Mapper-Geräte oben.
Es ist möglicherweise einfacher und weniger mühsam (aber zeitaufwändiger) qemu-img
, von qcow nach raw zu konvertieren, die oben beschriebene Methode für raw zu verwenden und dann das modifizierte Rohbild wieder in komprimiertes qcow2 zu konvertieren. Dies führt wahrscheinlich zu etwas kleineren Bildern als bei Verwendung von qemu-nbd, da Sie das neue qcow2-Bild beim Erstellen komprimieren.
sfill
Vorschlag ausprobiert ? Es sieht so aus, als würde extX nicht benötigt.