|
Dimensione: 12892
Commento: converted to 1.6 markup
|
← Versione 35 del 25/10/2025 11.16.54 ⇥
Dimensione: 11295
Commento: revisione - spostata sezione "Conversione macchine" nella pagina Virtualizzazione/Kvm/ConversioneMacchine
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## page was renamed from Emulatori/Kvm/DomandeFrequenti ## page was renamed from FabioMarconi/Prove12 ## page updated 24-05-2010 |
|
| Linea 5: | Linea 2: |
| #language it | #LANGUAGE it <<BR>> |
| Linea 7: | Linea 5: |
| <<BR>><<BR>><<BR>><<BR>><<BR>><<BR>><<BR>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617")>> = Prevenzione dei conflitti tra KVM e Virtualbox = Durante l'installazione '''KVM''' carica alcuni moduli che impediscono l'esecuzione di altri software per la virtualizazione, come ad esempio '''!VirtualBox'''. Ovviamente è possibile disabilitare '''KVM''' e scaricare i suoi moduli: 0. Assicurarsi di avere spento tutte le macchine virtuali '''KVM''' (utilizzando ad esempio '''virt-manager'''). 0. Scaricare tutti i suoi moduli digitando in una finestra di terminale:{{{ sudo invoke-rc.d kvm stop }}} In '''Ubuntu 9.10''' usare:{{{ sudo invoke-rc.d qemu-kvm stop }}} ##Obsoleto ##= Avvio di una ISO di Dapper, Edgy, Feisty e Gutsy = ##Qui il problema è rapppresentato dall' hardware Intel, che limita le estensioni per la virtualizzazione, impedendo così una perfetta interazione con ##'''gfxboot'''. ##La parte difficile in questa procedura, è la modifica dell'immagine ISO, in modo da disabilitare '''gfxboot'''.{{{ ## sed -e 's/GFXBOOT bootlogo/#FXBOOT bootlogo/g' < ubuntu-7.10-server-amd64.iso > ubuntu-7.10-server-amd64-nogfxboot.iso ##}}} ##||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Non #modificare questo comando. La lunghezza della stringa non può cambiare, in caso contrario si avrà lo svuotamento del filesystem sul CD''.|| ##il link non funge ##Un metodo più sicuro è quello di utilizzare '''gfxboot-disable''' scaricabile a [http://hg.codemonkey.ws/gfxboot-disable questo indirizzo] e quindi eseguire:{{{ ## gfxboot-disable ubuntu-7.10-server-amd64.iso ##}}} = Avvio di una macchina virtuale in modalità singola = Una macchina virtuale ha un BIOS completo e può anche eseguire GRUB. La nota dolente sta nel fatto che sparisce dopo alcuni secondi, la maggior parte delle volte non si avrà nemmeno il tempo di eseguire una connessione usando '''virt-viewer'''. La soluzione è: * Spegnere la macchina virtuale. * Eseguire '''virt-viewer''' con l'argomento '''--wait''' ( in questo modo '''virt-viewer''' attenderà l'avvio di '''KVM''' e popperà immediatamente dopo). * Avviare la macchina virtuale. In questo modo si avranno circa due secondi per garantire l'accesso al BIOS o a GRUB. Se si sta eseguendo una macchina virtuale creata con '''ubuntu-vm-builder''' è probabile incontrare un piccolo bug che impedirà l'autenticazione. In questo caso procedere come segue: * Nel menù di GRUB selezionare la linea per il ripristino «recovery» e premere '''e'''. * Selezionare la linea che inizia con «kernel» e premere ancora '''e'''. * Aggiungere alla fine della linea «init=/bin/sh». * Confermare con invio e premere '''b''' per avviare il kernel con queste impostazioni. <<Anchor(ConversionedimacchineVMWareavirt-manager)>> = Conversione di macchine VMWare a virt-manager = Per gestire la macchina '''VMWare''' da '''virt-manager''', il file `.vmx` deve essere convertito nel file `.xmldi libvirt`. '''vmware2libvirt''' è stata creata per facilitare questo compito ed è stata inserita nel pacchetto ''virt-goodies'' installabile dal Gestore Pacchetti. Quindi: 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto: [[apt://virt-goodies | virt-goodies]]. 0. Digitare il seguente comando in un terminale:{{{ vmware2libvirt -f ./file.vmx > file.xml virsh -c qemu:///system define file.xml }}} Il primo comando converte il file `.vmx` di '''VMWare''' in un file `.xml` compatibile con '''libvirt'''. Per maggiori informazioni digitare:{{{ man vmware2libvirt }}} Il secondo comando importa il file `.xml` in '''libvirt'''. Il file `.xml` importato viene memorizzato in `/etc/libvirt/qemu`. == Minacce == Anche se '''vmware2libvirt''' funziona bene su macchine virtuali semplici, sussistono limitazioni dovute sia al fatto che i file `.wmx` non contengono tutte le informazioni necessarie, sia al fatto che '''vmware2libvirt''' non analizza a fondo tutte quelle che trova. Alcuni errori possono essere: 0. Anche se '''vmware2libvirt''' rileva un ospite a 64-bit è necessario verificare che la corretta architettura sia stata riportata nel suo file `.xml`:{{{ <os> <type arch='x86_64' machine='pc'>hvm</type> ... </os> }}} 0. '''vmware2libvirt''' rileva ed usa solamente la prima interfaccia ethernet trovata. ulteriori interfacce devono essere aggiunte tramite '''virt-manager'''. 0. Attualmente utilizza il primo disco scsi se trovato, altrimenti il primo disco ide. Ulteriori dischi possono essere aggiunti tramite '''virt-manager'''. 0. La macchina virtuale convertita è impostata all'uso di 1 sola CPU. Per modificare:{{{ <vcpu>2</vcpu> }}} 0. '''vmware2libvirt''' non converte tutto ciò che è specifico di '''VMWare''' all'interno dell'ospite. == Uso e conversione di file su disco virtuale VMWare == '''KVM''' riesce ad usare direttamente i file `.vmdk` di '''VMWare''' presenti su disco, sempre che il disco sia interamente contenuto in un singolo file `.vmdk`. Ma siccome '''VMWare''' permette anche di suddividere il disco in parti più piccole, solitamente 2GB, in questo caso '''KVM''' non potrà usare i file `.vmdk`. * È necessario quindi convertirli in un unico file su disco virtuale, utilizzando '''vmware-vdiskmanager''', incluso in '''VMWare Server'''(distribuito gratuitamente).{{{ vmware-vdiskmanager -r <Nome del file .vmdk suddiviso> -t 0 <Nome del nuovo file vmdk riunificato> }}} * Modificare il file `.xml` della macchina virtuale in `/etc/libvirt/qemu`:{{{ ... <disk type='file' device='disk'> <source file='/var/lib/libvirt/images/diskname.vmdk'/> <target dev='hda' bus='ide'/> </disk> ... }}} quindi ridefinirla: {{{ virsh -c qemu:///system define Nome della macchina.xml }}} Ricordare che fino a quando 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'''. * In questa modalità '''KVM''' non può catturare schermate. Per fare ciò si deve convertire il file su disco virtuale nel formato di '''qemu qcow2''', dato che il pacchetto ''qemu'' contiene l'utility '''qemu-img''' che consente la cattura delle schermate:{{{ qemu-img convert nomedisco.vmdk -O qcow2 nomedisco.qcow2 }}} * Cambiare il file `.xml` della macchina e ridefinirla. == Recupero degli strumenti di VMWare dopo la conversione == Convertendo da '''vmware''' a '''libvirt''', assicurarsi di rimuovere ''vmware-tools'', se installato (in caso contrario al riavvio sovrascriverà il file xorg.conf). == Conversione di macchine fisiche a virt-manager == Per convertire la macchina fisica Windows (XP) bisogna innanzitutto abilitare gli IDE nei registri. * Avviare la macchina ed eseguire [[http://www.proxmox.com/cms_proxmox/cms/upload/misc/mergeide.reg|mergeide.reg]]. * Vedere anche [[http://support.microsoft.com/kb/314082/en-us|Microsoft KB Article 314082]]. == Utilizzo di VMWare Converter == '''VMWare Converter''' è uno strumento libero per migrare una macchina fisica a '''VMWare'''. Il primo passo consite nel convertire la macchina fisica in una immagine '''VMWare'''. Quindi seguire questa guida al paragrafo [[#ConversionedimacchineVMWareavirt-manager|Conversione di macchine VMWare a virt-manager]]. == Utilizzo di strumenti Linux == Vedere il libro tedesco su '''qemu''' [[http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_Physical-to-Virtual|physical to virtual]]. Selezionare il link '''English''' per la traduzione in inglese. = Utilizzo di ntp per la sincronizzazione dell'ora = I sistemi ospiti non possono usare '''ntp''' per sincronizzare l'orologio, assicurarsi di rimuovere o disabilitare '''ntpd'''. = Driver utilizzabili da Xorg = == Video == Durante la prima installazione di un ospite Linux utilizare i driver '''cirrus'''. Successivamente se si desidera avere una risoluzione superiore a 800x600, si consiglia l'utilizzo dei driver '''standard'''. Il file `xorg.conf` non viene installato in modo predefinito. Quindi per poter usare i driver '''standard''' procedere come segue: * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/X11/xorg.conf`: {{{ |
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04")>> = 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`:{{{ |
| Linea 166: | Linea 75: |
| Identifier "BodhiZazen's KVM xorg.conf" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" |
Identifier "KVM xorg.conf" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" |
| Linea 173: | Linea 82: |
| Load "record" Load "dri" Load "extmod" Load "glx" Load "dbe" Load "dri2" |
Load "record" Load "dri" Load "extmod" Load "glx" Load "dbe" Load "dri2" |
| Linea 182: | Linea 91: |
| Identifier "Keyboard0" Driver "kbd" |
Identifier "Keyboard0" Driver "kbd" |
| Linea 187: | Linea 96: |
| Identifier "Mouse0" Driver "vmmouse" Option "Protocol" "SysMouse" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" |
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" |
| Linea 195: | Linea 105: |
| Identifier "Monitor0" VendorName "Monitor Vendor" ModelName "Monitor Model" HorizSync 20.0 - 50.0 VertRefresh 40.0 - 80.0 Option "DPMS" |
Identifier "Monitor0" VendorName "Virtual Monitor" ModelName "KVM Monitor" HorizSync 20.0 - 50.0 VertRefresh 40.0 - 80.0 Option "DPMS" |
| Linea 205: | Linea 114: |
| Identifier "Card0" Driver "vesa" VendorName "KVM - std" BoardName "GD 5446" BusID "PCI:0:2:0" |
Identifier "Card0" Driver "vesa" VendorName "QEMU/KVM" BoardName "Standard VGA" BusID "PCI:0:2:0" |
| Linea 213: | Linea 122: |
| Identifier "Screen0" Device "Card0" Monitor "Monitor0" SubSection "Display" Viewport 0 0 Modes "1600x1200" EndSubSection EndSection }}} Per modificare la risoluzione è possibile cambiare i valori all'interno della linea «Modes». La configurazione dei driver video standard varia a seconda della modalità di utilizzo di KVM: '''Linea di comando''' Usare l'opzione -vga std {{{ kvm -hda ubuntu.qcow -vga std }}} '''Virtmanager''' Ad ospite spento, andare nella pagina di visualizzazione dell'ospite e selezionare la scheda ''Video'' sulla destra, quindi dal menù a discesa scegliere ''vga'' invece di ''cirrus''. '''Libvirt''' Editare il file ''xml'' dell'ospite per impostare il video a ''std'' con: {{{ |
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:{{{ |
| Linea 244: | Linea 161: |
I driver del mouse, vmmouse, sono presenti nella maggior parte delle distribuzioni Linux. = Impostazione della risoluzione dell'ospite in Xorg = Nell'eventualità che si stia usando i driver standard, per variare la risoluzione è sufficiente editare il,file xorg.conf, oppure in modalità grafica tramite: in Gnome Sistema → Preferenze→ Monitor in XFCE Applicazioni → impostazioni → Display = Impostazioni raccomandate per specifici sistemi = == Windows (<Vista) == Nelle macchine virtuali Windows (diversi da Vista) sostituire nel file `.xml`: {{{ <features> <acpi/> </features> }}} con: {{{ <features/> }}} == Windows Vista == Nelle macchine virtuali Windows Vista aggiungere nel file `.xml`: {{{ |
* Per QXL (buone prestazioni, richiesto '''spice-vdagent''' nel guest):{{{ <model type='qxl' vram='65536' heads='1'/> }}} * Per '''virtio-gpu''' (raccomandato per Linux guest moderni, per prestazioni ottimali e 3D con '''virglrenderer'''):{{{ <model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes' accel2d='yes'/> </model> }}} 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 `<features>` nel file `.xml` della VM. * Per Windows XP (e precedenti), se si hanno problemi con ACPI, provare a rimuovere `<acpi/>` o `<apic/>` nella sezione `<features>`. * Per Windows Vista, in alcuni casi l'aggiunta esplicita di ACPI può migliorare la stabilità (se non già presente):{{{ |
| Linea 273: | Linea 195: |
| <features> <acpi/> </features> |
<features> <acpi/> </features> |
| Linea 277: | Linea 199: |
| }}} == Debian Sarge == Debian Sarge (oldstable) potrebbe scrivere `/boot/grub/menu.lst` in modo sbagliato, con le seguenti conseguenze al boot: {{{ pivot_root: no such file or directory /sbin/init: 432: cannot open dev/console: no such file Kernel panic: Attempted to kill init! }}} È possibile risolvere dal menù di Grub, premere '''e''' per modificare '''root=/dev/hdb1''' che diventa '''root=/dev/hda1'''. Dopo l'avvio, aggiornare il file `/boot/grub/menu.lst` per avere: {{{ # kopt=root=/dev/hda1 ro }}} ed eseguire: {{{ # update-grub }}} == OpenBSD 4.1 (e altri?) == Con '''OpenBSD 4.1''' (e probabilmente altri) durante l'uso del driver di rete rtl8139 è possibile avere scarse prestazioni della rete ed avere questo messaggio sulla console:{{{ re0: watchdog timeout }}} Per risolvere questo problema usare un NIC diverso (e1000 sembra funzionare meglio). == OpenBSD 4.5 e successivi == Una modifica nel kernel di '''OpenBSD''' causa il blocco durante il boot al '''setting tty flags'''. Seguire quindi le istruzioni a [[http://scie.nti.st/2009/10/4/running-openbsd-4-5-in-kvm-on-ubuntu-linux-9-04|questo indirizzo]]. |
}}}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. |
| Linea 306: | Linea 209: |
| * [[https://help.ubuntu.com/community/KVM/FAQ|Documento originale]] | * [[https://help.ubuntu.com/community/KVM/FAQ|Documento originale]] (potrebbe contenere informazioni obsolete) |
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 conflitti con altri hypervisor
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.
Prevenire conflitti con altri hypervisor
Assicurarsi che tutte le macchine virtuali KVM siano spente. È consigliabile farlo tramite virt-manager oppure comando:
virsh shutdown NOME_VM`
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
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.
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 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 :
- spegnere la macchina virtuale.
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.
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 è:
selezionare nel menù GRUB la linea per il ripristino recovery mode e premere e per modificare.
Selezionare la linea che inizia con linux o kernel e premere ancora e.
Aggiungere alla fine della linea init=/bin/sh
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 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'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.
Aprire con i privilegi di amministrazione e un 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
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
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.
Nella sezione 'Video' selezionare il modello desiderato (es. QXL o virtio).
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:
<model type='vga' vram='9216' heads='1'/>
Per QXL (buone prestazioni, richiesto spice-vdagent nel guest):
<model type='qxl' vram='65536' heads='1'/>
Per virtio-gpu (raccomandato per Linux guest moderni, per prestazioni ottimali e 3D con virglrenderer):
<model type='virtio' heads='1' primary='yes'> <acceleration accel3d='yes' accel2d='yes'/> </model>
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 Gnome: Sistema → Preferenze → Monitor (o Impostazioni → Schermi).
In XFCE: Applicazioni → Impostazioni → Display.
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.
Per Windows XP (e precedenti), se si hanno problemi con ACPI, provare a rimuovere <acpi/> o <apic/> nella sezione <features>.
Per Windows Vista, in alcuni casi l'aggiunta esplicita di ACPI può migliorare la stabilità (se non già presente):
<domain type='kvm'> ... <features> <acpi/> </features> </domain>
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
Documento originale (potrebbe contenere informazioni obsolete)
