VMDK-Dateien per Powershell in VHD / VHDX konvertieren

Bei einer Migration von VMWare auf Hyper-V in der man virtuelle Maschinen übernimmt, muss man die VMDK-Dateien der VMs in VHD bzw. VHDX-Dateien umwandeln. Es gibt natürlich hier Tools wie den Starwind V2V Converter – aber wenn man mehrere VMDKs hat ist so ein graphisches Tool in dem ich für jede einzeln das Programm durchklicken muss natürlich nichts. Dafür gibt es beim Microsoft Virtual Machine Converter 2.0 schöne Powershell-Befehle mit denen man das erledigen – und natürlich auch scripten – kann.

Nach der Installation öffnet man eine Powershell als Administrator

Dann muss man erstmal die Module importieren

Import-Module ‚C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1‘

danach kann konvertiert werden – z.B:

convertTo-MvmcVhd -SourceLiteralPath C:\Migration\sv-db.vmdk -DestinationLiteralPath d:\Hyper-V\VHDs -VhdType FixedHardDisk -VhdFormat vhdx

Der Name der VHDX-Datei ist der der VMDK-Datei – hier also sv-db. Abgelegt wird die in unserem Beispiel also die sv-db-vhdx im Ordner d:\Hyper-V\VHDs.

Aussehen wird das dann zum Beispiel so:

mvmc

Das ganze kann man natürlich auch scripten:

cd /d c:\Migration
Import-Module ‚C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1‘
gci -Filter *.vmdk | foreach {ConvertTo-MvmcVhd -SourceLiteralPath $_.Fullname -DestinationLiteralPath D:\Hyper-V\VHDs -VhdType FixedHardDisk -VhdFormat vhdx}

Hier wird erst in den Ordner gegangen in dem die VMDK-Dateien liegen – hier also c:\Migration. Danach wird das Cmdlet geladen. mit gci (Alias für get-childitem) werden alle VMDK-Dateien aufgelistet und in den Konvertierungsbefehl geschickt. Es werden dann nacheinander alle VMDK-Dateien in unserem Zielordner (hier d:\Hyper-V\VHDs) als VHDX-Dateien konvertiert abgelegt.

Danach können die Maschinen angelegt werden.

Nähere Infos zu den Powershell-Befehlen gibt es in dem MVMC_cmdlets.doc beim Download.

Kommentar verfassen