#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
Questa pagina raccoglie risposte a domande frequenti relative a [[Virtualizzazione/Kvm|KVM]] in ambienti Ubuntu moderni (22.04 e successivi). Alcune sezioni potrebbero trattare argomenti di interesse storico o specifico per sistemi operativi guest meno recenti.
= Gestione conflitti con altri hypervisor =
'''[[Virtualizzazione/Kvm|KVM]]''', come altri hypervisor quali '''[[Virtualizzazione/VirtualBox|VirtualBox]]''', richiede l'accesso esclusivo alle estensioni di virtualizzazione hardware (''Intel VT-x/AMD-V'') del processore. Questo significa che solo un hypervisor può utilizzare queste estensioni in un dato momento. Se i moduli '''KVM''' sono caricati e in uso, anche senza VM attive, altri hypervisor potrebbero non riuscire ad avviarsi in modalità virtualizzazione hardware.
== Prevenire conflitti con altri hypervisor ==
0. Assicurarsi che tutte le macchine virtuali '''KVM''' siano spente. È consigliabile farlo tramite '''virt-manager''' oppure comando:{{{
virsh shutdown NOME_VM`
}}}
0. Fermare il servizio '''libvirtd'''. Questo è il demone che gestisce le macchine virtuali '''KVM''' e che spesso mantiene i relativi moduli caricati.{{{
sudo systemctl stop libvirtd
}}}
0. Rimuovere i moduli '''KVM''' del kernel. Dopo aver fermato '''libvirtd''' e assicurandosi che nessuna macchina virtuale '''KVM''' sia in esecuzione (anche avviata direttamente con '''qemu-system-x86_64'''), è possibile tentare di rimuovere i moduli per liberare le estensioni hardware di virtualizzazione.{{{
sudo modprobe -r kvm_intel kvm_amd kvm
}}}Una volta che i moduli KVM sono stati rimossi con successo è possibile avviare '''!VirtualBox''' o altro hypervisor.
{{{#!wiki note
Questo comando potrebbe restituire un errore come '''modprobe: FATAL: Module kvm is in use''' se i moduli sono ancora in uso da qualche processo residuo. In tal caso potrebbe essere necessario identificare e terminare il processo oppure come ultima risorsa '''riavviare il sistema'''.
}}}
== Ripristinare KVM ==
* Per ripristinare '''KVM''' dopo aver utilizzato un altro hypervisor è sufficiente avviare il servizio '''libvirtd''':{{{
sudo systemctl start libvirtd
}}}Questo ricaricherà automaticamente i moduli '''KVM''' necessari (ad esempio ''kvm'', ''kvm_intel'' o ''kvm_amd'') e riabiliterà la gestione delle VM '''KVM'''.
= Avvio VM con accesso al BIOS o GRUB =
Una macchina virtuale ha un BIOS/UEFI completo e può eseguire [[AmministrazioneSistema/Grub|GRUB]]. Talvolta la finestra della VM appare dopo che il BIOS o il menù di GRUB sono già scomparsi. Per assicurarsi di avere il tempo sufficiente per interagire con il BIOS o '''GRUB''' :
0. spegnere la macchina virtuale.
0. Eseguire '''virt-viewer''' con l'argomento `--wait`:{{{
virt-viewer --wait NOME_VM
}}}In questo modo '''virt-viewer''' attenderà l'avvio della macchina virtuale e la sua finestra apparirà non appena la VM inizia il boot.
0. Avviare la macchina virtuale. Dovrebbe esserci il tempo sufficiente per poter interagire con il BIOS/UEFI, (premendo '''Canc''' o '''F2''' all'avvio) o con '''GRUB'''.
Se si sta utilizzando una macchina virtuale creata con strumenti specifici o configurazioni meno recenti e si riscontrano problemi di autenticazione o avvio, un metodo generico per accedere a una shell di ripristino è:
0. selezionare nel menù [[AmministrazioneSistema/Grub|GRUB]] la linea per il ripristino `recovery mode` e premere '''e''' per modificare.
0. Selezionare la linea che inizia con `linux` o `kernel` e premere ancora '''e'''.
0. Aggiungere alla fine della linea `init=/bin/sh`
0. Confermare con '''Invio''' e premere '''b''' (o '''F10''' a seconda della versione di '''GRUB''') per avviare il kernel con queste impostazioni. Questo fornisce una '''shell root''' senza autenticazione per la risoluzione dei problemi.
= Sincronizzazione ora =
Le macchine virtuali KVM moderne possono e dovrebbero utilizzare protocolli standard come '''[[Server/SincronizzazioneTempoNtp|NTP (Network Time Protocol)]]''' o '''systemd-timesyncd''' (nei guest Linux) per mantenere l'ora sincronizzata, esattamente come farebbe una macchina fisica.
Non è necessario rimuovere o disabilitare '''ntpd''' o servizi simili nel guest. L'hypervisor fornisce un orologio hardware virtuale (RTC) che il sistema guest usa come base e il software di sincronizzazione dell'ora nel guest si occuperà di eventuali derive. Per una migliore precisione è consigliato che il guest esegua il suo servizio NTP.
= Driver video per Xorg nei sistemi guest Linux =
{{{#!wiki note
Per le massime prestazioni e funzionalità moderne (come il supporto 3D e la risoluzione dinamica) nei sistemi guest Linux su KVM, si raccomanda caldamente l'utilizzo del driver '''virtio-gpu''' con '''virglrenderer'''.
}}}
== Driver legacy ==
Durante la prima installazione di un ospite Linux, o per la massima compatibilità, si possono utilizzare driver video generici:
* '''cirrus''': driver molto semplice e compatibile ma con risoluzioni limitate.
* '''vesa''' (o '''std'''): offre risoluzioni maggiori (fino a 1600x1200) rispetto a cirrus, ma con funzionalità grafiche base.
In generale, i sistemi Linux moderni configurano automaticamente i driver '''Xorg''' e non richiedono un file `xorg.conf` manuale. Tuttavia se si necessita di forzare una configurazione specifica o si usano driver non ''autodetect'', un file `xorg.conf` potrebbe essere creato. Quindi per poter utilizzare i driver '''standard''' procedere come segue:
Un esempio di xorg.conf per i driver '''vesa''' (o '''std''') in un guest KVM, che permette risoluzioni superiori a 800x600.
0. Aprire con i [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] e un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/X11/xorg.conf`:{{{
Section "ServerLayout"
Identifier "KVM xorg.conf"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Module"
Load "record"
Load "dri"
Load "extmod"
Load "glx"
Load "dbe"
Load "dri2"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse0"
# Per mouse PS/2 emulato, usare 'vmmouse'. Per virtio-input, non è necessario un driver specifico xorg.
Driver "vmmouse"
Option "Protocol" "SysMouse"
Option "Device" "/dev/sysmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Virtual Monitor"
ModelName "KVM Monitor"
HorizSync 20.0 - 50.0
VertRefresh 40.0 - 80.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Card0"
Driver "vesa"
VendorName "QEMU/KVM"
BoardName "Standard VGA"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Modes "1600x1200" "1024x768" "800x600"
EndSubSection
EndSection
}}}
0. Per modificare la risoluzione è possibile cambiare i valori alla voce `Modes`.
== Configurazione driver video VM ==
La configurazione del driver video per un guest KVM varia a seconda dello strumento utilizzato per gestire la VM:
=== Linea di comando (qemu-system-x86_64) ===
* Per utilizzare il driver '''std''' (standard VGA), usare l'opzione `-vga std`:{{{
qemu-system-x86_64 -hda ubuntu.qcow -vga std
}}}
* Per '''virtio-gpu''' (raccomandato) si userebbe:{{{
qemu-system-x86_64 -hda ubuntu.qcow -vga virtio -display sdl,gl=on
}}}
{{{#!wiki note
L'opzione -display sdl,gl=on abilita il rendering OpenGL con virglrenderer se supportato dall'host e dal guest).
}}}
=== Virt-manager ===
A ospite spento accedere alle impostazioni hardware della VM.
0. Nella sezione ''''Video'''' selezionare il modello desiderato (es. '''QXL''' o '''virtio''').
0. Per '''virtio-gpu''' è spesso necessario assicurarsi che sia presente anche il supporto 3D, selezionando la casella appropriata se disponibile nell'interfaccia.
=== Libvirt (file XML) ===
Modificare il file XML dell'ospite per impostare il modello video.
* Per un driver standard VGA:{{{
}}}
* Per QXL (buone prestazioni, richiesto '''spice-vdagent''' nel guest):{{{
}}}
* Per '''virtio-gpu''' (raccomandato per Linux guest moderni, per prestazioni ottimali e 3D con '''virglrenderer'''):{{{
}}}
I driver del mouse vmmouse sono presenti nella maggior parte delle distribuzioni Linux, ma per una migliore integrazione efunzionalità come il puntatore automatico, è raccomandato installare i '''qemu-guest-agent''' e usare '''virtio-input''' (spesso implicito con '''virtio-gpu''').
= Impostazione risoluzione guest con driver legacy =
Nell'eventualità che si stiano utilizzando driver video legacy (es. '''vesa''') in un guest Linux e un '''xorg.conf''' manuale, per variare la risoluzione è sufficiente editare il file `xorg.conf` modificando i valori del parametro `Modes`.
In alternativa, in modalità grafica, le impostazioni di risoluzione sono gestite dal desktop environment:
* In [[AmbienteGrafico/Gnome|Gnome]]: '''''Sistema → Preferenze → Monitor''''' (o '''''Impostazioni → Schermi''''').
* In [[AmbienteGrafico/Xfce|XFCE]]: '''''Applicazioni → Impostazioni → Display'''''.
{{{#!wiki note
Con il driver '''virtio-gpu''' (raccomandato), la risoluzione è solitamente gestita in modo dinamico e automatico dal desktop environment del guest, rendendo le modifiche manuali a `xorg.conf` superflue.
}}}
= Impostazioni raccomandate per specifici sistemi guest =
== Windows XP/Vista (e precedenti) ==
Per alcune versioni di Windows più vecchie (pre-Windows 7), la configurazione ACPI predefinita di KVM/QEMU potrebbe causare problemi. Se si riscontrano instabilità provare a modificare la sezione `` nel file `.xml` della VM.
* Per Windows XP (e precedenti), se si hanno problemi con ACPI, provare a rimuovere `` o `` nella sezione ``.
* Per Windows Vista, in alcuni casi l'aggiunta esplicita di ACPI può migliorare la stabilità (se non già presente):{{{
...
}}}Si consiglia di verificare la documentazione specifica per la versione di Windows in uso e per la versione di QEMU/KVM.
== OpenBSD (versioni legacy) ==
Questa sezione è obsoleta per le versioni moderne di OpenBSD. I problemi con driver di rete rtl8139 e watchdog timeout (per OpenBSD 4.1) o blocchi al boot (per OpenBSD 4.5) sono specifici di versioni molto vecchie.
Per le versioni moderne di OpenBSD su KVM, è fortemente raccomandato l'uso dei driver virtio (NIC, disco, ecc.) per prestazioni e stabilità ottimali.
= Ulteriori risorse =
* [[https://help.ubuntu.com/community/KVM/FAQ|Documento originale]] (potrebbe contenere informazioni obsolete)
----
CategoryVirtualizzazione