Quitter le forum et retourner au site

KVM et WIN10

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

KVM et WIN10

Message par le Manchot Masqué »

Oui je sais : windows, c'est le mal absolu. Mais professionnellement, vous savez que je n'ai pas trop le choix. Et parfois, je m'en passerais bien...
On a déjà vu en réunion comment faire une VM en mode graphique, avec virt-manager.
Mais c'est tellement plus drôle en ligne de commande, surtout sur un serveur distant dont vous ramenez l'affichage via VNC...
Première chose à savoir : surtout pas de format qcow2 variable pour une VM w10 ! Ce sera lent et inexploitable. Il faut donc prendre du bon vieux format RAW, et vu le goret à installer, prévoir 100Go n'est pas de trop !
Pour se créer le disque virtuel, c'est donc quelque chose du genre :

Code : Tout sélectionner

dd if=/dev/zero of=/DATA/w10.img bs=1G count=100 
Ensuite il faut se prévoir une interface réseau virtuelle de type TAP, à lancer dans le /etc/network/interfaces pour l'avoir au démarrage de la machine :

Code : Tout sélectionner

auto tap5
iface tap5 inet manual
        up ip tuntap add mode tap dev tap5 group kvm
        up ip link set dev tap5 up
        down ip link set dev tap5 down
        down ip tuntap del mode tap dev tap5
Si vous voulez ensuite faire un pont avec votre interface principale eth0, pour avoir une IP dynamique de la box internet dans votre VM, il faudra modifier le même fichier

Code : Tout sélectionner

auto eth0
allow-hotplug eth0
        iface eth0 inet manual

auto br0
iface br0 inet static
	address 192.168.150.1
	netmask 255.255.255.0
        bridge_ports eth0 tap5
        bridge_stp off
        bridge_fd 0
        bridge_maxwait 0
Enfin, dernière chose à savoir, il faut non seulement une image ISO officielle à récupérer via internet (ce qui est tout à fait légal), mais en plus se farcir l'ISO VirtIO de la Fedora/Redhat : cf. https://www.linux-kvm.org/page/WindowsG ... ad_Drivers qui mène à https://github.com/virtio-win/virtio-wi ... /README.md.
Une fois tous les ingrédients, on peut commencer à touiller la potion maléfique. Un petit script personnel pour aider, à adapter bien entendu à votre configuration. À l'installation, il faut mettre INSTALL=1.

Code : Tout sélectionner

win10.sh:
#!/bin/bash

DISK=/DATA/w10.img
WINIMG=/DATA/iso/Win10_21H1_French_x64.iso
VIRTIMG=/DATA/iso/virtio-win.iso
MAC=52:51:00:12:34:56
TAP=tap5
CORES=2
MEMORY=4096
VNC=localhost:1
INSTALL=0

if [ "$INSTALL" -eq "1" ]; then
	kvm \
		-drive driver=raw,file=${DISK},if=virtio,cache=off \
		-smp cores=${CORES} \
		-m ${MEMORY} \
		-rtc base=localtime,clock=host \
		-usb \
		-device usb-tablet \
		-k fr \
		-net user \
		-net nic,model=virtio \
		-cdrom ${WINIMG} \
		-drive file=${VIRTIMG},index=3,media=cdrom
else

	kvm \
		-drive driver=raw,file=${DISK},if=virtio,cache=off \
		-smp cores=${CORES} \
		-m ${MEMORY} \
		-rtc base=localtime,clock=host \
		-usb \
		-device usb-tablet \
		-k fr \
		-net user \
		-net nic,macaddr=${MAC},model=e1000 \
		-net tap,ifname=${TAP},script=no \
		-soundhw all \
		-vnc ${VNC}
fi
Il suffit alors de lancer le script w10.sh quand on veut activer la machine, et de s'y connecter via remmina en VNC, sur IP_MACHINE:5901 (VNC numérote à partir de 5900). Attention : VNC n'est pas un protocole sécurisé. Je passe pour ma part via du VPN, donc le trafic est crypté dans le tunnel...
A noter que pour jouer ensuite avec mon dongle WiFi, j'ai utilisé l'aide de la ARCH qui est toujours aussi complète au niveau technique.
J'ai donc fait un lsusb -tv et lsusb simple pour avoir les numéros vendeur:identifiant de ma clé USB.
Il suffit ensuite de rajouter les options

Code : Tout sélectionner

 		-device usb-ehci,id=ehci \
		-device usb-host,bus=ehci.0,vendorid=0x2357,productid=0x0107 \
pour ma TP Link WN821 v5 qui commence à dater, mais qui supporte toujours sans problème tous les modes WiFi sous GNU/Linux !
Pour information j'ai constaté, sous w10, que wireshark a refusé le mode monitor de la clé, donc impossible de renifler le trafic, et que le mode hébergé (hostednetwork) ne fonctionne plus en console (alors que le seven de l'époque ne posait aucun problème).
Par contre, w10 utilise le WiFi Direct pour créer un point d'accès temporaire en mode graphique. C'est certes plus simple pour les usagers, mais, et c'est ma conclusion : microsoft continue d'enlever tout ce qui peut servir à un ingénieur pour apprendre et comprendre le fonctionnement de base du WiFi et des protocoles associés...
Raison de plus pour passer sous OS libre, et aller au fond du terrier !
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

Re: KVM et WIN10

Message par le Manchot Masqué »

Petite précision si vous tombez sur le message "Warning: speed mismatch trying to attach usb device" : ça signifie simplement que la génération du périphérique USB que vous tentez d'attacher à la machine ne correspond pas à la génération du contrôleur USB virtuel utiliser...
Cf. https://www.linux-kvm.org/page/USB

- USB1/EHCI:

Code : Tout sélectionner

-device usb-ehci,id=ehci\
-device usb-host,bus=ehci.0,vendorid=0xAAAA,productid=0xBBBB
- USB2/UHCI:

Code : Tout sélectionner

-device piix4-usb-uhci,id=uhci\
-device usb-host,bus=uhci.0,vendorid=0xAAAA,productid=0xBBBB
On peut aussi essayer avec le contrôleur virtuel piix3-usb-uhci, ou le pci-ohci pour les périphériques apple)

- USB3/XHCI:

Code : Tout sélectionner

-device nec-usb-xhci,id=xhci\
-device usb-host,bus=xhci.0,vendorid=0xAAAA,productid=0xBBBB
La logique reste la même dans les 3 cas : créer d'abord un contrôleur USB virtuel, puis attacher les périphériques USB dessus, dont on aura trouver les identifiants avec lsusb. Pour savoir si le périphérique est USB1, USB2 ou USB3, outre le web, le journal système sur l'hôte principal peut vous afficher la génération UHCI/EHCI ou XHCI du périphérique (cf.

Code : Tout sélectionner

journalctl -f 
en branchant ensuite votre périphérique).

Maintenant si vous voulez la liste complète de TOUS les contrôleurs (USB compris) supportés sous votre distribution, c'est

Code : Tout sélectionner

kvm -device help
Répondre