diff --git a/content/04_qemu_advanced.md b/content/04_qemu_advanced.md index f26bd3c8b30d677a24a6873b6f25ce329454e59b..1858159ac0dd365182e47a162fc3bb9523556167 100644 --- a/content/04_qemu_advanced.md +++ b/content/04_qemu_advanced.md @@ -20,7 +20,7 @@ autre système d'exploitation"_ Initialement, il n'est pas possible de le faire car les formats `.vdi` et `.vmdk` ne sont pas géré comme des images natives au format `qcow2`. Par conséquent, -il est nécéssaire de le convertir dans le bon format grâce à l'outil `qemu-img +il est nécessaire de le convertir dans le bon format grâce à l'outil `qemu-img convert`. ```bash @@ -90,7 +90,7 @@ linustorvalds:x:1001:1001:Linus Torvalds,,,:/home/linustorvalds:/bin/bash ### Modification pour se connecter en tant que `root` et en tant qu'utilisateur normal -Pour cela, il est nécéssaire de modifier le fichier `/etc/passwd` en retirant +Pour cela, il est nécessaire de modifier le fichier `/etc/passwd` en retirant le caractère `x` à la suite du nom d'utilisateur comme ci-dessous : ```bash @@ -439,3 +439,94 @@ qemu-system-x86_64: Error -22 while loading VM state ``` ## Virtualisation de _desktop_ (VDI) + +### Téléchargement de l'image `doom.qcow` + +La première chose à faire est de télécharger l'image compressée en local, pas +sur le serveur distant, puis de l'extraire + +```bash +curl -o doom.qcow.gz https://drive.switch.ch/index.php/s/rHScyU6IVNyoZYD/download +``` + +```bash +gzip -d doom.qcow.gz +``` + +### Conversion de l'image en _sparse file_ + +Afin de récupérer de l'espace non-utilisée dans l'image decompressée de 15GB, +il est possible de la convertir en _sparse-file_ à l'aide de la commande ci-dessous : + +```bash +fallocate -v -d doom.qcow +``` + +```bash +doom.qcow: 4.3 GiB (4637921280 bytes) converted to sparse holes +``` + +Ceci nous a permis d'économiser un peu plus de 4GB. À présent il est possible +de transférer l'image sur le serveur distant. + +### Transfert de l'image `doom.qcow` sur le serveur distant + +Vu que `scp` **ne supporte pas** les fichiers _sparse_, il est nécessaire +d'effectuer le transfert grâce à `rsync` à travers le réseau. + +```bash +rsync -zP --sparse doom.qcow <username>@<server_addr>:<dst_path_server> +``` + +### Modification du script `vm_run.sh` de sorte à pouvoir lancer un serveur `spice` + +```bash +MEM_COUNT="4G" +CPU_COUNT="2" +NET_PV="-nic user,model=virtio-net-pci" +GPU_PV="-vga virtio" + +SPICE_SERVER="-device virtio-serial-pci \ + -spice port=8000,disable-ticketing=on \ + -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \ + -chardev spicevmc,id=spicechannel0,name=vdagent,clipboard=on" + +QEMU_GA="-device virtio-serial \ + -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0 \ + -chardev socket,path=/tmp/qga.sock,server=on,wait=off,id=qga0" + +if $DISK_OPT; then + qemu-system-x86_64 -m $MEM_COUNT -smp cpus=$CPU_COUNT $NET_PV \ + $GPU_PV $DISK_PATH $QEMU_GA $SPICE_SERVER +fi +``` + +### Lancement du client sur la machine local + +```bash +remote-viewer "spice://10.136.27.45?port=8000" +``` + +### Le jeu est-il jouable ? + +Oui. + +### Même question mais depuis chez vous avec le VPN ? + +Oui. + +### Sur quelle machine physique s'exécute le jeu exactement ? + +Sur le serveur distant. + +### Vous devriez entrendre la bande sonore du jeu pourtant le serveur ne possède pas de carte audio ? + +La carte audio est émulée. + +### Si vous fermez la fenêtre du client, que se passe-t-il du côté du serveur ? + +La VM continue de fonctionner même si le client s'est déconnecté. + +### Vous est-il possible de copier coller du texte entre la VM et la machine hôte + +Oui, magie.