Haikos Blog Blog von Haiko Hertes zu allen Themen rund um Microsoft und Datacenter

7Jun/160

Hyper-V: PowerShell-Skript um nicht benutzte bzw. verwaiste VHD / VHDX Dateien zu finden

Auf einem Hyper-V System sammeln sich über die Jahre einige virtuelle Festplatten-Dateien im VHD- bzw. VHDX-Format an. Aber werden diese wirklich noch alle gebraucht? Das ist häufig schwer zu sagen, da insbesondere durch das Löschen von VMs nur deren Beschreibungs-Dateien, nicht aber die Festplatten gelöscht werden. Ähnliches kann passieren, wenn man die Replikation einer VM beendet.

Um nun diejenigen VHDs, die von keiner VM mehr genutzt werden, zu finden, habe ich ein Skript geschrieben. Dieses berücksichtigt auch, dass sich mehrere VHD/VHDX Dateien in einer Differenzierungskette befinden könnten.

Das Skript sowie eine Beschreibung findet ihr hier:

https://gallery.technet.microsoft.com/scriptcenter/Get-AbandonedVHDs-V1-to-8bfb28d9

Dem Skript kann neben einem oder mehreren Suchordnern auch u.a. eine Option übergeben werden, die direkt die nicht benötigten Dateien löscht. Das ist aber nicht ganz ungefährlich, ggf. haben die VHDs ja eine andere Funktion und sind gar nicht für Hyper-V. Denkbar wäre z.B., dass ein iSCSI-Software-Target im Einsatz ist, oder aber auch die Windows Server Sicherung.

script

9Dez/130

Hyper-V 4.0: Live Größenänderung von virtuellen Festplatten

Eine der wirklich praktischen Neuerungen im Hyper-V 4.0 unter Windows Server 2012 R2 ist die Möglichkeit, eine virtuelle Festplatte im laufenden Betrieb zu vergrößern oder zu verkleinern. Dies funktioniert, wenn:

  • Die virtuelle Festplatte das VHDX-Format verwendet und
  • Am SCSI-Controller angebunden ist

Wenn man eine virtuelle Maschine der 2.Generation (Gen2-VM) verwendet, stellt sich die Frage nach der zweiten Bedingung nicht, da hier ja ohnehin nur noch SCSI zum Einsatz kommt.

In der Abbildung ist eine Muster-VM zu sehen, die neben ihrer OS-Platte noch über eine zweite Platte (VHDX, SCSI-Controller) mit 30GB verfügt:

vhdxresize1

vhdxresize2

vhdxresize3

Nun kann diese VHDX-Festplatte im laufenden Betrieb vergrößert werden. Dazu ist nur ein Klick auf “Bearbeiten” nötig:

vhdxresize4

Der Assistent führt einen dann durch die notwendigen Schritte, bei dem schließlich auch die gewünschte neue Größe angegeben wird: (Klick auf Bild für Vergrößerung)

 

vhdxresize5 vhdxresize6
vhdxresize7 vhdxresize8

 

Am Ende steht dann eine Festplatte mit mehr Speicher zur Verfügung, bei der anschließend noch die Partition erweitert werden muss:

vhdxresize9

PS: Die VHDX lässt sich auch verkleinern, allerdings nur, wenn die Partition im Inneren kleiner ist, als der Datenträger...

Weitere Informationen: http://technet.microsoft.com/en-us/library/dn282286.aspx

5Okt/110

Windows 7 als VHD installieren und sowohl nativ als auch in Hyper-V booten

Wenn man eine Windows 7 Installation sowohl nativ als auch in Hyper-V innerhalb eines Server 2008 R2 nutzen will, dann muss man folgendermaßen vorgehen, um am Ende ein und dieselbe Installation auf beide Arten booten zu können:

  • Windows Server 2008 R2 installieren
  • Mit Windows-7 DVD neustarten, Installation starten
  • Mittels [Shift]+[F10] die Commandshell öffnen
  • "diskpart" starten
    • "create vdisk file="C:\win7.vhd" type=expandable maximum=120000"  (für eine 120GB VHD)
    • "select vdisk file="c:\wim7.vhd""
    • "attach vdisk"
    • "exit"
  • Nun ist die vDisk bei der Auswahl des Zieldatenträgers für die Windows-7-Installation auswählbar
  • Nachdem die Installation durchgelaufen ist, wird ein zweiter Eintrag im Bootmenü erzeugt
  • Nun wieder Server 2008 booten, Hyper-V-Rolle installieren, neustarten
  • Server 2008 booten, Commandshell öffnen
    • diskpart
      • "select vdisk file="C:\win7.vhd"
      • attach vdisk
      • select part 1
      • active
      • assign letter=V
      • exit
    • Im Commandshell nach V:\Windows\System32 wechseln
      • "bcdboot.exe V:\Windows /s V:\"
      • "bcdedit /store V:\boot\BCD /set {bootmgr} device boot"
      • "bcdedit /store V:\boot\BCD /set {default} device boot"
      • "bcdedit /store V:\boot\BCD /set {default} osdevice boot"
    • Wieder zurück nach C:\
    • diskpart
      • select vdisk file="C:\Win7.vhd"
      • detach vdisk
      • exit
  • Server 2008 booten, dort im Hyper-V eine neue virtuelle Maschine erzeugen, als Festplatte die win7.vhd auswählen
  • Diese Maschine kann nun aus Hyper-V oder nativ beim starten des physischen Rechners gebootet werden