Conversion avec l'outil de VirtualBox (format VDI) :
vboxmanage convertfromraw debian10x.img --format vdi debian10x.vdi vboxmanage convertdd debian10x.qcow2 --format vdi debian10x.vdi
Conversion avec l'outil de QEMU :
qemu-img convert debian10x.img -O raw debian10x.raw qemu-img convert -O qcow debian10x.img debian10x.qcow # QCOW Image V1 qemu-img convert -O qcow2 -o compat=0.10 debian10x.img debian10x.qcow2 # QCOW Image V2 qemu-img convert -O qcow2 debian10x.img debian10x.qcow3 # QCOW Image V3 (default) !!!
QCOW v1 & v2 sont supportés… QCOW Image v3 supporté à partir de VirtualBox 6.0.8 (?).
Check nested virtualization inside QEMU :
For kvm_intel module, check /sys/module/kvm_intel/parameters/nested is “Y”… Else
# If you have an Intel CPU, use this: $ cat > /etc/modprobe.d/kvm_intel.conf options kvm-intel nested=Y
Enable Intel VMX cpu flag in bios, then in /etc/default/grub and add “intel_iommu=on” to GRUB_CMDLINE_LINUX line. Then, sudo update-grub
Check IOMMU is OK with command: virt-host-validate qemi
Quick Test:
$ qemu-system-x86_64 -vnc :0 $ vncviewer localhost
If you get the error message “Could not read keymap file: 'en-us'”, you will need to install an extra package:
$ sudo apt-get install qemu-system-data
Spice is similar to VNC… Need special graphic card “qxl”
$ qemu-system-x86_64 -vga qxl -spice port=5900,addr=127.0.0.1,disable-ticketing
Se connecter avec un viewer à la VM avec:
$ sudo apt-get install virt-viewer $ remote-viewer spice://127.0.0.1:5900
In order to add copy & paste support:
$ SPICEOPT="-vga qxl -spice port=5900,addr=127.0.0.1,disable-ticketing" $ SPICEMORE="-device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0" $ qemu-system-x86_64 -enable-kvm -hda kali.img -name syl -m 2G $SPICEOPT $SPICEMORE
Installez spice-vdagent sur le guest (linux) et vérifiez que les services space-vdagentd et spice-vdagent sont bien démarrés…
$ sudo apt-get install spice-vdagent $ sudo systemctl enable spice-vdagentd $ sudo systemctl enable spice-vdagent $ sudo systemctl daemon-reload $ sudo rm -f /var/run/spice-vdagentd/* $ sudo reboot
Pour windows, il faut installer : https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe
Bon, l'installation sous “windaube” est assez capricieuse… Une fois spice guest tools installé en display normal, faire plusieurs reboot avec les options suivantes incrémentalement, jusqu'à ce que ça tombe en marche !
$ SPICEOPT1="-vga qxl" $ SPICEOPT2="$SPICEOPT1 -spice port=5900,addr=127.0.0.1,disable-ticketing" $ SPICEOPT3="$SPICEOPT2 -device virtio-serial -chardev spicevmc,id=vdagent,name=vdagent -device virtserialport,chardev=vdagent,name=com.redhat.spice.0"
(Eventuellement, faire un reboot avec vdaagent sans spice… Après un plantage, j'ai réinstallé spice guest tools et c'est retombé en marche après deux reboot?)
# elif [ "$QEMUDISPLAY" = "socket" ] ; then # unix socket mode # # bug: with this option, any ctrl-c (SIGINT) in VM will kill all qemu session! # # solution: use socat in raw mode with escape option! # CMD="$CMD -monitor unix:$SESSIONDIR/$HOSTNAME.monitor,server,nowait" # # redirect both qemu monitor & console in two Unix sockets, that can be connected with socat # # $ socat stdin,raw,echo=0 unix-connect:session/<hostname>.sock # CMD="$CMD -serial unix:$SESSIONDIR/$HOSTNAME.sock,server" # wait client connection, else use "nowait" option # # CMD="$CMD -nographic" # CMD="$CMD -display none" # echo "[$HOSTNAME] $CMD" # bash -c "${CMD[@]}" &
# if [ "$QEMUDISPLAY" = "socket" ] ; then # echo "=> To access the QEMU console of each VM, please use the command:" # echo " $ ./connect.sh <session_dir> <vm_hostname>" # fi