Mes ressources pour le Web

Utliser une machine virtuelle avec qemu-system

Le but est d'installer Qemu est un émulateur de matériel, capable de simuler des processeurs i386 et x86-64 pour tester des ISOs Debian et éventement installer cette distribution afin de vérifier la réalisations des ISOs.

Nota on défini la machine hôte (host) comme étant votre ordinateur et la machine virtuelle est l'invitée (guest)

0 Pour vérifier que le microprocesseur de la machine permet la virtualisation avec un test en ligne de commande
egrep '^flags.*(vmx|svm)' /proc/cpuinfo >/dev/null && echo OK || echo KO
Donc si le résultat est OK c'est bon sinon c'est loupé

Dans cette page  linux est le nom de l’utilisateur Il faut donc adapter le nom suivant votre nom d'ulisateur.

Les manipulations sont faites en ligne de commande en terminal administrateur
1 - Pour une nouvelle installation : il faut donc commencer comme normalement par
sudo -s
# mise à jour éventuelle des paquets
apt-get update

2- Puis installation pour une utilisation console seule (Ici Debian 11 XFCE)
apt install ovmf qemu-system-x86
Nota ovmf est "UEFI firmware for 64-bit x86" pour tester les ISOs en mode UEFI

....
Les NOUVEAUX paquets suivants seront installés :
ibverbs-providers ipxe-qemu libaio1 libbrlapi0.8 libcacard0 libcapstone4
libdaxctl1 libexecs0 libfdt1 libibverbs1 libndctl6 libpmem1 librdmacm1
libslirp0 libspice-server1 libusbredirparser1 libvdeplug2 libvirglrenderer1
libxencall1 libxendevicemodel1 libxenevtchn1 libxenforeignmemory1
libxengnttab1 libxenhypfs1 libxenmisc4.14 libxenstore3.0 libxentoolcore1
libxentoollog1 ovmf qemu-system-common qemu-system-data qemu-system-gui
qemu-system-x86 qemu-utils seabios

Pour qemu-system-x86 en console
Suivant les combinaisons de nombreuse possibilités sont possible (information EN)

sudo qemu-system-x86_64 -enable-kvm [options] # commande de base pour 64 bits
sudo qemu-system-i386 -enable-kvm [options] # commande de base pour 32 bits 
[options]
-m 2G # mémoire de la machine ici 2 Go
-rtc clock=host,base=localtime # horlage de la machine
-nic none # désactive le reseau
-serial none -parallel none # pas de port série pas deport parralèle
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd # utilisation de UEFI
-drive file=/dev/sdb,format=raw,index=0,media=disk
# utilisation d'une clef USB /sdb créée à partir d'un fichier ISO
-cdrom /home/linux/df-amd64.iso
# utilisation d'un fichier ISO depuis le disque dur de votre ordinateur
-drive id=disk0,format=qcow2,file=/home/linux/df-disk.qcow2
# utilisation d'un disque virtuel *.qcow2 sur votre disque dur
-usb -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,vendorid=0x0930,productid=0x6533
# utilisation d'une clef USB qui sera montée dans la machine virtuelle
# clef détectée en console par lsusb => Bus 001 Device 010: ID 0930:6533 Txxx. xxxM Stick
-soundhw all # permet d'avoir le son ? Aide qemu-system-x86_64 -soundhw help
-boot menu=on # permet de choisir le boot
-boot c # Démarre directement sur le disque dur virtuel
-boot d # Démarre directement sur le cd/clef ISO

qemu-img create -f qcow2 df-disk.qcow2 10G 
# permet de créer un disque virtuel nommé df-disk au format qcow2 de de 10 Go 

Quelques exemples
Attention si vous faite un copier/coller des lignes des exemples, le code final  à coller dans le terminal, doit être sur une seule ligne et vérifier bien vos données.
(ici les exemples sont sur plusieurs lignes pour simplifer l'affichage)

Live USB direct depuis une clef USB live (sdb) créée à partir de l'ISO
il faut insérer la la clef USB et vérifier que la clef est bien identifiée /dev/sdb (avec fdisk -l)
sudo qemu-system-x86_64 -enable-kvm -m 2G  -rtc clock=host,base=localtime -serial none -parallel none
-drive file=/dev/sdb,format=raw,index=0,media=disk

Live USB direct depuis un fichier ISO (dfl-amd64.iso) sur le disque dur
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-cdrom /home/linux/dfl-amd64.iso

LIVE direct en mode UEFI depuis un fichier ISO (dfl-amd64.iso) sur le disque dur
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-drive if=pflash,format=raw,readonly,file=/usr/share/OVMF/OVMF_CODE.fd
-cdrom /home/linux/dfl-amd64.iso

Définir un disque virtuel de 10 Go 
qemu-img create -f qcow2 /home/linux/df-disk.qcow2 10G 
Cela donnera
Formatting '/home/linux/df-disk.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536
lazy_refcounts=off refcount_bits=16

Live USB direct depuis un fichier ISO (dfl-amd64.iso) sur le disque dur pour définir les partitions du disk df-disk.qcow2
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-cdrom /home/linux/dfl-amd64.iso
Ensuite quitter le live pour redémarrer pour réaliser l'installation depuis le fichier ISO (dfl-amd64.iso) directement avec le fichier ISO (dfl-amd64.iso) en bootant sur l'ISO par menu de lancement sur ISO (-boot d)
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-drive id=disk0,format=qcow2,file=/home/linux/df-disk.qcow2
-cdrom /home/linux/dfl-amd64.iso -boot d
Une fois l’installation terminée lancer directement la machine depuis le disque virtuel disk df-disk.qcow2 (-boot c) et la possibilité d'avoir le son, tout en ajoutant une une clef USB qui sera montée dans la machine virtuelle (clef détectée en console par lsusb qui donnera : Bus 001 Device 010: ID 0930:6533 Txxx. xxxM Stick)
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-drive id=disk0,format=qcow2,file=/home/linux/df-disk.qcow2 -boot c -soundhw all
-usb -device usb-ehci,id=ehci -device usb-host,bus=ehci.0,vendorid=0x0930,productid=0x6533

Depuis une clef USB avec fichier ISO (dflinuxe-11.0-rc1a-amd64) utiliser en Live pour installer sur le disque virtuel disk df-disk.qcow2 afin de définir les partitions du disk df-disk.qcow2
- avec choix du menu de lancement (-boot menu=on)
- et la possibilité d'ajouter une une clef USB qui sera montée dans la machine virtuelle (clef détectée en console par lsusb qui donnera : Bus 001 Device 011: ID 13fe:4223 Kingston Technology Company Inc)
sudo qemu-system-x86_64 -enable-kvm -m 2G -rtc clock=host,base=localtime -serial none -parallel none
-drive id=disk0,format=qcow2,file=/home/linux/df-disk.qcow2 -drive file=/dev/sdb,format=raw,
index=1,media=disk -boot menu=on -usb -device usb-ehci,id=ehci
-device usb-host,bus=ehci.0,vendorid=0x13fe,productid=0x4223
test_deb11_dd10_clefmax_r  Écran de démarrage pour le choix
Nota ici dans ce cas, aprés lancement le logiciel Gparted détectera le Sda pour le disk (df-disk.qcow2) 10G, l'iso 11.0-rc1a-amd64 sera le Sdb  ET le Sdc sera le clef Kingston Technology


Merci de me signaler les erreurs ou omissions  

Original du 01/05/2021
Modification 29/10/21 Debian 11.1 XFCE

Document http://jc.etiemble.free.fr/abc/ JCE - version du 18/11/2021-0 CC_licence


...