Installer une vm Windows 7 avec les drivers virtio sur Proxmox 4.3

Quand on installe une version serveur de Windows sur proxmox il n’y a pas de grande difficultés à créer un disque virtio et à charger les pilotes correspondant au moment de l’installation Windows.

Bizarrement l’installation d’un Windows classique, entendez poste de travail, n’a pas le même comportement.
Au moment de charger le driver virtio pour le disque dur vous vous retrouver avec un message.
« Le driver n’est pas signé »  à croire que sous Windows serveur ce n’est pas un problème ?!
driversigne

On va donc voir comment gérer cette incohérence et l’astuce qui permet de ne pas se priver de la para-virtualisation sur une machine virtuelle Windows 7.

La procédure est la même avec un Windows 8 8.1 ou 10.

En haut à droite on va sur « Create VM »  (oui moi je préfère rester en anglais comme les docs officiels)

createvm

create

os

On va chercher le cd d’installation au format .iso que l’on a au préalable chargé sur le serveur.
Ici il est sur « local » mais il peut être sur un partage NFS ou ailleurs.
(Vous pouvez télécharger le .iso sur le site de microsoft avec votre numéro de série win7)

iso

On ne vas pas tout de suite créer un disque virtio mais IDE. Prévoyez tout de suite la taille de disque que vous voulez allouer à votre machine de production.
J’installe le disque sur un volume ZFS je sélectionne donc « Write back » pour éviter une erreur au démarrage de la machine. Vous pouvez laisser les valeurs par défaut si vous n’êtes pas en ZFS.

sata

Adaptez la suite suivant vos besoins. Les Sockets sont les processeurs physiques sur le serveur Proxmox. Si vous n’avez qu’un processeur laissez le socket à 1.

cpu

ram

Ici on va créer la carte réseau en virtio on ne pourra pas l’installer à l’installation mais ce n’est pas bloquant.

networkvirtio

Une fois confirmé on a fini le paramétrage de notre VM mais on ne va pas là lancer tout de suite.
Il nous faut d’abord créer un second lecteur CD où nous chargerons le cd virtuel virtio.iso

addcd

Ici j’utilise une ancienne version de l’iso mais vous pouvez télécharger la dernière version stable.

https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/

virtiocd02

On va aussi ajouter un disque supplémentaire virtio qui sera supprimer ensuite. La taille n’est pas importante.

addhd

addhd2

 

On peux cette fois lancer la machine et l’installer.

install

Un fois l’installation terminée on va aller dans le gestionnaire de périphériques pour installer les pilotes virtio pour la ram, le disque dur et la carte réseau.

gp01

Après un clique droit sur « Contrôleur Ethernet » on sélectionne mettre à jour le pilote et on va chercher le lecteur CD contenant le CD virtio.

virtiocd

gp03

On refait la même manipulation pour les périphériques restant et on éteins la VM.

C’est ici qu’est l’astuce.
Maintenant que Windows a bien voulut nous installer le pilote du disque dur on va transformer notre disque classique en virtio.

D’abord supprimer le disque virtio de 32Go qui ne nous servira plus en cliquant sur « Remove »
remdiskio01

Le disque n’est pas à proprement parlé effacé mais plutôt détaché de la VM et passe en « Unused Disk »
On va donc le supprimer définitivement, toujours avec « remove »

remdiskio02

Pour transformer le disque principal en virtio on est obligé de le détacher de la VM en cliquant sur « Remove »

remdiskio03

Il est possible maintenant de l’éditer :

remdiskio04

Il ne faut pas oublier de changer l’ordre de démarrage dans « Options » pour renseigner ce nouveau périphérique.

bootorder

Vous pouvez maintenant lancer votre VM.

postinstall01

Avant de redémarrer suite à l’installation du disque on va en profiter pour ajouter le service qui nous permet d’avoir la Ram Dynamique.

Copiez et renommer en administrateur le dossier WIN7\AMD64 depuis le CD virtio dans  « c:/Program files/Balloon »

Ouvrez CMD en administrateur pour vous rendre dans « c:/Program Files/Balloon »

cmd

Lancez la commande d’installation du service :
BLNSVR.exe -i

Un fois le service installé éteindre la VM.

cmd2

Il ne reste plus qu’a définir le minimum et le maximum de ram dans hardware/memory

cmd3

Voilà la VM est prête pour la production et vous remarquerez la différence de performances rien que le temps de démarrage et l’optimisation des ressources du serveur proxmox comparé à des VM qui ne sont pas installées avec virtio.

Sources :
https://pve.proxmox.com/wiki/Windows_7_guest_best_practices
https://pve.proxmox.com/wiki/Dynamic_Memory_Management