Ich habe eine Reihe von Disk-Images, die mit ddrescue auf einer EXT-Partition erstellt wurden, und ich möchte deren Größe reduzieren, ohne Daten zu verlieren, während sie noch mounten können.
Wie kann ich den leeren Bereich im Dateisystem des Bildes mit Nullen füllen und die Datei dann in eine Datei mit geringer Dichte konvertieren, damit dieser leere Bereich nicht tatsächlich auf der Festplatte gespeichert wird?
Zum Beispiel:
> du -s --si --apparent-size Jimage.image
120G Jimage.image
> du -s --si Jimage.image
121G Jimage.image
Dies enthält jedoch nur 50 G reale Daten, sodass die zweite Messung viel kleiner sein sollte.
Dies wird angeblich den leeren Raum mit Nullen füllen:
cat /dev/zero > zero.file
rm zero.file
Wenn jedoch Dateien mit geringer Dichte transparent behandelt werden , wird möglicherweise eine Datei mit geringer Dichte erstellt, ohne dass etwas auf die virtuelle Festplatte geschrieben wird, was mich ironischerweise daran hindert, das Image der virtuellen Festplatte selbst in eine Datei mit geringer Dichte zu verwandeln. :) Macht es?
Hinweis: Funktioniert aus irgendeinem Grund, sudo dd if=/dev/zero of=./zero.file
wenn cat
dies nicht auf einem gemounteten Disk-Image der Fall ist.
sudo cat /dev/zero > zero.file
nicht, da Ihre Bash (ausgeführt wie Sie, nicht root) die Umleitung vor dem Ausführen des sudo
Befehls ausführt . Siehe unix.stackexchange.com/questions/1416/…