Festplattenimages von Parallels Desktop verkleinern

Da ich meine virtuelle Festplatte für Windows XP mit 32 GB etwas zu groß finde, möchte ich diese verkleinern. Solch eine Kombinationsaktion von Dateisystem verkleinern (NTFS), danach Partition und zum Schluss Festplattenimage anpassen scheint es direkt von Parallels nicht zu geben (setze hier Parallels Desktop 3.0 ein). Mit ein wenig Handarbeit und ner Linux-Rettungs-CD sollte das aber machbar sein.

Achtung: Diese Anleitung richtet sich bewusst NICHT an Leute, die nicht mit der Linux-Kommandozeile umgehen können. Mit den hier eingesetzen Tools kann man auch ziemlich viel kaputt machen! Wie immer sind alle Angaben ohne Gewähr. Backups schützen vor Datenverlust!

Der Plan

Zuerst verkleinern wir das Dateisystem auf die gewünschte Größe. Da das mit den verschiedenen Größen von Dateisystem, Partition und Festplatte meiner Erfahrung nach ein wenig tricky ist, mach ich die Verkleinerung in 2 Schritten: Im ersten Schritt wird eine Größe gewählt, die etwas unter unserer Zielgröße liegt (etwa 10%). Wenn dann Partition und Festplatte fertig sind, vergrößern wir das Dateisystem einfach auf die maximale Größe.

Da Parallels selbst ein Image nicht verkleinern möchte, legen wir einfach eine neue Festplatte an mit der gewünschten Größe. Nachdem wir dann Dateisystem und Bootsektor von der alten Platte rüberkopiert haben, wechseln wir einfach die entsprechenden Images in der Konfiguration der Virtuellen Maschine aus.

Vorbereitung

Zuerst werden wir das Image komprimieren, um das Backup zu vereinfachen. Dazu führen wir im virtualisierten Windows mit Hilfe der Parallel Tools eine Komprimierung der Festplatte durch. Das dauert ne Weile und schrumpft das Image auf ziemlich genau die Größe des verwendeten Speicherplatzes zusammen.

Während dieser Teil durch läuft, laden wir uns schonmal die aktuelle SystemRescueCD herunter. Ist die Komprimierung dann irgendwann abgeschlossen, beenden wir das virtualisierte Windows und kopieren uns einmal das betreffende Festplattenimage zu Backupzwecken weg (in meinem Fall winxp.hdd).

Linux-CD booten

Nun konfigurieren wir die Virtuelle Maschine so um, dass das Image der Linux-CD eingebunden ist und verändern die Boot-Sequenz, damit von der „CD“ gebootet wird. Nach dem Starten der Virtuellen Maschine starten wir das Linux-System.

Dateisystem verkleinern

Verkleinern können wir ein NTFS-Dateisystem mittels des Programms ntfsresize. Mittels des Parameters -s geben wir die gewünschte Größe an. In meinem Fall lautet der Befehl so: ntfsresize -s 9G /dev/sda1 (mein Ziel lautet 10G, aber aufgrund oben angesprochener Problematik ziehe ich nochmal 10% ab). Je nach Größe des Images kann dieser Vorgang nun eine ganze Weile dauern.

neues Festplattenimage

Im Anschluss fahren wir das Linux-System per halt herunter und erstellen eine 2. Festplatte mit dem neuen Festplattenimage. Dieses sollte nun die gewünschte Größe enthalten. Statt eine „expandierenden“ Images wähle ich ein einfaches Format mit fester, bereits reservierter Dateigröße, da ich dem Wachsen des Festplattenimage etwas skeptisch gegenüber stehe, wenn da schon einmal FileVault mit sämtlichen damit verbundenem Overhead darunter liegt. Das ist aber auch eher Glaube denn Wissen.

Dateisystem auf neues Image kopieren

Nach einem erneuten Start der Virtuellen Maschine booten wir per disk1 von der Windows-Platte und lassen chkdsk durchlaufen. Nach dem folgenden Neustart geht es nun an das Kopieren auf das neue Image. Zuerst kopieren wir den MBR der alten Platte: dd if=/dev/sda of=/dev/sdb bs=512 count=1

Da die neue Festplatte nun auch die Partitionstabelle der alten Platte geerbt hat, die jedoch höchstwahrscheinlich nicht mit der neuen Platte funktioniert, müssen wir diese zurücksetzen und neu erstellen. Hier hilft cfdisk mit dem Parameter -z weiter: cfdisk -z /dev/sdb. Als Partitionstyp wählen wir „HPFS/NTFS“.

Nun können wir mittels ntfsclone das Dateisystem kopieren: ntfsclone –overwrite /dev/sdb1 /dev/sda1. Auch dies kann wieder je nach Größe des Dateisystems eine Weile dauern.

Festplattenimage wechseln

Nach dem Kopieren wird das Linux-System wieder heruntergefahren und nun entfernen wir die 2. Festplatte und legen für die 1. Festplatte das neue Image fest. Nach einem erneuten Start der Virtuellen Maschine und der Eingabe von disk1 sollte nun wieder Windows booten.

Hat das alles geklappt, so booten wir zum Abschluss nochmal das Linux-System und vergrößern das Dateisystem auf die komplette Größe der Festplatte: ntfsresize /dev/sda1. Das Vergrößern ist in wenigen Sekunden abgeschlossen. Jetzt entfernen wir noch das CD-Image aus der Konfiguration und fertig ist unser neues kleineres Festplattenimage.

Schreibe einen Kommentar