Qemu

Da Andreabont's Wiki.

Qemu è un software di virtualizzazione in grado di emulare architetture diverse da quella del computer fisico tramite la tecnica della traduzione dinamica. Sfruttando KVM lato kernel (dove possibile) qemu è in grado di gestire macchine virtuali secondo la tecnica della paravirtualizzazione.

Supporto hardware

Per migliorare le prestazioni è consigliato virtualizzare su un processore che supporta le funzioni di virtualizzazione assistita, per verificare se il vorsto hardware lo supporta eseguire:

egrep '(vmx|svm)' /proc/cpuinfo

Se è supportata visualizzerà VMX nel caso di un processore Intel e SVM nel caso di un processore AMD.

Gestione delle immagini disco

Così come in altri software di virtualizzazione, il disco rigido di una macchina virtuale può essere virtualizzato a partire da un file immagine. Qemu supporta molti formati, ma è consigliabile usare qcow2.

Creare una immagine disco

qemu-img create -f qcow2 <Nome_Immagine> <Dimesione_HDD>

Convertire immagini

Con qemu-img è possibile convertire le immagini tra vari formati noti:

qemu-img convert <Immagine_IN> -O qcow2 <Immagine_OUT>

Formati supportati

Formato Codice
QCOW2 (KVM, Xen) qcow2
QED (KVM) qed
RAW raw
VDI (VirtualBox) vdi
VHD (Hyper-V) vpc
VMDK (VMware) vmdk

Ridimensionare una immagine

qemu-img resize <Nome_Immagine> +10G

Creare un overlay di una immagine (snapshot)

qemu-img create -b <Immagine_IN> -f <Immagine_OUT>

Montare una immagine

qemu-nbd -c </dev/device> <immagine>
mount </dev/device> <punto_montaggio>

Installare un sistema operativo da immagine iso

qemu-kvm -hda <Nome_Immagine_HDD> -m <Dimensione_RAM> -cdrom <Nome_Immagine_ISO> -boot d -vga std

Avviare macchina virtuale

qemu-kvm -hda <Nome_Immagine_HDD> -m <Dimensione_RAM> -vga std

Avviare macchina virtuale in modalità snapshot

Questa funzionalità sfrutta un'overlay temporaneo, ogni dato salvato nella sessione verrà cancellato alla chiusura della macchina virtuale.

qemu-kvm -hda <Nome_Immagine_HDD> -m <Dimensione_RAM> -vga std -snapshot

Eseguire binario per un'altra architettura

qemu-<Arch> <File_Binario>