Schritt 1: Den freien Speicher in Windows mit Nullen beschreiben
Windows markiert gelöschte Dateien nur als "frei", überschreibt sie aber nicht. Damit qemu-img weiß, was weg kann, müssen wir den freien Platz "nullen".
-
Starte die Windows-VM.
-
Lade das kleine Tool SDelete von Microsoft (Sysinternals) herunter: SDelete Download.
-
Öffne die Eingabeaufforderung (CMD) als Administrator und führe aus:
DOS
TXTsdelete64.exe -z c:(Dieser Befehl schreibt Nullen in alle freien Bereiche von Laufwerk C. Keine Sorge, deine Daten bleiben erhalten. Danach fahre Windows komplett herunter.)
Schritt 2: Das Image auf dem Host schrumpfen (Sparsifizieren)
Jetzt nimmst du das "genullte" Image und konvertierst es in eine neue Datei. QEMU erkennt die Ketten aus Nullen und lässt sie beim Schreiben weg.
-
Öffne dein Terminal auf Manjaro im Ordner
~/VMs. -
Stelle sicher, dass die VM ausgeschaltet ist.
-
Führe die Konvertierung aus:
Bash
TXTsudo qemu-img convert -O qcow2 Rockwell.qcow2 Rockwell_neu.qcow2
Schritt 3: Testen und Aufräumen
-
Prüfe die Größe der neuen Datei:
Bash
TXTls -lh Rockwell_neu.qcow2(Sie sollte jetzt massiv kleiner sein als die 113 GB).
-
Benenne die alte Datei um (Sicherheitshalber) und die neue in den Originalnamen:
Bash
TXTmv Rockwell.qcow2 Rockwell_backup.qcow2 mv Rockwell_neu.qcow2 Rockwell.qcow2 -
Starte die VM in Virt-Manager. Wenn alles läuft, kannst du das Backup löschen.
Profi-Tipp für die Zukunft (Trim/Discard)
Damit du das nicht manuell machen musst, kannst du Windows dazu bringen, gelöschte Blöcke sofort an den Host zu melden.
-
Ändere in Virt-Manager den Disk-Bus auf VirtIO SCSI (falls nicht schon geschehen).
-
Klicke auf "XML" (oben im Menü aktivieren unter Ansicht -> Details) und suche die
<driver>Zeile deiner Festplatte. Füge dortdiscard='unmap'hinzu:XML
TXT<driver name='qemu' type='qcow2' discard='unmap'/> -
Wenn du nun in Windows eine Datei löschst, wird der Platz (fast) zeitgleich auf deinem Manjaro-Host freigegeben. In Windows kannst du das manuell anstoßen, indem du "Laufwerke optimieren" suchst und auf "Optimieren" klickst (das sendet den TRIM-Befehl).