Virtualiser Windows 11 sur Proxmox VE

Au sommaire :

  • 1-Création de la machine virtuelle
  • 2-Installation
  • 3-Post-installation
  • 4-Créer un template

1-Création de la machine virtuelle

Téléchargez l'ISO de Windows 11 à cette adresse : https://www.microsoft.com/fr-fr/software-download/windows11

Puis ajoutez là sur votre serveur en allant dans Datacenter\<nomduserveur>\local\ISO Images\Upload puis "Select File".

Ensuite, créez une machine virtuelle et donnez lui un nom.

Dans "Use CD/DVD disk image file 'iso", sélectionnez votre image. Si vous êtes sur le stockage par défaut, elles sont stockés dans "local".

Par défaut, "Guest OS" est paramétré sur Microsoft Windows et 11/2022/2025.

Téléchargez l'image contenant les pilotes de VirtIo à cette adresse :

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

Et comme l'ISO de Windows 11, ajoutez là dans votre serveur en allant dans Datacenter\<nomduserveur>\local\ISO Images\Upload\Select File et cliquez sur "Upload".

  • Cochez "Add additional drive for VirtIO drivers"
  • Laissez sur "local"
  • Sélectionnez l'image VirtIO

Ensuite, activez "Qemu Agent" et sélectionnez "local-lvm" pour stocker la partition EFI et le module TPM 2.0, vous savez, le module qui vous empêche d'installer Windows 11 sur des postes plus anciens. Ici, vous n'aurez rien à craindre.

Qemu Agent est comme son nom l'indique l'agent de liaison de l'émulateur Qemu. Il est utile pour envoyer des informations comme l'adresse IP ainsi que pour démarrer ou éteindre la machine virtuelle.

Par défaut, PVE sélectionne le bios OVMF (Open Virtual Machine Firmware) qui est le portage open-source du standard UEFI et le profil machine q35 qui est plus moderne que le i440fx. Il est obligatoire pour transmettre un périphérique physique (PCI passthrough).

Également, il sélectionne par défaut VirtIO SCSI comme contrôleur SCSI qui nous sera utile lorsqu'on utilisera les pilotes de para-virtualisation. Pour en savoir plus :

Virtio-SCSI
oVirt is a free open-source virtualization solution for your entire enterprise

Dans "Cache", sélectionnez "Write back" pour de meilleures performances et "SCSI" dans "Bus/Device" car il remplace VirtIO Block qui est déprécié et IDE/SATA ne sont pas assez performants en lecture/écriture,

Sélectionnez également "SSD emulation" pour indiquer à la machine virtuelle quelle tourne sur un SSD et non un disque dur, cela permettra d’allonger la durée de vie du SSD. Pensez aussi à activer "Discard" pour une meilleure gestion du provisionnement dynamique.

Dans "Cores, ajoutez 2 ou 4 cores selon votre configuration et dans "Type", changez la valeur par défaut "kvm64" par "host". Le mode "host" permet un accès direct au CPU sans couche d'abstraction. Il est obligatoire pour Windows car sans le mode "host", beaucoup d'applications risque de planter.

Dans "Memory", sélectionnez 4096 Mib (4 Go de mémoire vive). Privilégier la mémoire fixe sans balloon pour Windows car Il est notoire que cette option est facteur d'instabilité et pose des soucis de performance (pour Linux, la mémoire dynamique ne pose aucun soucis). Voir le lien ci-dessous pour plus d’informations :

[SOLVED] Hyper-Threading vs No Hyper-Threading; Fixed vs Variable Memory
After reading countless discussions, articles, whitepapers and not finding suitable answer, I decided to take matter in hand and do some testing to come to conclusion, if i should be using Hyper-Threading or not. While trying to find this answer, i also found the answer of using Fixed or...

Dans "Model", sélectionnez le pilote de para-virtualisation VirtIO pour la carte réseau. La carte ne sera pas reconnu par défaut par Windows, nous verront comment l'installer à l'avance.

Par défaut, le pare-feu du serveur est activé et il est connecté au pont vmbr0 (pont par défaut de PVE).

Validez la configuration en cliquant sur "Finish".

On est enfin prêt. Are you ready ? Let's ROCK baby!!!!!

2-Installation

Démarrez la machine virtuelle

Appuyez sur n'importe quelle touche pour démarrer le DVD.

Sélectionnez "Anglais" comme langue et "France" pour le clavier et l'horloge. Habituez-vous à travailler systématiquement en anglais.

Cliquez sur "Install now".

Activez votre licence Windows ou bien cliquez sur "i don't have a product key".

Sélectionnez la version que vous souhaitez. Moi j'installe la version professionnelle en général pour bitlocker, Hyper-V, le RDP et d'autres options d'entreprise. Pour en savoir plus :

Windows 10 Pro vs Home : Quelle est la différence? - windowsastuce.com
Windows 10 Pro vs Home : Windows 10 est maintenant le système d’exploitation de facto standard pour les PC modernes. Avec le support de Windows 7 qui a fini

Validez les Conditions générales d'utilisation (CGU).

Cliquez sur "Custom Install Windows only (advanced)".

Vous remarquerez que le stockage n'est pas reconnu. Normal car vous avez choisis le bus/device SCSI sous VirtIO et Windows n'embarque pas les pilotes VirtIO en natif. Il va donc falloir installer le pilote lié au stockage via le deuxième lecteur monté dans la machine virtuelle.

Cliquez sur "Load driver" puis sur "Browse".

Naviguez dans le lecteur CD et allez dans le dossier "D:\vioscsi\w11\amd64" et cliquez sur "OK". Cela va charger le pilote.

Cliquez sur "Next" pour installer le pilote.

Enfin, sélectionnez le disque, créez des partitions si vous le souhaitez puis cliquez sur "Next".

La machine virtuelle ayant redémarré, arrivé à cet écran, sélectionnez "France" comme pays puis à l'écran suivant, sélectionnez "French" si vous avez un clavier AZERTY.

Passez cette étape (ajout d'un deuxième clavier).

Cliquez sur "I don't have internet", vous installerez le pilote réseau plus tard.

MAJ (13/01/2023) : Microsoft force à utiliser une adresse mail pour s'authentifier.

Windows 11 22H2, L’installation force la création d’un compte Microsoft, solution - GinjFo
Comme nous l’avions annoncé Microsoft force les utilisateurs de Windows 11 a créer un compte en ligne lors de l’installation.

Faites Shift + F10 puis sur le CLI, tapez la commande suivante pour bypass cette étape.

oobe\BypassNRO.cmd

Cliquez sur "Continue with limited setup". Vu le nid à espions qu'est devenu Windows depuis la version 10, je conseille de ne pas lié votre instance à un compte Microsoft. Ce n'est que mon avis.

Allez plutôt créer un compte "admin" avec mot de passe et ajoutez les réponses aux questions de sécurité.

Répondez systématiquement "non" aux demandes de Microsoft d'accéder à vos données personnelles (même si ça sert à rien).

3-Post-installation

Lorsque vous arrivez au bureau, allez dans "Device Manager" (gestionnaire de périphériques).

Vous remarquerez qu'il manque deux pilotes :

  • Ethernet Controller
  • PCI Device

Vous devrez installer 4 pilotes :

  • vioserial (périphériques PCI ou PCI Simple Communication Controller),
  • NetKVM (carte réseau ou Ethernet Controller),
  • Balloon (ballooning),
  • Qemu-Guest-Agent (agent de liaison avec l'émulateur Qemu),

Entrez dans le lecteur contenant contenant les pilotes VirtIO et cliquez sur "virtio-win-gt-x64.exe" pour installer l'ensemble des pilotes.

Ensuite, installez l'agent Qemu. Cela permettra à PVE de récupérer de précieuse informations comme l'adresse IP de votre machine virtuelle. Il permet également de recevoir les instructions du serveur comme les commandes "shutdown" et "reboot".

On vois que Qemu-guest-agent envoie bien les information de la machine virtuelle au serveur hôte.

Petit aparté. Dans "Task Manager", si l'option "SSD Emulation" n'est pas activé, le disque est reconnu en tant que HDD (disque dur mécanique) et non pas en tant que SSD à mémoire flash, ce qui fait que les lectures/écritures sont beaucoup plus fréquentes et risque de diminuer la durée de vie du disque physique.

Idem pour le service "Ballooning" qu'on va installer. On est à 1,5 Go de mémoire vive (monté jusqu'à 1,7 Go après la capture d'écran).

En activant l'option "SSD Emulation" et en installant le service "Balloon Service", on constate :

  • Que le disque est bien reconnu comme SSD
  • La mémoire vive est passé de 1,5/1,17 Go à 1,2 Go

Copiez le dossier "Balloon" dans "C:\Program Files (x86)" et installez le pilote.

Enfin, lancez "cmd" en administrateur, allez à la racine du dossier puis tapez la commande "blnsvr.exe -i".

Allez dans "Service" et vous remarquerez que le service "Balloon Service" est bien activé et ce, à chaque démarrage.

Enfin dans PVE, penser à désactiver l’option « USB Tablet Device » de la machine virtuelle pour réduire la charge processeur (Zwindler en parle dans son article sur pfSense).

Optimisation de PFsense dans Proxmox VE
PFsense + Proxmox VE = &lt;3 Si vous suivez ce blog, vous savez que je parle régulièrement de Proxmox VE. En particulier, j’ai travaillé avec 2 autres personnes (M4vr0x et Charles BORDET) pour écrire 2 suites de plusieurs articles sur Proxmox et PFsense. Dans ces deux suites d’articles, à chaque foi…

5-Créer un template

Si vous avez fini vos optimisations, vous pouvez lancer sysprep qui facilite le clonage du système dans le cas d'un déploiement de masse.

Utiliser Sysprep (généralisation) sur une installation Windows
Utiliser Sysprep (généralisation) sur une installation Windows

Allez dans "C:\Windows\System32\Sysprep" et cliquez sur "sysprep.exe". Vous cochez "Generalize" et vous choisissez l'option "Shutdown".

Puis dans PVE, vous transformez votre machine virtuelle en template.

Vous pourrez créer deux types de clone :

  • Un clone complet
  • Un clone lié,

L'avantage du clone lié c'est qu'il est adapté à un usage homelab et vous permettra d'effectuer différents tests, surtout qu'il consomme peu d'espace sur le disque car il va continuer d'écrire à partir du template.

En ce qui concerne le clone complet, comme son nom l'indique, c'est une copie carbone du template d'origine, idéal pour déployer une instance persistante.