Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento.

Guida verificata con Ubuntu: 22.04 24.04 25.10

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa pagina raccoglie risposte a domande frequenti relative a 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 dei conflitti con altri hypervisor (VirtualBox)

KVM, come altri hypervisor quali 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.

Avvio di una macchina virtuale con accesso al BIOS o GRUB

Una macchina virtuale ha un BIOS/UEFI completo e può eseguire GRUB. Talvolta, la finestra della VM appare dopo che il BIOS o il menù di GRUB sono già scomparsi.

La soluzione per assicurarsi di avere tempo per interagire con il BIOS o GRUB è:

  1. Spegnere la macchina virtuale.
  2. Eseguire virt-viewer con l'argomento --wait:

     virt-viewer --wait <nome_della_vm>
    In questo modo, virt-viewer attenderà l'avvio della macchina virtuale e la sua finestra apparirà immediatamente non appena la VM inizia il boot.
  3. Avviare la macchina virtuale. Questo approccio dovrebbe fornire il tempo necessario per interagire con il BIOS/UEFI (solitamente 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 (tipicamente per sistemi Linux) è:

  1. Nel menù di GRUB, selezionare la linea per il ripristino («recovery mode») e premere e per modificare.

  2. Selezionare la linea che inizia con «linux» o «kernel» e premere ancora e.

  3. Aggiungere alla fine della linea «init=/bin/sh».
  4. 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. Questa procedura è generica per Linux e non legata a bug specifici di ubuntu-vm-builder.

Conversione di macchine VMWare a virt-manager

Per gestire una macchina virtuale VMWare con virt-manager, il suo file .vmx può essere convertito in un file .xml compatibile con libvirt. Lo strumento vmware2libvirt è stato creato per facilitare questo compito ed è incluso nel pacchetto virt-goodies.

  1. Installare il pacchetto: virt-goodies.

  2. Digitare in un terminale il seguente comando per convertire il file .vmx in un file .xml per libvirt:

     vmware2libvirt -f ./file.vmx > file.xml
    • Per maggiori informazioni su vmware2libvirt, digitare:

  3. Definirlo, importare il file .xml in libvirt. Il file .xml importato viene memorizzato in /etc/libvirt/qemu:

     virsh -c qemu:///system define file.xml

Considerazioni sulla conversione

Anche se vmware2libvirt funziona bene su macchine virtuali semplici, sussistono alcune limitazioni dovute sia al fatto che i file .vmx non contengono tutte le informazioni necessarie per una conversione perfetta, sia al fatto che vmware2libvirt non analizza a fondo tutte quelle che trova.

Alcuni aspetti da verificare dopo la conversione:

  1. Anche se vmware2libvirt rileva un ospite a 64-bit, è necessario verificare che la corretta architettura sia stata riportata nel suo file .xml. Assicurarsi che la sezione <os> sia simile a:

     <os>
     <type arch='x86_64' machine='pc'>hvm</type>
     ...
     </os>
  2. vmware2libvirt rileva e configura solamente la prima interfaccia ethernet trovata. Ulteriori interfacce devono essere aggiunte manualmente tramite virt-manager o modificando il file XML.

  3. Attualmente, lo strumento configura il primo disco SCSI se trovato, altrimenti il primo disco IDE. Ulteriori dischi possono essere aggiunti tramite virt-manager o modificando il file XML.

  4. La macchina virtuale convertita è impostata all'uso di 1 sola CPU. Per modificarlo, editare il file XML e impostare il numero desiderato (es. 2):

     <vcpu>2</vcpu>
  5. vmware2libvirt non converte tutte le configurazioni specifiche di VMWare all'interno dell'ospite (es. VMWare Tools).

Uso e conversione di file su disco virtuale VMWare

KVM è in grado di utilizzare direttamente i file .vmdk di VMWare come dischi virtuali, a condizione che il disco sia interamente contenuto in un singolo file .vmdk (formato "monolithic flat" o "monolithic sparse"). Se VMWare ha suddiviso il disco in più file .vmdk più piccoli (solitamente da 2 GB), KVM non potrà usarli direttamente.

In quest'ultimo caso, è necessario riunire i file .vmdk in un unico file. Questo può essere fatto utilizzando vmware-vdiskmanager, uno strumento incluso in VMWare Workstation o VMWare Server (precedentemente distribuito gratuitamente):

vmware-vdiskmanager -r <Nome del file .vmdk suddiviso> -t 0 <Nome del nuovo file vmdk riunificato>

Una volta ottenuto un singolo file .vmdk, è possibile configurarlo nel file .xml della macchina virtuale in /etc/libvirt/qemu o tramite virt-manager. Esempio di configurazione XML:

...
<disk type='file' device='disk'>
<driver name='qemu' type='vmdk'/>
<source file='/var/lib/libvirt/images/diskname.vmdk'/>
<target dev='hda' bus='ide'/>
</disk>
...

Quindi ridefinire la macchina virtuale:

virsh -c qemu:///system define Nome_della_macchina.xml

Ricordare che finché il file .vmx è convertito in .xml, i dischi saranno usati in questo modo. Si consiglia di fare dei backup, specialmente se si prevede un utilizzo successivo della macchina virtuale in VMWare.

Per sfruttare appieno le funzionalità avanzate di QEMU/KVM, come gli snapshot basati sul formato di immagine, si consiglia di convertire il file .vmdk nel formato qcow2 di QEMU. Questo può essere fatto con l'utility qemu-img, inclusa nel pacchetto qemu-utils:

qemu-img convert nomedisco.vmdk -O qcow2 nomedisco.qcow2

Dopo la conversione, modificare il file .xml della macchina virtuale per puntare al nuovo file .qcow2 e ridefinirla.

Recupero degli strumenti di VMWare dopo la conversione

Dopo la conversione di una macchina virtuale da VMWare a libvirt (KVM/QEMU), è importante rimuovere i VMWare Tools se installati nel sistema operativo guest. In caso contrario, questi strumenti potrebbero causare problemi (es. sovrascrittura di xorg.conf per i guest Linux) o conflitti con i driver e agent QEMU/KVM.

Conversione di macchine fisiche a virt-manager

Per convertire una macchina fisica Windows (in particolare versioni più vecchie come Windows XP) in una macchina virtuale KVM, è spesso necessario abilitare i driver IDE nei registri di Windows prima della conversione, per evitare schermate blu all'avvio della VM.

Vedere anche l'articolo della Microsoft Knowledge Base 314082 per ulteriori informazioni su questo problema.

Utilizzo di VMWare Converter

VMWare Converter è uno strumento gratuito e ben noto per migrare una macchina fisica in un'immagine virtuale VMWare (P2V - Physical To Virtual). Il primo passo consiste nel convertire la macchina fisica in un'immagine VMWare. Successivamente, seguire le istruzioni nel paragrafo Conversione di macchine VMWare a virt-manager per importare l'immagine VMWare in KVM/libvirt.

Utilizzo di strumenti Linux per P2V

Per la conversione di macchine fisiche a virtuali (P2V) su Linux, si possono consultare risorse esterne specializzate. Ad esempio, il libro tedesco su QEMU menziona strategie per il "physical to virtual". Cercare la sezione "physical to virtual" in questa risorsa (selezionare il link English per la traduzione).

Sincronizzazione dell'ora nelle macchine virtuali

Le macchine virtuali KVM moderne possono e dovrebbero utilizzare protocolli standard come 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

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'uso 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:

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 usare 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.

Configurazione del driver video nella VM

La configurazione del driver video per un guest KVM varia a seconda dello strumento utilizzato per gestire la VM:

Impostazione della risoluzione del guest in Linux (con driver legacy)

Nell'eventualità che si stiano usando 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 nella linea Modes.

In alternativa, in modalità grafica, le impostazioni di risoluzione sono gestite dal desktop environment:

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 <features> nel file .xml della VM.

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


CategoryHomepage CategoryNuoviDocumenti

ivantu/Virtualizzazione/Kvm/DomandeFrequenti (l'ultima modifica è del 21/10/2025 15.07.23, fatta da ivantu)