%

[Debian :: Virtualisation] Windows 11

Article publié, le et modifié le
7 minutes de lecture

Cet article contient 1395 mots.
Source brute de l'article :
Commit version : edea221

Description

Abordons la virtualisation de Windows 11, sous Debian Sid, avec QEMU, avec pour prérequis nécessaire l’utilisation de TPM, Secure-Boot, partage de données entre la machine hôte et la VM, … sans oublier l’UEFI.

Ce processus convient aussi pour un Windows 10 virtualisé nécessitant les mêmes prérequis.

Pré-requis

L’hôte sera paramétré en tant que pont et la VM fera partie du même réseau que l’hôte.

Je n’aborde pas ici la configuration de l’hôte en tant que bridge réseau.
Lire mon article : Debian : Pont réseau pour QEMU

Windows 11

Le téléchargement de l’image ISO de Windows 11 se fait depuis : https://www.microsoft.com/software-download/windows11

Procurez-vous légalement une clé de licence Windows.

⇒ Les prérequis minimum pour une machine virtuelle exécutant Windows 11 sont les suivants :

  • 64 Go de stockage
  • 4 Go mémoire
  • 2 CPU virtuels

QEMU

QEMU doit être installé:

$ sudo apt install libosinfo-bin qemu-system virt-manager
  • libosinfo-bin est un outil pour interroger la base de données osinfo.
  • virt-manager est une application de bureau pour gérer des machines virtuelles.

TPM, Secure-Boot, UEFI

Parmi les pré-requis de Windows 11, il y a la gestion :

  • de TPM.
  • du Secure Boot
  • et de l’UEFI.

Il nous installer les binaires suivants :

$ sudo apt install ovmf swtpm swtpm-tools

Client graphique

Pour accéder à l’interface graphique de la VM, au choix

  • le serveur Spice (par défaut)
  • ou VNC.

Spice

Par défaut l’interface graphique de la VM est configurée sur spice.

Il faut installer les paquets spice-vdagent et spice-client-gtk :

$ sudo apt install spice-vdagent spice-client-gtk

Ce tutoriel se base sur l’utilisation de spice.

VNC

Pour utiliser l’interface graphique avec le serveur VNC, un client comme tigervnc-viewer peut être suffisant.

$ sudo apt install tigervnc-viewer

Ce tutoriel n’aborde pas plus cette utilisation… si ce n’est de pararmètrer le client VNC d’interroger localhost et le port VNC par défaut (à moins que vous l’ayez changé, dans ce cas agissez en conséquence).

Création de la VM

Droits utilisateur

Ajoutez votre utilisateur au groupe libvirt, voire libvirt-qemu.

$ sudo adduser your-id libvirt libvirt-qemu

Ensuite, choisissez pour faire l’installation de la VM :

  • soit en mode CLI,
  • soit par l’installateur graphique virt-manager

virt-install CLI

Partant du principe d’un répertoire dédié dans votre homme, nommé VM :

  1. Création de la VM:
$ cd ~/VM
$ ROOT="$(pwd)"
$ name=Win11Test
$ path="${ROOT}/${name}.qcow2"
$ size=64
$ qemu-img create -f qcow2 "${path}" "${size}G"
  1. Démarrage de l’installation :
$ isofile=Win11_23H2_French_x64v2.iso
$ fs_dest="C:\\vmshare"
$ fs_src="${ROOT}/vmshare"
$ cdrom="${ROOT}/${isofile}"
$ conn="qemu:///system"
$ cpu="check=none,mode=host-passthrough,migratable=on"
$ disk="device=disk,format=qcow2,path=${path},size=${size},target.bus=sata,target.dev=sda,type=file"
$ fs="accessmode=passthrough,source=${fs_src},target=${fs_dest},type=mount,driver.type=virtiofs"
$ graphic=spice
$ machine=q35
$ mem="4096,maxMemory=16384"
$ memBacking="source.type=memfd,access.mode=shared"
$ net="bridge=br0,model.type=e1000,type=bridge"
$ os="detect=on,name=win11"
$ tpm="emulator,version=2.0"
$ vcpu="2,maxvcpus=4"
$ virt-install --accelerate --cdrom "${cdrom}" --connect "${conn}" --cpu "${cpu}" --disk "${disk}" --filesystem "${fs}" --graphics type="${graphic}" --hvm --machine "${machine}" --memory "${mem}" --memorybacking="${memBacking}" --name ${name} --network "${net}" --os-variant "${os}" --tpm "${tpm}" --vcpus "${vcpu}"

Direction vers l’interface graphique de la nouvelle fenêtre qui vient de s’ouvrir, titrée “Win11Test”, assez rapidement pour pouvoir valider le choix de démarrer sur le CD-ROM.

Selon votre puissance machine hôte, l’installation de Windows se fait en quelques minutes…


Gestionnaire graphique virt-manager

  • Veillez à activer l’option d’architecture en spécifiant l’*Architecture : x86_64 :

    virt-manager : création de la nouvelle VM
    virt-manager : création de la nouvelle VM

  • Choisir le chemin de l’ISO d’installation de Windows :

    virt-manager : choisir le média d'installation
    virt-manager : choisir le média d'installation

  • Choisir les paramètres mémoire et CPU :

    virt-manager : choisir les paramètres mémoire et CPU
    virt-manager : choisir les paramètres mémoire et CPU

  • Activer le stockage en sélectionnant un personnalisé :

    virt-manager : activer le stockage personnalisé
    virt-manager : activer le stockage personnalisé

  • Dans votre home, créez un volume de stockage personnalisé

    virt-manager : créer un volume de stockage
    virt-manager : créer un volume de stockage
    virt-manager : création du volume de stockage
    virt-manager : création du volume de stockage
    virt-manager : localiser le stockage personnalisé
    virt-manager : localiser le stockage personnalisé
    virt-manager : Gérer le stockage personnalisé
    virt-manager : Gérer le stockage personnalisé

  • Commençons l’installation de la VM

    • Veillez à sélectionner le type de réseau, en tant que Bridge device
    • et à lui donner le nom correct de votre pont, dans le champ Device name
      virt-manager : activer le stockage
      virt-manager : activer le stockage

Le reste est le processus d’installation de Windows…

Installation de Windows

Je ne développe pas le processus d’installation en lui-même ; il ne différe en rien d’une installation sur une machine physique.

Partage

Le moyen le plus simple actuellement pour partager des copier-coller, des fichiers entre l’hôte et l’invité est l’utilisation du serveur spice ; l’utilisation de VNC n’est pas compatible pour ce propos.

D’autres possibilités sont l’usage de SSHFS, voire Samba, qui ne seront pas abordés dans cet article.


⇒ Sur l’hôte :

$ sudo apt install qemu-guest-agent spice-vdagent

⇒ Dans la VM :

Une fois l’installation de Windows terminée, et dans votre session utilisateur, avec n’importe quel navigateur web, allez télécharger :

  • l’utilitaire WinFSP : https://winfsp.dev/rel/
    C’est l’équivalent de Fuse pour Windows.

    • Veillez à l’installation du Core - ce qui est normalement proposé par défaut
      (voir ci-dessous : WinFSP )
  • les outils VirtIO : https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win-guest-tools.exe
    Cet ensemble packagé par l’équipe Fedora comprend les pilotes logiciels nécessaires à la paravirtualisation et l’émulation matérielle ; il embarque aussi l’agent Spice pour la gestion de l’affichage graphique, et son redimensionnement automatique, le copier-coller entre l’hôte et la VM, la redirection des périphériques USB vers la VM.

    • Veillez à l’installation de Viofs
      (voir ci-dessous : VirtIO )
Attention

virt-install

Lors de l’installation par le biais de l’outil virt-install en CLI, normalement vous avez paramétré :

  • les variables fs_dest et fs_src nécessaires pour paramétrer correctement la variable --filesystem
  • ainsi que la variable memoryBacking qui est nécessaire pour le partage mémoire.

virt-manager

Si vous avez fait l’installation de la VM par le biais de virt-manager, arrêtez proprement la VM, puis paramétrez le partage de fichier.

  1. Affichez les détails de la VM
  2. Cliquez sur Mémoire pour activer l’option Enable shared memory
    virt-manager : activer le stockage
    virt-manager : activer le stockage
  3. Puis cliquez sur le bouton [ Ajouter un matériel ], en bas à gauche de la fenêtre des détails
  4. Sélectionnez le choix Système de fichiers et paramétrez :
    • Pilote : virtiofs
    • Chemin de la source : Parcourez vers votre répertoire de partage sur votre hôte, tel que ~/VM/vmshare
    • chemin de la cible : C:\vmshare
    • vous pouvez choisir d’exporter les fichiers en lecture seule, en cliquant sur la case à cocher adéquate.
    • cliquez sur le bouton [ Terminer ]
      virt-manager : activer le stockage
      virt-manager : activer le stockage

Au redémarrage de la VM, le chemin de la cible sera privilégié en tant que lecteur Z:… si bien sûr, vous avez réalisé l’installation des deux binaires WinFSP et VirtIO ; sinon faites-le.

WinFSP

Démarrage de l'installation de WinFSP
Démarrage de l'installation de WinFSP
Phase de personnalisation de l'installation de WinFSP
Phase de personnalisation de l'installation de WinFSP
  • Veillez à ce que le module Core soit validé - ce qui est normalement le cas par défaut.

  • Terminez classiquement l’installation, sans autre détail.

VirtIO

Démarrage de l'installation de Virtio-win
Démarrage de l'installation de Virtio-win
Phase de personnalisation de l'installation de Virtio-win
Phase de personnalisation de l'installation de Virtio-win
  • Veillez à ce que le module Viofs soit validé - ce qui est normalement le cas par défaut.

  • Pendant la phase d’installation:

    • l’affichage de la VM va clignoter et se redimentionner automatiquement - c’est normal.
    • le copier-coller entre l’hôte et la VM est disponible, aussi.
  • Une fois l’installation terminée, allez dans le gestionnaire de services :

    • Déroulez jusqu’au service Virtio-FS Service, double-cliquez dessus
      • changez le type de démarrage pour le mettre en mode Automatique en lieu du mode Manuel
      • cliquez sur le bouton [ Démarrer ]
        Gestion du service Virtio-FS
        Gestion du service Virtio-FS
        Gestion du service Virtio-FS
        Gestion du service Virtio-FS
  • Redémarrez la VM

  • Une fois à nouveau dans la session, cliquez sur l’explorateur de fichiers, puis sur Ce PC, vous devrez y trouver le lecteur Z: connecté sur C:\vmshare.
    Vous pouvez maintenant faire transiter les fichiers désirés entre l’hôte et la VM.

    Vue de l'Explorateur de Fichiers Z:
    Vue de l'Explorateur de Fichiers Z:


Test partage fichier

Depuis la VM : Vue de l'Explorateur de Fichiers Z: du fichier True.txt
Depuis la VM : Vue de l'Explorateur de Fichiers Z: du fichier True.txt
Depuis l'hôte : Vue de l'Explorateur de Fichiers du fichier True.txt
Depuis l'hôte : Vue de l'Explorateur de Fichiers du fichier True.txt

Voilà !

À partir de maintenant, vous êtes opérationnel ;)

Dépannage

Q : Le service Virtio-FS refuse de démarrer !

R : Avez-vous installé WinFSP en premier ? Si ce n’est pas le cas, faites-le ; ensuite vous pourrez le démarrer.


Q : J’ai redémarré la VM, mais le partage de fichiers sur Z: n’est pas actif !

R :

  1. Dans les paramètres de la VM, avez-vous bien paramétré une Système de fichiers ?
    • Vérifiez vos chemin de la source (sur l’hôte) et chemin de la cible (celui dans la VM).
  2. Avez-vous bien paramétré le service Virtio-FS ? Vérifiez qu’il soit démarré

Documentations

Remerciements

Tout particulièrement à @Clochette ;)


Enjoy-IT!
Enjoy-ID!