Émulateur Qemu - Kvm - Installation et options de base

Mise à jour : Debian Buster 11.1 / Bullseye

Sommaire

1 - Installation

1.1 - Qemu

$ aptitude search qemu-system- |grep binaires
p qemu-system-arm - binaires de QEMU pour l'émulation d'un système complet (arm)
p qemu-system-gui - binaires complets d’émulation de QEMU (interface utilisateur et gestion de l’audio)
p qemu-system-mips - binaires QEMU pour l'émulation d'un système complet – mips
p qemu-system-ppc - binaires QEMU pour l'émulation d'un système complet – ppc
p qemu-system-sparc - binaires QEMU pour l’émulation d'un système complet – sparc
p qemu-system-x86 - binaires QEMU pour l'émulation d'un système complet – x86
$ aptitude versions qemu-system-x86
i 1:5.2+dfsg-11+deb11u1 stable,stable-security 500
p 1:6.1+dfsg-6~bpo11+1 bullseye-backports 100
$ sudo aptitude install qemu-system-x86
$ qemu-system-
qemu-system-aarch64 qemu-system-x86_64
qemu-system-arm qemu-system-x86_64-microvm
qemu-system-i386
$ qemu-system-x86_64 --version
QEMU emulator version 5.2.0 (Debian 1:5.2+dfsg-11+deb11u1)
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

1.2 - Kvm

$ grep --color vmx /proc/cpuinfo
$ grep --color svm /proc/cpuinfo
$ lsmod |grep kvm
kvm_intel 323584 0
kvm 1019904 1 kvm_intel
irqbypass 16384 1 kvm

2 - Principe

Le lancement d'une émulation s'effectue au moyen

$ qemu-system-x86_64

La commande lance l'amorçage de la plate-forme par défaut bios

3 - Options

3.1 - Accélération, mémoire, processeurs, réseau

-accel kvm
-cpu host
-m 2048
-smp 4

3.2 - Accès réseau

-net none 

3.3 - Périphériques de stockage

4 - Sélection de l'amorçage

4.1 - Firmware

-bios /usr/share/seabios/bios.bin 

-bios bios.bin

4.2 - Amorçage automatique

-boot order=c
-boot order=d
-boot once=d,order=c

4.3 - Amorçage manuel

$ qemu -boot menu=on
Press ESC for boot menu

Menu Seabios

4.4 - Options spécifiques amorçage linux

-kernel vmlinuz-5.10.0-9-amd64 -initrd initrd.img-5.10.0-9-amd64 -append "root=/dev/sda1 quiet"

les paramètres de la ligne de commande du noyau, au minimum la racine du système, doivent être spécifiés en utilisant l'option -append

-kernel vmlinuz-4.19.0-10-arm64 -initrd initrd.img-4.19.0-10-arm64 \
-append "rw earlycon=pl011,0x3f201000 console=ttyAMA0 loglevel=8 root=/dev/mmcblk0p2 fsck.repair=yes net.ifnames=0 rootwait memtest=1" \ -dtb bcm2837-rpi-3-b-plus.dtb

5 - Simplification de la commande

5.1 - Alias

$ alias qemu="qemu-system-x86_64 -accel kvm -cpu host -m 2048 -smp 4"
$ qemu

et peut-être suivie par d'autres options

$ qemu -boot menu=on,order=c ....

5.2 - Scripts

$ cat qemu.sh
#!/bin/bash env

qemu-system-x86_64 -accel kvm -cpu host -m 2048 -smp 4 - boot menu=on,order=d ......
$ chmod u+x qemu.sh
$ ./qemu.sh

Si d'autres options suivent l'appel du script, elles ne seront pas prises en comte