Virtualiser Windows 11 sur Proxmox VE

Au sommaire :

  • Création de la machine virtuelle
  • Installation
  • Post-installation
  • Optimisations
  • Créer un template
  • Installer SPICE (optionnel)
  • Activer le PCI Passthrough (optionnel)

1-Création de la machine virtuelle

Téléchargez l'ISO de Windows 1 à 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" ("archive" est mon disque dur de 8 To où je stocke mes images et sauvegardes).

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

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, Proxmox VE 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 Proxmox VE).

Validez la configuration en cliquant sur "Finish".

Ensuite, 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".

Il vous faudra également ajouter un lecteur CD pour pouvoir monter les pilotes VirtIO. Allez dans Hardware\Add\CD/DVD Drive

Et sélectionnez le lieu de stockage (local par défaut) et votre image de VirtIO.

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.

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),

Commencez par installer le pilote vioserial (périphériques PCI).

Ensuite, installez l'agent Qemu. Cela permettra à Proxmox VE 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 dans quelques instants. 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,

Reprenons où nous en étions. Copiez le dossier "Balloon" dans "C:\Program Files" et installez le pilote.

Enfin, exécutez "cmd" en administrateur et installez le service "blnsvr.exe -i" comme indiqué sur la photo ci-dessous.

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

Enfin, installez NetKVM comme indiqué sur la capture d'écran ci-dessous pour activer la carte réseau. Vous pouvez aussi passez par "Device Manager".

Pour ceux qui ont une carte réseau en 10 Gbits/s, vous allez vous régaler. C'est pris en charge par VirtIO.

4-Optimisations

La configuration de base est suffisante mais si vous souhaitez allez plus loin, voici quelques optimisations supplémentaires.

Désactiver le mode Tablet

Dans Proxmox VE, 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) :

Source de l'astuce :

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…

Installez OpenSSH Server

Depuis Windows 10, il est désormais possible de se connecter au système via le protocole SSH comme sur Linux (plus besoin du logiciel Putty) avec l’intégration native de OpenSSH.

L'avantage c'est qu'avec Filezilla ou n'importe quel navigateur de fichiers sous Linux, vous pouvez utiliser le protocole SFTP (File Transfert Protocol over SSH).

Que ce soit en local, à travers un VPN ou sur l'internet publique (faut être fêlé pour ouvrir le port 22 de sa box), vous pouvez transférer des fichiers en utilisant le cryptage du protocole SSH (le FTP ne dispose d'aucun cryptage).

Comment utiliser SFTP pour transférer des fichiers en toute sécurité avec un serveur distant | DigitalOcean
SFTP est un moyen sécurisé de transférer des fichiers entre des serveurs locaux et distants. Bien plus sûr que FTP, ce protocole utilise un tunnel SSH pour é…

Pour installer OpenSSH Server, allez dans la barre de recherche et cliquez sur "Settings".

Cliquez sur Apps\Optional features\View features et cochez la case pour installer OpenSSH Server.

Enfin, pour activer le service au démarrage, allez dans « services ».

Localisez le service "OpenSSH SSH Server".

Et dans "Startup type", basculez du mode "Manuel" à "Automatic" puis cliquez sur "Start" pour démarrer le service à chaque démarrage.

Lancez "cmd" dans la barre de recherche WIndows et tapez "ipconfig /all" pour connaitre votre adresse IP (IPv4 Address).

Sur le client Filezilla de votre poste client, tapez :

  • Hôte : sftp://ip-address (sftp://192.168.0.83 dans l'exemple),
  • Identifiant : admin (compte utilisateur),
  • Mot de passe : celui du compte "admin",

Cochez "Toujours faire confiance à cet hôte, ajouter cette clé au cache" vu que c'est la première fois que vous vous connecté dessus en SFTP.

Et admirez le résultat!!!! À vous les transferts de fichiers cryptés via le protocole SFTP.

Winget

Winget (pour Windows Package Manager) est ni plus, ni moins qu'une copie du système de dépôt existant depuis des lustres sur Linux.

Winget inclus un peu plus de 1400 paquets au moment de la sortie de la version 1.0 (2021).

Téléchargez le lien suivant : https://github.com/microsoft/winget-cli/releases/download/v1.2.10271/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

Releases · microsoft/winget-cli
Windows Package Manager CLI (aka winget). Contribute to microsoft/winget-cli development by creating an account on GitHub.

Ensuite, cliquez et installez le à l'aide du Windows Store.

Cliquez sur "Get".

Winget est désormais disponible en utilisant la commande éponyme à travers Powershell.

Si je cherche VLC par exemple, je peut le télécharger en version standard (.exe) ou au format UWP (Universal Windows Platform).

Et pour en savoir plus, un excellent tutoriel du site "Le Crabe Info".

winget : le gestionnaire de paquets de Microsoft – Le Crabe Info
Windows Package Manager est le nouveau gestionnaire de paquets made in Microsoft. Découvrez comment utiliser winget pour installer des logiciels en 2 secondes sur Windows 10 !

Chocolatey

Si vous voulez aller plus loin, Chocolatey dispose d'un dépôt d'applications largement plus conséquent que Winget.

Chocolatey - The package manager for Windows
Chocolatey is software management automation for Windows that wraps installers, executables, zips, and scripts into compiled packages. Chocolatey integrates w/SCCM, Puppet, Chef, etc. Chocolatey is trusted by businesses to manage software deployments.

Pour l'installer, ouvrez Powershell en administrateur et lancez la commande suivante.

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Si je cherche VLC par exemple, je peut le télécharger en version standard (.exe) ou carrément en portable.

RDP (Remote Desktop Protocol)

  • Allez dans Settings\System\Remote Desktop et cliquez sur "Off" pour le mettre sur "On",
  • Cliquez sur "Confirm",

Le RDP est désormais activé.

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 Proxmox VE, 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.

6-Installer SPICE (optionnel)

Installer SPICE sur Proxmox VE
Guide d’installation du protocole d’affichage SPICE sur Proxmox VE

7-Activer le PCI Passthrough (Optionnel)

GPU Passthrough sur Proxmox VE
Au sommaire : * 1-Qu’est-ce que le passthrough ? * 2-Prérequis * 3-Activer IOMMU * 4-Intel HD * 5-AMD R5 240 * 6-AMD RX 6400 1-Qu’est-ce que le passthrough ? Le passthrough permet aux machines virtuelles d’accéder aux périphériques physiques d’une machine. Cela peut-être : * Des périphériques USB (clavier, souris, disque dur, clé USB, webcam, etc.) * Des péripériques SATA (disque