Festplatte einer virtuellen Windows 10 Maschine in VMWare Fusion verkleinern

Festplatte einer virtuellen Windows 10 Maschine in VMWare Fusion verkleinern

Nachdem man einen Physikalischen Rechner virtualisiert hat, möchte man eventuell die Festplatten auf eine sinnvolle Größe verkleinern. Wenn hierbei die Datenträger auch noch dynamisch sind, und jede Menge seltsame Unterteilungen aufweisen, wird es kniffelig – ich hab es hinbekommen, und beschreibe hier, wie es geklappt hat.

Die Ausgangssituation:

Ein Kunde ist von seinem Sammelsurium verschiedener Windows-Laptops auf einen Mac umgestiegen. Bei den Buchhaltungsprogrammen (und den recht teuren Lizenzen dafür) jedoch, ist er noch auf Windows angewiesen. Der Buchhaltungsrechner hatte im Original Windows 7, wurde aktualisiert auf Windows 10, hatte eine 500 GB Platte. Also wurde auf dem Mac VMWare Fusion installiert, und das Originalsystem darauf virtualisiert. Allerdings war diese Platte in verschiedene Volumes unterteilt, abgesehen vom Hauptlaufwerk (unter Windows Laufwerk C:)  hatte diese Platte noch eine UEFI, eine LRS_ESP und ein RESCUE-Volume, und jeweils davor und dahinter noch verschiedene leere Bereiche, auf die auch die Datenträgerverwaltung von Windows nicht zugreifen konnte. Die Virtuelle Disk hatte auf dem Mac noch einen Platzbedarf von 300 GB, obwohl effektiv nur rund 73 GB belegt waren (Angabe von Windows bei laufendem Betrieb – also incl. Auslagerungsdatei), nachdem alle Programme deinstalliert wurden, die nicht in einem Gastsystem nötig sind(z.B. Treiber für spezifische Hardware und deren Zubehör, Skype und Co.). Mit den Boardmitteln von Windows und VMWare war dem nicht mehr beizukommen.

Nun gilt es:

  1. Das aktive Volume zu verkleinern
  2. Das verkleinerte Volume auf eine „neue“ Platte (dieser Größe) umzuziehen
  3. Windows wieder zum Starten zu motivieren
  4. die alte Platte löschen

1.: Das Verkleinern:

Das Original-Volume des Haupt-Laufwerks hatte rund 450 GB. Nach dem Löschen der nicht mehr benötigten Programme und einem Defragmentierungs Durchlauf von Windows, konnte ich das Volume zwar etwas verkleinern, aber nicht genug, da sich die Dateien recht großzügig über die Platte verteilt hatten. Auch das Abschalten der Auslagerungsdatei brachte noch ein paar GB. Eine bessere Defragmentierung musste her, ich hab zu JKDefrag gegriffen, was ich noch von früher kannte.

Danach konnte ich das Volume auf die Größe verkleinern, die die Daten beanspruchen – ich hab noch ein paar GIG dazu gepackt, es soll ja noch weitergehen mit dem System.

Das hat leider keine Wirkung auf den Platzbedarf im Host-System gehabt.

Also musste ich eine neue Virtuelle Disk anlegen, auf die ich „umziehe“.

Erstmal auf Nummer sicher gehen:

Bein Platten umziehen von Windows ist damit zu rechnen, das die kopierte Festplatte nicht startet. Zur reaktivierung der Disk muss man in die Wiederherstellung von Windows. Das geht, in dem man die Original Windows-Installations-DVD verwendet – über das Mac-Festplattendienstprogramm kann man davon ein Image machen und später davon booten. Ich musste mir in Ermangelung dieser DVD ein „Wiederherstellungslaufwerk“ einrichten: einen USB-Stick (mindestens 8 GB werden benötigt). Leider bietet VMWare Fusion keine Möglichkeit, einen USB-Stick oder ein beschreibbares DVD-Laufwerk zu virtualisieren – es muss also ein physikalisch existierendes Gerät verwendet werden. An dieser Stelle empfiehlt es sich, den USB-Stick fest der virtuellen Maschine zuzuweisen, damit man später auch davon booten kann. Das Herstellen desWiederherstellungslaufwerks offeriert Windows in der Systemsteuerung – am besten über die Suche nach „Wiederherstellungs“. Das dauert einige Zeit, in der Zeit kann man schon mal die nächsten Schritte vorbereiten:

Platte erzeugen und Partitionen kopieren

Mein Werkzeug der Wahl ist immer wieder eine GParted Live CD zu verwenden. Das kann man schon mal herunterladen in der entsprechenden Version.

Wenn der Rechner sein „Wiederherstellungslaufwerk“ fertig kopiert hat richtet man die neue Festplatte in Fusion ein – ich hab statt einer SCSI-Disk eine SATA-Platte kreiert, die rund 5 GB mehr Kapazität mitbringt, als mein verkleinertes Volume groß ist.

Das GParted-ISO-Image kann man in der Virtuellem Maschine als CD abbilden und dann als Startvolume deklarieren. Dann von diesem CD-Image booten.

Kurztipp: ENTER, ENTER, 10, ENTER, ENTER

Die neue Platte muss zunächst einen Bootrecord bekommen (MBR) – dann kan man alle Partitionen von der alten auf die neue Platte kopieren. Das sollte man auch machen, denn Windows benötigt die verschiedenen Bereiche. Die neue Platte sieht dann zwar genauso schlampig aus wie vorher, ist aber kleiner.

Das geht wie folgt: Oben rechts im GParted kann man die Ansicht der Platten umschalten, dort wählt man bei der alten Platte jeweils einen Eintrag nach dem nächsten an. Bei kopierbaren Volumes wird der COPY-Knopf (oben Mitte) aktiv, den drückt man dann und wechselt zur neuen Platte, dort wird dann der „Paste“-Knopf aktiv. Beim ersten Einfügeversuch bekommt man den Hinweis, das die neue Platte zunächst einen bootrecord braucht, und dort steht auch, was dazu zu machen ist – MBR ist voll OK.

Beim einfügen des ersten Volumes bitte 128 MB Platz davor lassen, damit die Windows Wiederherstellung noch platz für seine Metadaten hat.

Bei mir sah das so aus:

Die alte Platte im GParted: 

Neue Platte (nach dem Copy&Paste, und noch vor dem APPLY drücken):

Danach APPLY drücken und abwarten – die Dauer hängt von der Host-Performance und Datenmenge ab.

Umschalten

Danach die Virtuelle Maschine herunterfahren, Die alte Platte entfernen (zur Sicherheit ohne die Dateien zu löschen), und in den USB-Einstellungen sicherstellen, das der Stick noch verbunden ist!

Der Start der VM schlägt erwartungsgemäß fehl, man wird dann in die UEFI-Startoptionen geleitet und kann dort angeben, vom USB-Stick zu booten. Optimisten können in der Reparaturkonsole die automatische Wiederherstellung probieren, bei mir hat das nie geklappt.

Ich musste immer in die Konsole/Eingabeaufforderung.

Starte dann das Programm „diskpart“ (direkt eingeben und Enter drücken). Dann:
list disk zeigt die Festplatten an
select disk x wählt die Festplatte x aus
list part zeigt die Partitionen der Festplatte x an
select part y wählt die Partition y aus
detail part zeigt Infos zur Partition an; z.B. aktiv oder nicht, versteckt oder nicht
active aktiviert die Partition als Bootpartition (dies dann wählen)

Dann VM neu starten, USB-Stick Verbindung beim Neustart wieder aktivieren und wieder in die Eingabeaufforderung.

Dann

bootrec /fixmbr schreibt den Master Boot Record neu an den Beginn der Festplatte – dazu hatten wir vorne den Platz gelassen, genau wie für die Metainformationen, die wir jetzt erzeugen:

mit bootrec /scanos  kann man prüfen, ob das Volume, um das es uns geht, überhaupt korrekt erkannt wird, falls ja, ist schon mal sicher, das wir weitermachen können. Falls hier das Windows nicht aufgelistet wird, ist irgendwo davor etwas gewaltig schief gegangen.

Der Befehl bootrec /rebuildbcd kann dieses Volume dann wieder in den Boot-Manager eintragen.

Wenn das klappt, sind wir hier fertig, und können starten – bei mir war das nicht so, es kam eine Fehlermeldung: „das angeforderte Systemgerät kann nicht gefunden werden

OK, da stimmt also was mit der UEFI-Partition nicht -also werden wir entsprechende Boot-Daten da noch mal reinschreiben.

Um das Volume ansprechen zu können, benötigt es einen Laufwerksbuchstaben, diese weisen wir mit diskpart zu:

diskpart aufrufen.

Wie oben mit list disk , select disk und list part die Partitionen anzeigen lassen, und diesmal die UEFI-Partition auswählen mit select volume y .

Dann einen Buchstaben zuweisen, wir nehmen das V , assign letter =v:, dann mit exit aus dem diskpart wieder raus, und auf dem UEFI-Laufwerk in den richtigen Pfad wechseln mit cd v:\EFI\Microsoft\Boot\ und die bootdaten mittels
bcdboot C:\windows /s V: /f UEFI  
erzeugen.

Danach neu starten – ich musste menügeführt von Windows noch einmalig das Betriebssystem auswählen, und das wars, die VM läuft auf ihrer „80 GB Platte“, die sogar die leeren Bereiche noch ungenutzt hat.

Danach noch die alte Platte wieder einbinden, und entfernen mit Löschen (damit ich nicht die Dateien zusammensuchen muss, die dazu gehören).

Die Ordner anschließend im Vergleich:

Jetzt kann ich Windows wieder gestatten, eine Auslagerungsdatei zu erzeugen, größer als 80 GB kann der Ordner kaum werden.

Mit Auslagerungsdatei ist der Ordner noch 2 GB voller geworden. Schneller ist es deutlich, aber das auch damit zusammenhängen, das die VM nun vollständig auf den SSD-Teil des Fusion-Drives passt.


Informationen bezogen von:

 

Über den Autor

Christian Rehkopf administrator