#format wiki #LANGUAGE it <
> <> <> <> = Introduzione = Questa pagina spiega come creare e gestire macchine virtuali (ospiti) dopo aver installato '''[[Virtualizzazione/Kvm/Installazione|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. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://virt-manager|virt-manager]]. 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] "Virtual Machine Manager". {{{#!wiki note Potrebbe essere richiesta la password di amministratore se l'utente non fa parte del gruppo `libvirt` (vedere la guida di installazione). }}} 0. 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". 0. 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. 0. 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. 0. 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. 0. 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. 0. 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. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://virtinst|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. 0. 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 }}} 0. 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. }}} 0. 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. 0. 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/`). 0. Preparare il disco immagine:{{{ qemu-img create -f qcow2 /var/lib/libvirt/images/windows10.qcow2 60G }}} 0. 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 }}} {{{#!wiki note 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. }}} 0. 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`: 0. Assicurarsi che la VM sorgente non sia in esecuzione:{{{ virsh shutdown source-vm }}} (Attendere che lo stato diventi `shut off`). 0. Eseguire virt-clone:{{{ sudo virt-clone \ --original source-vm \ --name new-vm \ --file /var/lib/libvirt/images/new-vm.qcow2 }}} Descrizione: * --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 }}} {{{#!wiki note Oppure convertire un'immagine esistente in qcow2: `qemu-img convert existing.raw -O qcow2 base_ubuntu.qcow2` }}} 0. 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. 0. 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. {{{#!wiki note Il manuale `virt-image(5)` e lo strumento '''virt-image''' stesso sono parte di '''libguestfs-tools''' e sono utilizzati principalmente per la creazione automatizzata di VM da file XML descrittori, spesso in contesti di cloud o automazione. La procedura descritta originariamente era più complessa del necessario per la creazione di overlay con qemu-img e virt-install/virt-manager. = Ulteriori risorse = * [[http://packages.ubuntu.com/search?keywords=apt-cacher-ng|apt-cacher-ng per il mirroring]] * [[https://help.ubuntu.com/community/KVM/CreateGuests|Documento originale (Community Ubuntu)]] * [[https://qemu.org/|Sito ufficiale di QEMU]] * [[https://virt-manager.org/|Sito ufficiale di virt-manager]] * [[https://help.ubuntu.com/community/KVM/CreateGuests|Documento originale]] ---- CategoryHomepage CategoryNuoviDocumenti