La procedura è stata testata su Arch e Fedora; non dovrebbero esserci problemi anche con Debian e derivate. Quando possibile ci serviremo del terminale, ma non mancherà anche una parte su interfaccia grafica, che in questo caso aiuta a semplificare molto delle operazioni.
Vedi anche Virtualizzare con KVM .
Virt-manager è un ottimo strumento per la creazione e la gestione di macchine virtuali basate su KVM, e può essere considerato un alternativa più ottimizzata rispetto a software come Virtualbox.
Per consuetudine la rappresentazione dei comandi avviene con il prefisso "$ ", che non va digitato nella shell.
I pacchetti richiesti in ordine alfabetico: dnsmasq, iptables-nft, qemu-desktop, virt-manager. Per Arch il comando sarà quindi:
$ sudo pacman -Sy dnsmasq iptables-nft qemu-desktop virt-manager
Ora dobbiamo abilitare il servizio libvirtd:
$ sudo systemctl enable --now libvirtd.service
Il parametro --now abilita il servizio immediatamente (senza specificarlo sarebbe richiesto il riavvio) ed equivale ad impartire successivamente systemctl start.
Per proseguire ci acciangiamo ad aggiungere alla fine del file (appendere) /etc/libvirt/libvirtd.conf due righe per abilitare l'uso anche ad utenti non amministratori.
$ sudo echo -e "\n# Modifica $(date +"%d %B %Y")\nunix_sock_group = 'libvirt'\nunix_sock_rw_perms = '0770'" >> /etc/libvirt/libvirtd.conf
Echo, il comando che scrive ciò che viene digitato dopo la sua invocazione, grazie al parametro -e interpreta la \n come "nuova riga" e appende nel file tutto ciò che è all'interno dei doppi apici seguendo le direttive dell'operatore di redirezione >> .
Nello specifico avremo:
Un'operazione simile andrà effettuata anche sul file /etc/libvirt/qemu.conf.
$ sudo echo -e "\n# Modifica $(date +"%d %B %Y")\nuser = 'luca'\ngroup = 'luca'" >> /etc/libvirt/qemu.conf
In questo caso abbiamo specificato il nome e il gruppo del nostro utente - occhio a modificare il comando con i dati corretti - in un altro file di configurazione di libvirt.
Il penultimo comando necessario abiliterà l'avvio automatico della connessione di rete predefinita, utilizzabile dalle macchine virtuali:
$ sudo virsh net-autostart default
Infine dobbiamo riavviare il servizio libvirtd:
$ sudo systemctl restart libvirtd
In generale, e viste le modifiche apportate nei paragrafi precedenti, è preferibile utilizzare una sessione utente.
Di default al primo avvio, virt-manager si aprirà con attiva la sessione di sistema.
Per disattivarla è sufficiente fare clic con il tasto destro sul nome della connessione QEMU/KVM, cliccare prima su Disconnect - la traduzione lascia alquanto a desiderare - e poi su Delete.
Finalmente l'ultimo passaggio. Senza abbandonare l'interfaccia dell'applicazione, aprite il menu File>Aggiungi connessione..., scegliete l'hypervisor QEMU/KVM Sessione utente dal menu a tendina, attivate la Connessione automatica - dovrebbe essere già spuntata - e confermate il tutto.
Ora sarà possibile creare e gestire macchine virtuali direttamente da virt-manager, e senza la necessità di impersonare l'utente root.
Virtualbox e gli altri hypervisor di tipo 2 sono nettamente più semplici da configurare, ma KVM è una peculiarità del kernel Linux che non si può ignorare.