|
Dimensione: 10042
Commento:
|
Dimensione: 17557
Commento: importato da ivantu/Virtualizzazione/Kvm/DomandeFrequenti
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| KVM/DomandeFrequenti = Domande frequenti = == 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: 1. Assicurarsi di avere '''completamente spento''' tutte le macchine virtuali KVM (utilizzando ad esempio virt-manager). 2. Scaricare tutti i suoi moduli: {{{ $ sudo invoke-rc.d kvm stop }}} In '''Karmic''' usare: {{{ $ sudo invoke-rc.d qemu-kvm stop }}} == Avviare una ISO di Dapper, Edgy, Feisty e Gutsy == * Qui il problema è rapppresentato dal 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. Le conseguenze posso essere spiacevoli. Siete avvisati! {{{ $ sed -e 's/GFXBOOT bootlogo/#FXBOOT bootlogo/g' < ubuntu-7.10-server-amd64.iso > ubuntu-7.10-server-amd64-nogfxboot.iso }}} /!\ Non modificare il comando di cui sopra! La lunghezza della stringa non può cambiare, in caso contrario si avrà lo svuotamento del filesystem sul CD. Un metodo più sicuro è quello di utilizzare gfxboot-disable scaricabile da [http://hg.codemonkey.ws/gfxboot-disable] e quindi eseguire: {{{ $ gfxboot-disable ubuntu-7.10-server-amd64.iso }}} == Avviare una VM in modalità singola == Una VM 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 VM, eseguire virt-viewer con l'argomento --wait ( in questo modo virt-viewer attenderà l'avvio di KVM e popperà immediatamente dopo) quindi avviare la VM; così si avranno circa due secondi per garantire l'accesso al bios o a grub. Se si sta eseguendo una VM creata con ubuntu-vm-builder, è probabile incontrare un piccolo bug che impedirà l'autenticazione. In questo caso, 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'''. Alla fine della linea aggiungere '''init=/bin/sh'''. Confermare con invio e premere '''b''' per avviare il kernel con queste impostazioni. == Convertire 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. È stata inserita nel pacchetto 'virt-goodies' installabile dai repositories. Una volta installato digitare: {{{ $ 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. Vedere {{{ man vmware2libvirt }}} per maggiori dettagli. Il secondo comando importa il file.xml in libvirt. Il file .xml importato viene memorizzato in /etc/libvirt/qemu. === Minacce === Sebbene vmware2libvirt funzioni 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. Sebbene vmware2libvirt rilevi un ospite a 64-bit,verificare che la corretta architettura sia stata riportata nel suo file .xml: {{{ <os> |
#format wiki #LANGUAGE it <<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04 10.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 dei conflitti con altri hypervisor (VirtualBox) = '''[[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. * Per prevenire conflitti con VirtualBox o altri hypervisor che richiedono l'accesso esclusivo all'hardware di virtualizzazione: 0. Assicurarsi che tutte le macchine virtuali KVM siano spente. È consigliabile farlo tramite '''virt-manager''' o '''virsh shutdown <nome_vm>'''. 0. Fermare il servizio '''libvirtd'''. Questo è il demone che gestisce le macchine virtuali KVM e che spesso mantiene i moduli KVM caricati. {{{ sudo systemctl stop libvirtd }}} 0. Scaricare i moduli del kernel KVM. Dopo aver fermato '''libvirtd''' e assicurandosi che nessuna VirtualMachine KVM sia in esecuzione (anche avviata direttamente con '''qemu-system-x86_64'''), è possibile tentare di rimuovere i moduli KVM dal kernel. Questo libera le estensioni hardware di virtualizzazione. {{{ sudo modprobe -r kvm_intel kvm_amd kvm }}}Una volta che i moduli KVM sono stati scaricati con successo, è possibile avviare VirtualBox o un 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 o, come ultima risorsa, riavviare il sistema. }}} * Per ripristinare KVM e libvirtd dopo aver utilizzato un altro hypervisor: 0. Avviare il servizio libvirtd: {{{ sudo systemctl start libvirtd }}}Questo ricaricherà automaticamente i moduli KVM necessari (ad esempio kvm_intel o kvm_amd, e kvm) e riabiliterà la gestione delle VM KVM. = 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 è: 0. Spegnere la macchina virtuale. 0. 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. 0. 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) è: 0. Nel menù di [[AmministrazioneSistema/Grub|GRUB]], selezionare 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. Questa procedura è generica per Linux e non legata a bug specifici di ubuntu-vm-builder. <<Anchor(ConversionedimacchineVMWareavirt-manager)>> = 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'''. 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto: [[apt://virt-goodies | virt-goodies]]. 0. Digitare in un [[AmministrazioneSistema/Terminale|terminale]] il seguente comando per convertire il file .vmx in un file .xml per libvirt:{{{ vmware2libvirt -f ./file.vmx > file.xml }}} {{{#!wiki note Per maggiori informazioni su vmware2libvirt, digitare:{{{ man vmware2libvirt }}} 0. [[ivantu/Virtualizzazione/Kvm/GestioneOspiti#Definizione_della_nuova_Macchina_Virtuale|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: 0. 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> |
| Linea 57: | Linea 79: |
| </os> }}} 0. vmware2libvirt rileva ed usa solamente la prima interfaccia ethernet interface trovata. ulteriori interfaccie 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. The converted virtual machine is hard-coded to use 1 cpu. This can be changed with:{{{ <vcpu>2</vcpu> }}} 0. vmware2libvirt does not (and cannot) convert anything that was VMware-specific within the guest. See 'Guest Notes' below for more details. === Using and Converting VMWar'e virtual Disk Files === kvm has the ability to use VMWare's .vmdk disk files directly, as long as the disk is wholly contained in a single vmdk file. But VMWare also allows splitting a disk into smaller, usually 2 GB, vmdk files. kvm can't use these. You can convert these files into a single virtual disk file using vmware-vdiskmanager. It is e.g. included in VMWare Server (freely available). {{{ $ vmware-vdiskmanager -r <Name of splitted vmdk base file> -t 0 <Name of new single vmdk file> }}} Modify the virtual machines xml file in /etc/libvirt/qemu: {{{ ... <disk type='file' device='disk'> <source file='/var/lib/libvirt/images/diskname.vmdk'/> <target dev='hda' bus='ide'/> </disk> ... }}} and redefine it: {{{ $ virsh -c qemu:///system define NameOfMachine.xml }}} '''IMPORTANT:''' keep in mind that while the .vmx file is converted to .xml, the disks are used as is. Please make backups, especially if you want to use the virtual machine in VMWare later. kvm is not able to make snapshots when using vmdk disk files. So I recommend to convert the virtual disk file in qemu's format qcow2. Package qemu contains a utility qemu-img to do this: {{{ qemu-img convert diskname.vmdk -O qcow2 diskname.qcow2 }}} change the machines xml file and redefine it (see above). === Should VMWare Tools be kept after conversion? === If converting from vmware to libvirt, be sure to remove vmware-tools if you have it installed (otherwise it will overwrite xorg.conf on reboot) == How to convert physical Machines to virt-manager == If you want to convert a Windows (XP) physical machine you first may have to enable IDE in the registry. Start the machine and execute [[http://www.proxmox.com/cms_proxmox/cms/upload/misc/mergeide.reg|mergeide.reg]]. See [[http://support.microsoft.com/kb/314082/en-us|Microsoft KB Article 314082]]. === using VMWare Converter === VMWare Converter is a free tool to migrate a physical machine to VMWare. So the first step is to migrate the physical machine to a VMware image. The second step is to follow the howto "How to convert VMWare Machines to virt-manager" (see above). === using linux tools === See the german book about qemu [[http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_Physical-to-Virtual|physical to virtual]]. There is a link to translate it in english. == Should ntp be used for time synchronisation? == Guests should not use ntp to synchronize the clock, so be sure to remove/disable ntpd == Which driver should be used for Xorg? == === Video === Linux guests with Xorg should be using the 'cirrus' video driver. To use, adjust /etc/X11/xorg.conf to have: {{{ |
</os> }}} 0. '''vmware2libvirt''' rileva e configura solamente la prima interfaccia ethernet trovata. Ulteriori interfacce devono essere aggiunte manualmente tramite '''virt-manager''' o modificando il file XML. 0. 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. 0. 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> }}} 0. '''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 }}} {{{#!wiki note 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. {{{#!wiki note Vedere anche [[http://support.microsoft.com/kb/314082/en-us|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 [[#ConversionedimacchineVMWareavirt-manager|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 [[http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Speichermedien/_Physical-to-Virtual|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 '''[[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'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: * '''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 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. * Aprire con 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 |
| Linea 132: | Linea 198: |
| Identifier "Configured Video Device" Driver "cirrus" EndSection }}} then be sure that your Screen section uses 'Configured Video Device' for its Device. === Mouse === Linux guests with Xorg should be using the 'vmmouse' driver (not available on Ubuntu Dapper). To use, perform within the guest: {{{ aptitude install xserver-xorg-input-vmmouse }}} then adjust /etc/X11/xorg.conf to have (the Identifier line should not change, and you should have only an Identifier line and Driver line for the mouse): {{{ Section "InputDevice" Identifier "Configured Mouse" Driver "vmmouse" EndSection }}} == How to set up guest resolution in Xorg ? == Linux guests with Xorg need to adjust the resolution for Xorg in /etc/X11/xorg.conf. Look for the Screen section, and make sure each of the 'Modes' lines has a reasonable resolution for your system (due to [[https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/193456|bug #193456]] the resolution in the guest's resolution needs to be smaller than the host). Eg: {{{ |
Identifier "Card0" Driver "vesa" VendorName "QEMU/KVM" BoardName "Standard VGA" BusID "PCI:0:2:0" EndSection |
| Linea 151: | Linea 206: |
| ... SubSection "Display" Depth 16 Modes "800x600" "640x480" EndSubSection SubSection "Display" Depth 24 Modes "800x600" "640x480" EndSubSection EndSection }}} <<Anchor(systemadjustments)>> == What system specific adjustments are recommended? == === Windows (<Vista) === Windows (other than Vista) virtual machines should substitute in the .xml file: {{{ <features> <acpi/> </features> }}} with: {{{ |
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 all'interno della linea «Modes». === 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: * '''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''' Ad 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 e funzionalità come il puntatore automatico, è raccomandato installare i qemu-guest-agent e usare virtio-input (spesso implicito con virtio-gpu). = 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: * 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/>:{{{ |
| Linea 174: | Linea 266: |
=== Windows Vista === Windows Vista virtual machines should add this to the xml file: {{{ |
* Per Windows Vista, in alcuni casi l'aggiunta esplicita di ACPI può migliorare la stabilità (se non già presente):{{{ |
| Linea 179: | Linea 269: |
| <features> <acpi/> </features> |
<features> <acpi/> </features> |
| Linea 183: | Linea 273: |
| }}} === Debian Sarge === Debian Sarge (oldstable) may write /boot/grub/menu.lst incorrectly, resulting in the following on boot: {{{ pivot_root: no such file or directory /sbin/init: 432: cannot open dev/console: no such file Kernel panic: Attempted to kill init! }}} The fix is at the grub menu, press 'e' and adjust {{{root=/dev/hdb1}}} to be {{{root=/dev/hda1}}}. After a successful boot, you will need to update /boot/grub/menu.lst to have: {{{ # kopt=root=/dev/hda1 ro }}} and run: {{{ # update-grub }}} === OpenBSD 4.1 (and others?) === OpenBSD 4.1 (and probably others) when using the rtl8139 network driver may realize poor network performance and see this message on the console:{{{ re0: watchdog timeout }}} The fix is to use another NIC (e1000 appears to work well). See 'Changing the Network Card Model' above. === OpenBSD 4.5 and later === A change in the OpenBSD kernel causes it to hang on boot at "setting tty flags". If this affects you, follow the instructions on http://scie.nti.st/2009/10/4/running-openbsd-4-5-in-kvm-on-ubuntu-linux-9-04 <<Include(KVM/Header)>> |
}}}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) |
| Linea 206: | Linea 286: |
| ---- CategoryHomepage CategoryInTraduzione |
CategoryVirtualizzazione |
Indice
- Introduzione
- Gestione dei conflitti con altri hypervisor (VirtualBox)
- Avvio di una macchina virtuale con accesso al BIOS o GRUB
- Conversione di macchine VMWare a virt-manager
- Sincronizzazione dell'ora nelle macchine virtuali
- Driver video per Xorg nei sistemi guest Linux
- Impostazione della risoluzione del guest in Linux (con driver legacy)
- Impostazioni raccomandate per specifici sistemi guest
- Ulteriori risorse
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.
Per prevenire conflitti con VirtualBox o altri hypervisor che richiedono l'accesso esclusivo all'hardware di virtualizzazione:
Assicurarsi che tutte le macchine virtuali KVM siano spente. È consigliabile farlo tramite virt-manager o virsh shutdown <nome_vm>.
Fermare il servizio libvirtd. Questo è il demone che gestisce le macchine virtuali KVM e che spesso mantiene i moduli KVM caricati.
sudo systemctl stop libvirtd
Scaricare i moduli del kernel KVM. Dopo aver fermato libvirtd e assicurandosi che nessuna VirtualMachine KVM sia in esecuzione (anche avviata direttamente con qemu-system-x86_64), è possibile tentare di rimuovere i moduli KVM dal kernel. Questo libera le estensioni hardware di virtualizzazione.
sudo modprobe -r kvm_intel kvm_amd kvm
Una volta che i moduli KVM sono stati scaricati con successo, è possibile avviare VirtualBox o un 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 o, come ultima risorsa, riavviare il sistema.
- Per ripristinare KVM e libvirtd dopo aver utilizzato un altro hypervisor:
- Avviare il servizio libvirtd:
sudo systemctl start libvirtd
Questo ricaricherà automaticamente i moduli KVM necessari (ad esempio kvm_intel o kvm_amd, e kvm) e riabiliterà la gestione delle VM KVM.
- Avviare il servizio libvirtd:
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 è:
- Spegnere la macchina virtuale.
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.- 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) è:
Nel menù di GRUB, selezionare 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. 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.
Installare il pacchetto: virt-goodies.
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:
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:
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>
vmware2libvirt rileva e configura solamente la prima interfaccia ethernet trovata. Ulteriori interfacce devono essere aggiunte manualmente tramite virt-manager o modificando il file XML.
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.
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>
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:
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 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.
Aprire con 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 all'interno della linea «Modes».
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:
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 Ad 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 e funzionalità come il puntatore automatico, è raccomandato installare i qemu-guest-agent e usare virtio-input (spesso implicito con virtio-gpu).
- Modificare il file XML dell'ospite per impostare il modello video. Per un driver standard (VGA):
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:
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/>:
<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)
