Consultant Informatique Réseau et Internet

20 janvier 2010

Proxmox: Convertir une VM Windows VMware en KVM Proxmox

Si, comme moi, vous avez abandonné VMWare (trop lourd) au profit de Proxmox (open source), il vous faudra peut-être convertir des VM Windows VMware en KVM Promox.

La procédure pour convertir une machine virtuelle Windows sous VMware en machine virtuelle KVM sous Promox est assez simple, mais peut révéler quelques difficultés inattendues.

Cet article est rédigé à partir de VMware Server 2.0, Proxmox 1.4 (qemu-img 0.11.0), et pour OS invité Windows Server 2003 et Windows XP (vraisemblablement cette procédure est compatible avec les autres versions de Windows).

Préalable important:

Compte tenu du changement de matériel détecté par Windows, votre licence sera vraisemblablement désactivée et vous devrez suivre à nouveau la procédure d’activation. Et malheureusement, cela n’est parfois pas sans douleur, surtout lorsque le support Microsoft, totalement insensible à vos difficultés, vous expliquera qu’il faut souscrire un contrat de support pour obtenir de l’aide à activer votre Windows acheté au prix fort.  En effet, si l’activation échoue c’est votre faute, il est donc normal de payer pour obtenir de l’aide. Ravalez votre rage, Bill est le plus fort. Mais, n’oubliez pas et apprenez la leçon, la prochaine fois, choisissez un système Linux. Vous ne le regretterez pas.

Bref, avant d’entamer la conversion de votre VM Windows VMWare vous devez, en cas de besoin, disposer :

  • d’une licence sans activation (open ou autre)
  • ou, des éléments permettant de réactiver la license: la clé d’installation et, si nécessaire, les éléments pour convaincre Microsoft que votre demande de ré-activation est conforme aux termes de la licence.
  • des fichiers ISO images des CD d’installation correspondant à la version de Windows installée dans la VM.

1) Enlever VMTools

Il est recommandé de désinstaller WMware Tools si ces outils sont installés dans votre machine virtuelle. Pour cela, dans une session Windows supprimez “WMware Tools”

2) Configuration DHCP

Si votre VM Windows utilise une IP fixe, il est préférable de changer la configuration pour DHCP avant d’entamer la conversion. Cela permet d’éviter des messages d’erreur lors de la configuration réseau dans la VM Promox. Mais, ce n’est pas obligatoire. Le problème étant (après conversion) que l’IP fixe sera associée à une carte réseau qui n’existe plus.

3) Noter les caracteristiques matériel de la VM source:

Toujours sous WMware, notez les caractéristiques matériels de la VM:

  • quantité de mémoire
  • type de disque IDE/SCSI
  • adresse MAC
  • taille disque dur

En créant une VM Promox aux caractéristiques le plus proches possible de la VM WMware d’origine, vous pourrez, peut-être, éviter de désactiver la licence Windows.

Vous pouvez maintenant arrêtez la VM VMware.

4) Aplatir le fichier disque virtuel (vmdk)

Si votre disque virtuel VMware est découpé en fichiers de 2Go, il faut l’aplatir, c’est a dire recombiner tous les fichiers de 2G pour former un seul fichier.

# ls
# win2003.vmdk
# win2003-f001.vmdk
# win2003-f002.vmdk
# win2003-f003.vmdk …

Pour ce faire, il suffit d’utiliser l’utilitaire “vmware-vdiskmanager” (sur le serveur WMware):

# vmware-vdiskmanager -r win2003.vmdk -t 0 win2003-pve.vmdk

note: -t 0 = -t zéro

5) Créer une VM promox KVM avec les mêmes caracteristiques que la VM WMware

Créer une nouvelle VM KVM Proxmox ayant le maximum de caractéristiques semblables à la VM WMware (taille mémoire, taille et type disque dur, adresse MAC)

Ne pas démarrer la VM à ce stade.

6) Copier le fichier plat vmdk sur le serveur proxmox

Tous les moyens sont bons: disque USB, réseau, DVD … le but étant de copier le fichier plat .vmdk sur votre serveur Proxmox.

7) Convertir le fichier plat vmdk en qcow2

Pour convertir le fichier .vmdk (plat) en .qcow2 il suffit d’utiliser l’utilitaire “qemu-img” installé par défaut avec la distribution Proxmox:

# qemu-img convert win2003-pve.vmdk -O qcow2 /var/lib/vz/images/<VMID>/win2003.qcow2

notes:

  • -O = -O majuscule (pas zéro)
  • le fichier disque .qcow2 final doit être dans le répertoire “/var/lib/vz/images/<VMID>”
  • remplacer <VMID> par le VMID de la VM créée précédemment

8 ) Modifier le fichier config de la VM:

Le but de cette étape est de remplacer le disque virtuelle vide de la nouvelle VM par le disque .qcow2 provenant du fichier .vmdk. Pour cela, il suffit d’éditer le fichier de configuration de la VM et de remplacer le nom du fichier disque:

# nano /etc/qemu-server/<vid>.con
name: mavm
ide2: cdrom,media=cdrom
vlan0: rtl8139=9A:B5:25:E7:DD:BE
bootdisk: ide0
ostype: w2k3
ide0: local:102/win2003.qcow2  <<< remplacer par le fichier .qcow2
memory: 2048
onboot: 1
sockets: 1

9) Démarrer la VM dans l’interface web Proxmox

La VM doit démarrer sans problème, c’est à dire que son “status” doit indiquer “running”:

Attention, cela ne signifie pas que Windows boot correctement, mais simplement que l’image .qcow2 issue de la VM WMware est valide.

Si vous avez spécifié la même adresse MAC pour les VM  VMware et Promox, pensez à arrêter la VM VMware source avant de démarrer la nouvelle VM Promox. Sinon vous aurez un magnifique conflit d’adresse MAC.

10) Vérifier le fonctionnement de Windows

Toujours dans l’interface Web de Proxmox, cliquer sur [Open VNC Console] pour ouvrir la console de la VM Windows. Cette dernière est utilisable même si l’OS invité ne boot pas correctement.

Si Windows boot correctement, vous avez de la chance, il vous faut maintenant essayer d’ouvrir une session pour savoir si votre licence Windows a été ou non désactivée.

Si vous avez moins de chance, l’OS invité ne boot pas correctement, c’est à dire qu’en cours de boot, Windows affiche un BOSD (Blus Screen Of Death) et reboot automatiquement, et ainsi de suite en boucle infinie.

Rassurez-vous, rien n’est encore perdu. A ma connaissance, il s’agit d’un problème courant d’incompatibilité matériel entre la VM kvm/Proxmox et l’installation de Windows sous VMware. Pour résoudre le problème, il faut effectuer une installation de réparation (repair install).

Si l’erreur indiquée est du type

STOP: 0×0000007B (0xF741B84C,0xC0000034,0×00000000,0×00000000)
INACCESSIBLE_BOOT_DEVICE

cela signifie que Windows ne reconnait pas le type matériel de disque dur. En effet, la base de registre contient des informations spécifiant le type de disque détecté par Windows lors de l’installation dans la VM VMware . Au démarrage, Windows chargera uniquement le driver en question et donc risque d’échouer au boot en cas d’un type de disque différent. Dans son article ID314082, Microsoft présente une procédure visant à supporter tous les types de disques nativamment reconnu par Windows:

- ID314082: http://support.microsoft.com/kb/314082/en-us
- fichier mergeide.reg: http://www.proxmox.com/cms_proxmox/cms/upload/misc/mergeide.reg

A ce stade, vous pouvez tenter la procédure décrite ci-dessus, ou passer directement au “repair install” ci-dessous.

11) Démarrer la VM sur le CD d’installation de Windows pour effectuer un “repair install”

Comme indiqué en début d’article, pour cette étape, vous devez disposer :

  • de la clé d’installation Windows
  • du/des fichier(s) ISO des CD/DVD d’installation de Windows correspondant à votre installation. Il semble que l’emploi de CD d’installation incluant un Service Pack de version supérieure à l’installation d’origine fonctionne.

Suivre cette étape uniquement si Windows ne boot pas correctement. En principe, un repair install préserve l’ensemble de votre système, à savoir, les utilisateurs, les applications installées et tous les paramétrages (mais pas les services pack). Sachez qu’il vous sera demandé la clé d’installation et qu’il vous faudra activer votre license Windows.

A. Charger le ou les fichiers ISO (correspondant au CD d’installation de Windows) sur votre serveur Proxmox:

- soit par l’interface Web, via [VM Manager >> ISO Images >> upload]

- soit par SFTP avec WinSCP, en transférant les fichiers dans le répertoire [/var/lib/vz/template/iso]

B. Affecter le fichier ISO au lecteur de CD-ROM virtuel

Via l’interface Proxmox, sélectioner le fichier .ISO

[VM  Manager >> Virtual Machines >> VID >> Hardware >> CD-ROM Drives >> fleche rouge >> edit]

C. Configurer la VM pour booter sur le CD-ROM

Via l’interface Proxmox, sélectionner [CD-ROM] comme [First boot device] et [None] pour Second et Third.

D. Démarrer la VM et booter Windows sur le CD-ROM

Pour cela, appuyer sur [Reset], puis [Start], et enfin [Open VNC console]

Dans le fenêtre VNC console, lorsque s’affiche ”Press any key to boot from CD …..”, appuyer sur une touche. Les lignes défilent vite (en particulier si votre serveur Promox est raccordé à votre LAN) et il peut être nécessaire de tenter plusieurs fois avant de réussir.

La suite correspond à une installation de réparation standard de Windows:

Faites [ENTER] (et non pas “R”)

Acceptez la license avec [F8], l’installation doit alors détecter l’installation existante

Sélectionner le répertoire de votre installation, puis entrer [R] pour “repair”.

Il suffit alors de suivre les étapes de l’installation de réparation standard:

curieusement, il vous faudra entrer la clé:

A la fin du processus, votre VM doit redmarrer et Windows booter correctement

E. (Ré)activer la license Windows

Entrer un login/password administrateur.

Si Microsoft daigne vous accorder quelques jours de grâce, vous pourrez ouvrir une session Windows et, si nécessaire, peaufiner votre configuration réseau, et enfin, activer en ligne.

Dans le cas contraire, vous lirez peut-être le message ci-dessous et serez dans l’obligation d’activer avant d’ouvrir une cession. Si votre configuration réseau est incorrecte, vous devrez activer par téléphone.

Dans tous les cas la procédure d’activation commence, en principe, par cet écran:

Si ce n’est pas le cas, cela signifie que l’application Microsoft en charge de l’activation (msoobe.exe) perd les pédales.

En cas d’absence de délais de grâce, vous ne verrez aucun message d’erreur s’afficher et serez ramenez directement à l’écran de login Windows.

Dans le cas de Windows Server 2003, il peut s’agir d’une incompatibilté entre Internet Explorer 7 et msoobe.exe qui peut être contourné en suivant la procédure décrite dans l’article Microsoft ID932442 (http://support.microsoft.com/kb/932442).

Si msoobe.exe fonctionne mais que l’activation échoue (c’est à dire qu’un serveur de Microsoft a refusé la demande d’activation de votre Windows pour la clé indiquée) vous devrez appeler le support Microsoft pour les convaincre que votre demande de ré-activation est légitime. Dans le cas d’une license “retail” (licence en boite acheté indépendamment d’un PC), il suffit, en principe, d’indiquer que vous avez ré-installez Windows sur une nouvelle machine qui remplace l’ancienne. Dans le cas d’une licence OEM (fournie avec un PC), celle-ci est exclusivement attachée à la machine physique et donc seul une ré-installation sur la même machine est autorisée. Pour information, si vous remplacer la carte mère par un modèle différent, cela sera considéré comme une machine différente, et donc cela nécessitera une nouvelle licence.

L’historique d’activation d’une installation Windows est stockée dans le fichier WPA.DBL. Il semble qu’en sauvegardant et restaurant (en mode safe boot) ce fichier il soit possible de revenir à un état antérieur d’activation. Je n’ai pas tester.

F. Résinstaller les services pack

La procédure de “repair install” de Windows ne préserve pas les services pack, vous devez donc les résinstaller.

Un commentaire

  1. Thanks for the info

    Commentaire par zerodtkjoe — 20 octobre 2010 @ 11:26

Flux RSS des commentaires de cet article.

Désolé, les commentaires sont fermés pour le moment.

Propulsé par WordPress