Door verschillende Windows-computers te consolideren in virtuele machines op één server, kun je heel wat energiekosten en aanschaffingskosten besparen. Maar dat betekent niet dat je je Windows-cd's uit de kast moet halen en alle installaties opnieuw moet uitvoeren. Met wat handigheid kun je je bestaande Windows-installaties migreren naar virtuele machines, zonder dat je Windows en de applicaties die je erboven hebt geïnstalleerd opnieuw hoeft te installeren. Vorige keer toonden we dit procédé voor het migreren van een Linux-server.

Uiteraard bestaan er allerlei dure tools voor deze taak (zoals Microsofts System Center Virtual Machine Manager), maar we tonen hier dat het ook gratis kan. Want in veel gevallen doen die dure tools in principe niets wat je niet zelf kunt aanpakken.

Klonen

De eerste stap is exact dezelfde als bij het migreren van een Linux-server: kloon de harde schijf van de computer waarop je Windows geïnstalleerd hebt. Dit kun je met Clonezilla Live, met een Linux rescue-cd, live-cd of installatie-cd. Het uiteindelijke resultaat is een image op je virtualisatieserver die bit voor bit identiek is aan de originele harde schijf.

Gebruik je Hyper-V of Virtual PC als hypervisor, dan is een andere oplossing specifiek voor Windows het gratis programma Disk2vhd van het Microsoft Sysinternals-team, dat je harde schijf omzet naar een image in Microsofts VHD-formaat (Virtual Hard Disk).

Het verschil tussen Disk2vhd en heel wat andere tools die een P2V-conversie uitvoeren is dat je het Sysinternals-programma op een draaiend Windows-systeem kunt uitvoeren. Disk2vhd gebruikt de Volume Snapshot mogelijkheid die in Windows XP geïntroduceerd is, om een consistente snapshot te nemen van de harde schijf die je omzet. Het resulterende VHD-bestand kan zelfs aangemaakt worden op de fysieke schijf die je aan het omzetten bent, al verloopt dat dan wel trager. Disk2vhd werkt op Windows XP SP2 en Windows Server 2003 SP1 en hoger.

Boot de virtuele machine

Ook voor het booten van de virtuele machine verwijzen we gedeeltelijk naar het artikel over het migreren van een Linux-server. Als je een bit voor bit image hebt aangemaakt en KVM, Xen, VMware of VirtualBox als hypervisor gebruikt, kun je het image op dezelfde manier gebruiken als opstartschijf in een nieuwe virtuele machine. Wil je deze op Hyper-V of Virtual PC opstarten, dan moet je het image eerst nog omzetten naar het VHD-formaat:

$ qemu-img convert -f raw windows.img -O vpc windows.vhd

De andere optie, die we ook bij het Linux P2V-verhaal bespraken, is een nieuwe virtuele machine aanmaken met een nieuwe virtuele harde schijf, waaraan je dan het image toevoegt en van een ISO-bestand van Clonezilla Live of een rescue-cd opstart. Dan restore je het image naar de nieuwe virtuele harde schijf. Op deze manier zijn ook flexibeler restore-manieren mogelijk. Nadien ontkoppel je het ISO-bestand en het originele image van de virtuele machine en boot je de machine van de virtuele schijf die nu een kopie bevat van de originele schijf.

Wat er mis kan gaan

In de praktijk verloopt een P2V-migratie niet zo eenvoudig als het door de stappen hierboven lijkt. De kans is groot dat de virtuele machine niet boot en dat je rescue-taken moet uitvoeren. Voor een Windows-installatie geldt dit zelfs meer dan een Linux-installatie. Enkele redenen hiervoor zijn:

1. Een verschillende processor

Het spreekt voor zich dat je niet moet proberen een 64-bit Windows-installatie die op de originele 64-bit hardware draaide te migreren naar een 32-bit virtuele machine. Ook een verschil in het aantal (virtuele) processoren kan voor problemen zorgen. Dit kan allemaal opgelost worden door het juiste type virtuele machine te kiezen.

2. HAL

De Windows-kernel heeft een hardwareafhankelijk deel, de "Hardware Abstraction Layer" (HAL). De belangrijkste zijn Hal.ddl (een standaard pc), Halacpi.dll (ACPI) en Halaacpi.dll (ACPI en IO APIC). Als je Windows-installatie één HAL gebruikte op de fysieke computer, maar de virtuele machine die hardware niet ondersteunt, weigert je virtuele Windows te booten en krijg je het gevreesde "blauwe scherm" te zien.

De oplossing: start je virtuele machine vanaf de Windows-cd en voer een reparatie uit door R in te typen voor de Recovery Console. Die vraagt je dan een volgnummer voor welke Windows-installatie er moet worden gered, meestal gewoon 1. Geef het beheerderswachtwoord in als je er één hebt en druk anders gewoon op enter. Je krijgt nu een opdrachtregel te zien.

Typ op de opdrachtregel "cd System32" en druk op enter, daarna "expand D:\i386\HALACPI.DL_" (als D je virtuele cd-drive is en je de Halacpi HAL wilt installeren) en enter, en daarna "copy HALACPI.DLL HAL.DLL" en enter. Typ Y om te bevestigen dat je het originele bestand wilt overschrijven. Reboot daarna de virtuele machine.

3. Drivers

De kans is groot dat Windows in de virtuele machine blijft hangen tijdens het booten omdat het drivers inlaadt voor hardware die in de virtuele machine niet aanwezig is, of omdat het anderzijds drivers mist die in de virtuele omgeving nodig zijn. Dit los je op net zoals je dat bij een fysieke Windows-installatie doet: probeer in veilige modus op te starten door F8 in te drukken wanneer de virtuele machine opstart. Lukt dit, verwijder dan de problematische drivers of installeer de benodigde drivers. Zelfs al start je virtuele machine wel op, dan kan het nog altijd voorkomen dat bijvoorbeeld je netwerk niet werkt, omdat je drivers voor de virtuele netwerkinterface van de hypervisor mist.

4. MBR en bootconfiguratie

Het kan ook voorkomen dat Windows door het migreren naar een virtuele harde schijf van een andere grootte een corrupte bootsector heeft. Start je virtuele machine dan weer op vanaf de Windows-cd en open de recovery console. Typ nu achtereenvolgens de commando's "FIXMBR", "FIXBOOT" en "BOOTCFG /REBUILD" in om herstelwerkzaamheden uit te voeren.

5. Heractivatie van Windows

Na de migratie kan Windows je vragen om de Windows-activatiesleutel opnieuw in te geven, en het is zelfs mogelijk dat heractiveren via internet niet lukt. Dat komt wel eens voor als de originele Windows-installatie een OEM-versie (Original Equipment Manufacturer) was, die is gebonden aan de hardware van de computer waarbij de licentie aangekocht is. Wanneer de Windows-installatie dan de eerste keer in een virtuele machine wordt opgestart, herkent die dat ze niet meer op de originele hardware draait en triggert zo de heractivatie. De oplossing: voer een reparatie uit via de Windows-cd en voer een nieuwe licentiesleutel in (dus niet de OEM-licentiesleutel).

Hoe los je problemen op

De hiervoor vermeldde en andere problemen kun je meestal oplossen door je virtuele machine op te starten van een Windows of Linux rescue-cd of door op voorhand op de fysieke schijf al maatregelen te nemen, zoals het installeren van de drivers die later in de virtuele machine gebruikt zullen worden. De minder ernstige problemen kun je achteraf ook rechtzetten, tenminste als je virtuele Windows-machine boot. Denk hierbij aan het verwijderen van drivers die niet meer nodig zijn.

Na de migratie kun je eveneens je virtuele machine van een Linux rescue-schijf opstarten en dan je Windows-partities aankoppelen om bestanden te kopiëren of configuratiebestanden aan te passen. Gebruik je als hypervisor KVM in Fedora 11, dan krijg je ook eenvoudig toegang tot bestanden in het image via het programma guestfish, zoals we in het artikel over P2V-migratie van een Linux-installatie toonden.

Succes

Het succes van een P2V-migratie van een Windows-installatie hangt van allerlei factoren af en de details verschillen per hypervisor en per type Windows. Het vergt meestal wat meer moeite dan bij een Linux-distributie, maar toch is het vaak zonder dure tools mogelijk om een Windows-machine naar een virtuele machine om te zetten. Kom je er toch niet uit of wil je een groot aantal Windows-machines migreren, dan kan het de moeite zijn om toch naar de betaalde tools te kijken.

Bron: Techworld