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.04 25.10
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa pagina spiega come creare e gestire macchine virtuali (ospiti) dopo aver installato KVM su Ubuntu 22.04 e versioni successive.
La creazione di macchine virtuali può essere effettuata utilizzando principalmente:
virt-manager: un'interfaccia grafica (GUI) completa e intuitiva.
virt-install: uno strumento a riga di comando per la creazione automatizzata di VM.
virsh: l'interfaccia a riga di comando per libvirt, utilizzata per la gestione delle VM esistenti.
Virt-manager: Creazione di una VM tramite interfaccia grafica
virt-manager è lo strumento più semplice e raccomandato per la maggior parte degli utenti per creare e gestire le macchine virtuali KVM.
Installare il pacchetto virt-manager.
Avviare "Virtual Machine Manager".
Potrebbe essere richiesta la password di amministratore se l'utente non fa parte del gruppo libvirt (vedere la guida di installazione).
- Creare una nuova macchina virtuale. Cliccare sull'icona "Crea una nuova macchina virtuale" (un monitor con una stella verde).
- Metodo di installazione:
- "Local install media (ISO image or CDROM)": Utilizzato per installare un sistema operativo da un file ISO o da un CD/DVD fisico. Questo è il metodo più comune.
- "Network Install (HTTP, FTP, NFS)": Utilizzato per installare un sistema operativo tramite un server di installazione di rete.
- "Import existing disk image": Utilizzato per configurare una VM che utilizzi un disco virtuale preesistente.
- "Network Boot (PXE)": Utilizzato per l'avvio della VM tramite PXE da una rete.
- Selezionare "Local install media" e cliccare "Avanti".
- Metodo di installazione:
- Specificare il percorso del media di installazione:
- Cliccare "Sfoglia..." per selezionare il file ISO del sistema operativo che si desidera installare.
- Spuntare "Automatically detect from the install media / source". virt-manager tenterà di rilevare il tipo di sistema operativo e la variante per ottimizzare le impostazioni.
- Configurare RAM e CPU:
- Assegnare la quantità di RAM desiderata alla VM. Si consiglia di lasciare almeno 1GB (1024 MB) per l'host.
- Assegnare il numero di core CPU.
- Creare o specificare il disco virtuale:
- "Crea una nuova immagine del disco gestita": Questo è il metodo predefinito e raccomandato. Specificare la dimensione desiderata per il disco. virt-manager creerà un'immagine qcow2 nella directory predefinita di libvirt (/var/lib/libvirt/images/).
- "Seleziona o crea un volume di archiviazione personalizzato": Permette di usare un'immagine disco esistente o di crearne una in un percorso specifico o su un dispositivo a blocchi.
- Configurare la rete:
- Selezionare la configurazione di rete desiderata:
- "Virtual network 'default' (NAT)": La VM sarà isolata nella rete virtuale predefinita di libvirt, con accesso a Internet tramite NAT sull'host.
- "Bridge device": Selezionare il bridge configurato sull'host (es. br0). La VM sarà direttamente visibile sulla rete fisica.
- Selezionare la configurazione di rete desiderata:
- Finalizzare la creazione:
- Assegnare un nome alla macchina virtuale.
- Spuntare "Personalizza la configurazione prima di installare" per accedere a opzioni avanzate (es. aggiungere più CPU, modificare il tipo di scheda di rete in virtio, aggiungere dispositivi USB, ecc.).
- Cliccare "Fine". La VM si avvierà e sarà possibile procedere con l'installazione del sistema operativo come su un computer fisico.
Virt-install: Creazione di una VM tramite riga di comando
virt-install è uno script Python che permette la creazione di macchine virtuali KVM in modo automatizzato da terminale. È utile per scripting o per utenti esperti.
Installare il pacchetto virtinst.
Esempio di installazione di Ubuntu Server
Questo esempio mostra come installare Ubuntu Server da un file ISO, utilizzando driver Virtio per disco e rete.
Preparare il disco immagine. È buona pratica creare il file immagine del disco prima di avviare virt-install per avere un maggiore controllo. Un'immagine qcow2 di 20GB:
qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-server.qcow2 20G
Eseguire virt-install:
sudo virt-install \ --name ubuntu-server-vm \ --memory 2048 \ --vcpus 2 \ --disk path=/var/lib/libvirt/images/ubuntu-server.qcow2,bus=virtio,size=20 \ --os-variant ubuntufocal \ --network bridge=br0,model=virtio \ --cdrom /path/to/ubuntu-22.04-live-server-amd64.iso \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole \ --virt-type kvm \ --hvm
Spiegazione degli argomenti:
--name ubuntu-server-vm: Nome della macchina virtuale. --memory 2048: 2 GB di RAM. --vcpus 2: 2 core virtuali per la CPU. --disk ...: Configurazione del disco. path è il percorso dell'immagine, bus=virtio per prestazioni ottimali, size è la dimensione (se non specificato prima). --os-variant ubuntufocal: Aiuta libvirt a ottimizzare le impostazioni. Per Ubuntu 22.04, si può usare ubuntujammy o ubuntufocal. --network bridge=br0,model=virtio: Connette la VM al bridge br0 sull'host, usando l'interfaccia di rete virtio paravirtualizzata. Se br0 non esiste, si può usare network=default per la rete NAT. --cdrom /path/to/ubuntu-22.04-live-server-amd64.iso: Percorso del file ISO per l'installazione. --graphics vnc,listen=0.0.0.0: Abilita l'accesso VNC da qualsiasi indirizzo. Per maggiore sicurezza, si può limitare listen=127.0.0.1. --noautoconsole: Non connette automaticamente il terminale alla console della VM. --virt-type kvm --hvm: Specifica l'uso di KVM per la virtualizzazione hardware completa.
Connettersi alla VM per l'installazione. Dopo aver avviato virt-install, la VM sarà in esecuzione. Per accedere alla console grafica (VNC):
virt-viewer --connect qemu:///system ubuntu-server-vm
Si aprirà una finestra con la console della VM, dove è possibile procedere con l'installazione.
Esempio di installazione di Windows
L'installazione di Windows richiede l'uso di driver virtio per ottenere buone prestazioni. Questi driver non sono inclusi nell'ISO di Windows e devono essere forniti separatamente.
Scaricare i driver Virtio per Windows. Scaricare l'immagine ISO virtio-win.iso (ad esempio da Fedora Koji) e posizionarla in una directory accessibile all'host KVM (es. /var/lib/libvirt/images/).
Preparare il disco immagine:
qemu-img create -f qcow2 /var/lib/libvirt/images/windows10.qcow2 60G
Eseguire virt-install per Windows:
sudo virt-install \ --name windows10-vm \ --memory 4096 \ --vcpus 4 \ --disk path=/var/lib/libvirt/images/windows10.qcow2,bus=virtio,size=60 \ --disk path=/var/lib/libvirt/images/virtio-win.iso,device=cdrom \ --os-variant win10 \ --network bridge=br0,model=virtio \ --cdrom /path/to/Win10_22H2_Italian_x64.iso \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole \ --virt-type kvm \ --hvm
Il primo --disk è per il disco di sistema (bus=virtio).
Il secondo --disk carica l'ISO dei driver Virtio come un CD-ROM virtuale. Durante l'installazione di Windows (quando viene richiesto "Carica driver"), puntare a questo CD-ROM per installare i driver del disco e della rete.
Connettersi alla VM e installare i driver. Usare virt-viewer per accedere alla VM e seguire la procedura di installazione di Windows. Quando richiesto per i driver, caricarli dall'ISO virtio-win.iso montata.
Clonazione di una macchina virtuale
È possibile clonare una macchina virtuale esistente usando lo strumento virt-clone. Questo strumento duplicherà l'immagine del disco e creerà una nuova definizione di dominio libvirt con un nuovo MAC address e UUID per evitare conflitti.
Per clonare una macchina virtuale chiamata source-vm in una nuova macchina new-vm:
Assicurarsi che la VM sorgente non sia in esecuzione:
virsh shutdown source-vm
(Attendere che lo stato diventi shut off).
Eseguire virt-clone:
sudo virt-clone \ --original source-vm \ --name new-vm \ --file /var/lib/libvirt/images/new-vm.qcow2 * --original source-vm: Specifica il nome della VM da clonare. * --name new-vm: Specifica il nome della nuova VM. * --file /path/to/new-vm-disk.qcow2: Specifica il percorso e il nome del file della nuova immagine disco per la VM clonata. Questo creerà una copia completa del disco. Dopo la clonazione, la `new-vm` sarà disponibile e potrà essere avviata tramite `virt-manager` o `virsh start new-vm`. = Creazione di una macchina virtuale da un'immagine preesistente / Overlay (snapshot) = L'uso di '''qcow2''' con overlay (snapshot basati su copy-on-write) permette di creare VM leggere e usa meno spazio su disco rispetto alla clonazione completa. È ideale per sperimentare senza alterare un'immagine di base. 0. Creare un'immagine di base (se non già presente). Assicurarsi di avere un'immagine 'qcow2' di base. Per esempio, un'installazione pulita di Ubuntu:{{{ qemu-img create -f qcow2 base_ubuntu.qcow2 20G
Oppure convertire un'immagine esistente in qcow2: qemu-img convert existing.raw -O qcow2 base_ubuntu.qcow2
- Creare un'immagine overlay (snapshot differenziale). Questa immagine registrerà solo le modifiche rispetto all'immagine di base, conservando l'originale intatta.
qemu-img create -f qcow2 -b /path/to/base_ubuntu.qcow2 /path/to/overlay_vm.qcow2
overlay_vm.qcow2 sarà il disco della nuova VM.
Creare una nuova macchina virtuale usando l'immagine overlay. Utilizzare virt-install o virt-manager per creare una nuova VM, puntando il disco virtuale al file overlay_vm.qcow2 appena creato. Con virt-install:
sudo virt-install \ --name overlay-test-vm \ --memory 1024 \ --vcpus 1 \ --disk path=/path/to/overlay_vm.qcow2,bus=virtio \ --os-variant ubuntufocal \ --network network=default,model=virtio \ --graphics vnc,listen=0.0.0.0 \ --noautoconsole \ --virt-type kvm \ --hvm
In questo modo, la overlay-test-vm si avvierà usando overlay_vm.qcow2 e tutte le modifiche verranno scritte solo in questo file, lasciando base_ubuntu.qcow2 inalterato. Se la VM overlay-test-vm viene distrutta, basta cancellare overlay_vm.qcow2 e crearne uno nuovo dalla base.