Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Virtualizzazione/Kvm/CreazioneOspiti"
Differenze tra le versioni 73 e 74
Versione 73 del 24/10/2025 14.13.35
Dimensione: 11768
Autore: jeremie2
Commento: importato da ivantu/Virtualizzazione/Kvm/CreazioneOspiti
Versione 74 del 24/10/2025 14.14.56
Dimensione: 11486
Autore: jeremie2
Commento: revisione
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 5: Linea 5:
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04 10.04")>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04")>>
Linea 9: Linea 9:
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:
Questa pagina spiega come creare e gestire macchine virtuali (ospiti) dopo aver installato '''[[Virtualizzazione/Kvm/Installazione|KVM]]'''. La creazione di macchine virtuali può essere effettuata utilizzando principalmente:
Linea 14: Linea 12:
 * '''virsh''': l'interfaccia a riga di comando per `libvirt`, utilizzata per la gestione delle VM esistenti.  * '''virsh''': l'interfaccia a riga di comando per '''libvirt''', utilizzata per la gestione delle VM esistenti.
Linea 16: Linea 14:
= Virt-manager: Creazione di una VM tramite interfaccia grafica = = Creare VM da interfaccia grafica =
Linea 18: Linea 16:
'''virt-manager''' è lo strumento più semplice e raccomandato per la maggior parte degli utenti per creare e gestire le macchine virtuali KVM. '''virt-manager''' è lo strumento più semplice e raccomandato per la maggior parte degli utenti per creare e gestire le macchine virtuali '''KVM'''.
Linea 20: Linea 18:
[[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://virt-manager|virt-manager]].

0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] "Virtual Machine Manager".
 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://virt-manager|virt-manager]].
 0. [[AmbienteGrafico/AvviareProgrammi|Avviare]] '''Virtual Machine Manager'''.
Linea 24: Linea 21:
 Potrebbe essere richiesta la password di amministratore se l'utente non fa parte del gruppo `libvirt` (vedere la guida di installazione).  Potrebbe essere richiesta la password di amministratore se l'utente non fa parte del gruppo '''libvirt''' (vedere [[Virtualizzazione/Kvm/Installazione#root|guida]]).
Linea 26: Linea 23:
 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. Creare una nuova macchina virtuale. Fare clic sull'icona '''Crea una nuova macchina virtuale''' (monitor con stella verde).
 0. Verranno visualizzati i seguenti metodi di installazione:
   * '''Local install media (ISO image or CDROM)''': installare un sistema operativo da un file ISO o da un CD/DVD fisico. (Metodo più comune).
   * '''Network Install (HTTP, FTP, NFS)''': installare un sistema operativo tramite un server di installazione di rete.
   * '''Import existing disk image''': configurare una VM che utilizzi un disco virtuale preesistente.
   * '''Network Boot (PXE)''': avvio della VM tramite PXE da una rete.
 0. Selezionare '''Local install media''' e fare clic su '''Avanti'''.
 0. Specificare il percorso del media di installazione facendo clic su '''Sfoglia...''' per selezionare il file ISO del sistema operativo che si desidera installare.
 0. Spuntare '''Automatically detect from the install media / source''' in modo che '''virt-manager''' tenti di rilevare il tipo di sistema operativo per ottimizzare le impostazioni.
Linea 40: Linea 36:
  * "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.
  * '''Crea una nuova immagine del disco gestita''': è 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 utilizzare 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.
Linea 48: Linea 43:
  * 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.
  * Spuntare '''Personalizza la configurazione prima di installare''' per accedere a opzioni avanzate come aggiungere più CPU, modificare il tipo di scheda di rete in '''virtio''', aggiungere dispositivi USB, ecc..
  * Fare clic su '''Fine'''. La VM si avvierà e sarà possibile procedere con l'installazione del sistema operativo come su un computer fisico.
Linea 51: Linea 46:
= Virt-install: Creazione di una VM tramite riga di comando = = Creare VM da terminale =
Linea 53: Linea 48:
'''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. '''virt-install''' è uno script Python che permette la creazione di macchine virtuali KVM in modo automatizzato da terminale.
Linea 57: Linea 52:
== Esempio di installazione di Ubuntu Server == == Esempio installazione Ubuntu Server ==
Linea 59: Linea 54:
Questo esempio mostra come installare Ubuntu Server da un file ISO, utilizzando driver Virtio per disco e rete. Questo esempio mostra come installare '''Ubuntu Server''' da un '''file ISO''', utilizzando '''driver Virtio''' per disco e rete.
Linea 61: Linea 56:
 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:{{{  0. È buona pratica creare il file immagine del disco prima di avviare `virt-install` per avere un maggiore controllo. Preparare un'immagine `qcow2` di 20GB:{{{
Linea 64: Linea 59:
 0. Eseguire virt-install:{{{  0. Eseguire `virt-install`:{{{
Linea 77: Linea 72:
 }}} 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: N
on connette automaticamente il terminale alla console della VM.
--virt-type kvm --hvm: Specifica l'uso di KVM per la virtualizzazione hardware completa.
 }}}
 }}}dove:
  * `name ubuntu
-server-vm`: è il nome della macchina virtuale.
  * `memory 2048`: 2GB di RAM.
  * `vcpus 2`: 2 core virtuali per la CPU.
  * `disk ...`: configurazione del disco in cui:
   * `path`: percorso dell'immagine.
   * `bus=virtio`: per prestazioni ottimali.
   * `size`: dimensione (se non specificato prima).
  * `os
-variant ubuntufocal`: aiuta '''libvirt''' a ottimizzare le impostazioni. Per '''Ubuntu 22.04''' si può utilizzare '''ubuntujammy''' o '''ubuntufocal'''.
  * `
network bridge=br0,model=virtio`: connette la VM al bridge '''br0''' sull'host usando l'interfaccia di rete '''virtio''' para-virtualizzata. Se '''br0''' non esiste si può utilizzare 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`: n
on connette automaticamente il terminale alla console della VM.
  * `virt-type kvm --hvm`: specifica l'uso di KVM per la virtualizzazione hardware completa.
Linea 91: Linea 88:
 }}} Si aprirà una finestra con la console della VM, dove è possibile procedere con l'installazione. }}}Si aprirà una finestra con la console della VM, dove è possibile procedere con l'installazione.
Linea 93: Linea 90:
== Esempio di installazione di Windows == == Esempio installazione Windows ==
Linea 95: Linea 92:
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. Per ottenere buone prestazioni l'installazione di Windows richiede l'utilizzo di driver '''Virtio'''. Questi driver non sono inclusi nella ISO di Windows e devono essere forniti separatamente.
Linea 97: Linea 94:
 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:{{{
 0. Scaricare l'immagine ISO `virtio-win.iso` (ad esempio dal sito Fedora Koji) e posizionarla in una directory accessibile all'host KVM (es. `/var/lib/libvirt/images/`).
 0. Preparare il disco immagine digitando:{{{
Linea 100: Linea 97:
 }}}
 0. Eseguire virt-install per Windows:{{{
}}}
 0. Eseguire `virt-install` per Windows:{{{
Linea 117: Linea 114:
 Il primo --disk è per il disco di sistema (bus=virtio).<<BR>>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. Il primo `--disk` è per il disco di sistema (`bus=virtio`), mentre il secondo 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.
Linea 125: Linea 122:
Per clonare una macchina virtuale chiamata `source-vm` in una nuova macchina `new-vm`: Per clonare una macchina virtuale chiamata '''source-vm''' in una nuova macchina '''new-vm''':
Linea 128: Linea 125:
}}} (Attendere che lo stato diventi `shut off`).
 0. Eseguire virt-clone:{{{
}}}E attendere che lo stato diventi `shut off`.
 0. Eseguire `virt-clone`:{{{
Linea 134: Linea 131:
 }}}  }}}Descrizione:
  * `--original source-vm`: nome della VM da clonare.
  * `--name new-vm`: nome della nuova VM.
  * `--file /path/to/new-vm-disk.qcow2`: percorso e nome del file della nuova immagine disco per la VM clonata. Questo creerà una copia completa del disco.
Linea 136: Linea 136:
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`.
Linea 141: Linea 138:
Dopo la clonazione, la `new-vm` sarà disponibile e potrà essere avviata tramite `virt-manager` o `virsh start new-vm`. = Creazione MV da immagine preesistente - Overlay =
Linea 143: Linea 140:
= Creazione di una macchina virtuale da un'immagine preesistente / Overlay (snapshot) = L'utilizzo di '''qcow2''' con ''overlay'' (snapshot basati su copy-on-write) permette di creare VM leggere occupando meno spazio su disco rispetto alla clonazione completa. È ideale per sperimentare senza alterare un'immagine di base.
Linea 145: Linea 142:
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:{{{
 0. In base alle esigenze:
  * '''creare''' un'immagine `qcow2` di base. Ad esempio per un'installazione pulita di Ubuntu:{{{
Linea 149: Linea 145:
 }}}
 {{{#!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''':{{{
}}}
  * '''convertire''' un'immagine `qcow2` esistente:{{{
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''':{{{
Linea 171: Linea 166:
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. 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 unoa nuova dalla base.
Linea 174: Linea 169:
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. 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.
}}}
Linea 179: Linea 175:
 * [[https://help.ubuntu.com/community/KVM/CreateGuests|Documento originale (Community Ubuntu)]]  * [[https://help.ubuntu.com/community/KVM/CreateGuests|Documento originale sul wiki Ubuntu internazionale]]
Linea 182: Linea 178:
 * [[https://help.ubuntu.com/community/KVM/CreateGuests|Documento originale]]


Guida verificata con Ubuntu: 22.04 24.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. 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.

Creare VM da interfaccia grafica

virt-manager è lo strumento più semplice e raccomandato per la maggior parte degli utenti per creare e gestire le macchine virtuali KVM.

  1. Installare il pacchetto virt-manager.

  2. Avviare Virtual Machine Manager.

    • Potrebbe essere richiesta la password di amministratore se l'utente non fa parte del gruppo libvirt (vedere guida).

  3. Creare una nuova macchina virtuale. Fare clic sull'icona Crea una nuova macchina virtuale (monitor con stella verde).

  4. Verranno visualizzati i seguenti metodi di installazione:
    • Local install media (ISO image or CDROM): installare un sistema operativo da un file ISO o da un CD/DVD fisico. (Metodo più comune).

    • Network Install (HTTP, FTP, NFS): installare un sistema operativo tramite un server di installazione di rete.

    • Import existing disk image: configurare una VM che utilizzi un disco virtuale preesistente.

    • Network Boot (PXE): avvio della VM tramite PXE da una rete.

  5. Selezionare Local install media e fare clic su Avanti.

  6. Specificare il percorso del media di installazione facendo clic su Sfoglia... per selezionare il file ISO del sistema operativo che si desidera installare.

  7. Spuntare Automatically detect from the install media / source in modo che virt-manager tenti di rilevare il tipo di sistema operativo per ottimizzare le impostazioni.

  8. 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.
  9. Creare o specificare il disco virtuale:
    • Crea una nuova immagine del disco gestita: è 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 utilizzare un'immagine disco esistente o di crearne una in un percorso specifico o su un dispositivo a blocchi.

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

  11. Finalizzare la creazione:
    • Assegnare un nome alla macchina virtuale.
    • Spuntare Personalizza la configurazione prima di installare per accedere a opzioni avanzate come aggiungere più CPU, modificare il tipo di scheda di rete in virtio, aggiungere dispositivi USB, ecc..

    • Fare clic su Fine. La VM si avvierà e sarà possibile procedere con l'installazione del sistema operativo come su un computer fisico.

Creare VM da terminale

virt-install è uno script Python che permette la creazione di macchine virtuali KVM in modo automatizzato da terminale.

Installare il pacchetto virtinst.

Esempio installazione Ubuntu Server

Questo esempio mostra come installare Ubuntu Server da un file ISO, utilizzando driver Virtio per disco e rete.

  1. È buona pratica creare il file immagine del disco prima di avviare virt-install per avere un maggiore controllo. Preparare un'immagine qcow2 di 20GB:

    qemu-img create -f qcow2 /var/lib/libvirt/images/ubuntu-server.qcow2 20G
  2. 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
    dove:
    • name ubuntu-server-vm: è il nome della macchina virtuale.

    • memory 2048: 2GB di RAM.

    • vcpus 2: 2 core virtuali per la CPU.

    • disk ...: configurazione del disco in cui:

      • path: percorso dell'immagine.

      • bus=virtio: per prestazioni ottimali.

      • size: dimensione (se non specificato prima).

    • os-variant ubuntufocal: aiuta libvirt a ottimizzare le impostazioni. Per Ubuntu 22.04 si può utilizzare ubuntujammy o ubuntufocal.

    • network bridge=br0,model=virtio: connette la VM al bridge br0 sull'host usando l'interfaccia di rete virtio para-virtualizzata. Se br0 non esiste si può utilizzare 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.

  3. 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 installazione Windows

Per ottenere buone prestazioni l'installazione di Windows richiede l'utilizzo di driver Virtio. Questi driver non sono inclusi nella ISO di Windows e devono essere forniti separatamente.

  1. Scaricare l'immagine ISO virtio-win.iso (ad esempio dal sito Fedora Koji) e posizionarla in una directory accessibile all'host KVM (es. /var/lib/libvirt/images/).

  2. Preparare il disco immagine digitando:

     qemu-img create -f qcow2 /var/lib/libvirt/images/windows10.qcow2 60G
  3. 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), mentre il secondo 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.

  4. 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:

  1. Assicurarsi che la VM sorgente non sia in esecuzione:

    virsh shutdown source-vm

    E attendere che lo stato diventi shut off.

  2. Eseguire virt-clone:

    sudo virt-clone \
        --original source-vm \
        --name new-vm \
        --file /var/lib/libvirt/images/new-vm.qcow2
    Descrizione:
    • --original source-vm: nome della VM da clonare.

    • --name new-vm: nome della nuova VM.

    • --file /path/to/new-vm-disk.qcow2: percorso e 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 MV da immagine preesistente - Overlay

L'utilizzo di qcow2 con overlay (snapshot basati su copy-on-write) permette di creare VM leggere occupando meno spazio su disco rispetto alla clonazione completa. È ideale per sperimentare senza alterare un'immagine di base.

  1. In base alle esigenze:
    • creare un'immagine qcow2 di base. Ad esempio per un'installazione pulita di Ubuntu:

       qemu-img create -f qcow2 base_ubuntu.qcow2 20G
    • convertire un'immagine qcow2 esistente:

      qemu-img convert existing.raw -O qcow2 base_ubuntu.qcow2
  2. 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.

  3. 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 unoa nuova dalla base.

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.

Ulteriori risorse


CategoryVirtualizzazione