Mise à jour : Debian Buster 11.1 / Bullseye
Installer la version de qemu pour l'architecture ou les architectures souhaitées. La liste des familles d'architectures disponibles est affichable avec
$ 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
Lorsque le processeur supporte la virtualisation, qemu utilise les modules kvm, ce qui accélère considérablement la vitesse de l'émulation.
Pour un processeur intel, la virtualisation est signalée par la présence du flag vmx
$ grep --color vmx /proc/cpuinfo
Pour un processeur amd, la virtualisation est signalée par la présence du flag svm
$ grep --color svm /proc/cpuinfo
Les modules kvm, kvm-intel ou kvm-amd sont chargés
$ lsmod |grep kvm
kvm_intel 323584 0
kvm 1019904 1 kvm_intel
irqbypass 16384 1 kvm
Le lancement d'une émulation s'effectue au moyen
d'une commande spécifiant l'architecture à émuler : qemu-system-<architecture_émulée>
suivie d'une liste d'options, telles que
caractéristiques de l'émulation (taille mémoire, nombre de cpus, type d'affichage...)
liste de périphériques de stockage réels ou virtuels avec leurs priorités
des options d'amorçage du système (priorités, écran de bios, uefi, ...)
$ qemu-system-x86_64
La commande lance l'amorçage de la plate-forme par défaut bios
-accel kvm
-cpu host
-m 2048
Par défaut, un seul processeur est attribué à l'émulation. Utiliser l'option -smp suivie du nombre de processeurs attribué à l'émulation, ci-dessous 4 processeurs (sur les 8 disponilbles)
-smp 4
-net none
-bios /usr/share/seabios/bios.bin
-bios bios.bin
-boot order=c
-boot order=d
-boot once=d,order=c
$ qemu -boot menu=on
Press ESC for boot menu
-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
$ 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 ....
$ 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