Physische Server in VMs umwandeln
Wollen wir eine Installation von Windows Server, die direkt auf einem Host installiert ist, zu einer virtuellen Maschine umwandeln, können wir hierfür das Tool disk2vhd von Windows Sysinternals nutzen. Das Tool lässt sich unter folgender Adresse herunterladen:
https://docs.microsoft.com/en-us/sysinternals/downloads/disk2vhd
Das Tool lässt sich einfach ausführen, man kann die Partitionen auswählen, von denen man eine VHD haben möchte, und diese auf einem Datenspeicher ablegen. Es lässt sich aktivieren, dass VSS-Snapshots genutzt werden, um ein crash-konsistentes Image der Festplatte zu bekommen.
Theoretisch ist es (bei aktiviertem VSS) möglich, die VHD auf einem Datenspeicher abzulegen, von dem man eine VHD erstellt. Das macht allerdings hin und wieder Probleme, deswegen rate ich davon ab.
Die VHD kopieren wir nun auf unser Hyper-V Hostsystem und tätigen, je nach Boot-Typ, noch ein paar Anpassungen.
Im Falle von MBR / BIOS
Einfach als Generation 1 in Hyper-V anlegen. Festplatte hinzufügen. Fertig.
Im Falle von EFI (neuere Datenträger)
Ein Windows-Installationsdatenträger wird benötigt – auf diesen bezieht sich auch die Info „neuere Datenträger“ im Titel. Wenn der letzte Befehl einen Fehler gibt, weiter unten schauen und dort neu starten, dann hast du einen älteren Datenträger erwischt.
Von dem Datenträger booten. Sprache und Tastatur auswählen, dann links unten Troubleshoot, CMD
diskpart
list disk
select disk 1
list volume
select volume <99MB Volume>
assign letter=A:
exit
Code-Sprache: PHP (php)
„list volume“ listet alle Volumes auf. Da müsste ein 99MB RAW vorhanden sein, den statt „<99MB Volume>“ oben. Sollte A: schon vergeben sein, kann natürlich ein anderer Laufwerksbuchstabe genommen werden, der muss dann nur unten auch angepasst werden
A:
bcdboot C:\windows /s A: /f UEFI
EFI bei älteren Datenträgern
Von dem Datenträger booten. Der erste Block an Anweisungen ist erst mal identisch, kann also geskippt werden, solltet ihr den oben schon ausgeführt haben. Sprache und Tastatur auswählen, dann links unten Troubleshoot, CMD
diskpart
list disk
select disk 1
list volume
select volume <99MB Volume>
format fs=fat32
assign letter=A:
exit
Code-Sprache: PHP (php)
Auch hier wieder, die Nummer des Volumes statt „<99MB Volume>“. Und auch hier kann statt A: jeder andere beliebige Buchstabe genommen werden.
A:
mkdir EFI
mkdir EFI\Microsoft
mkdir EFI\Microsoft\Boot
cd EFI\Microsoft\Boot
bootrec /fixboot
bcdboot C:\Windows /l de-de /s A: /f All