|
Dimensione: 5991
Commento:
|
← Versione 59 del 24/10/2025 10.30.21 ⇥
Dimensione: 10387
Commento:
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## last update 17/10/2025 | |
| Linea 2: | Linea 3: |
| #language it [[Indice(depth=1)]] [[Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html")]] [[BR]] KVM/Installazione |
#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")>> <<BR>> |
| Linea 10: | Linea 11: |
| In questa pagina verrà spiegato come installare '''KVM''', un programma di virtualizzazione del kernel Linux. | Questa pagina fornisce una guida completa all'installazione e alla configurazione di '''KVM''' (Kernel-based Virtual Machine), la soluzione di virtualizzazione nativa del kernel Linux, su '''Ubuntu 22.04''' e versioni successive. '''KVM''' offre prestazioni quasi native ed è la tecnologia di virtualizzazione preferita su Linux. |
| Linea 14: | Linea 15: |
| == Come stabilire se la CPU supporta la virtualizzazione dell' hardware == | == CPU: verifica supporto virtualizzazione == |
| Linea 16: | Linea 17: |
| Per eseguire '''KVM''' è necessario che il processore supporti la virtualizzazione; Intel e AMD hanno sviluppato estensioni per i loro processori, rispettivamente '''INTEL-VT''' e '''AMD-V'''. | Per utilizzare appieno le prestazioni di '''KVM''', è indispensabile che il processore supporti le estensioni di virtualizzazione hardware. Queste sono note come '''Intel VT-x''' (per processori Intel, nome in codice Vanderpool) e '''AMD-V''' (per processori AMD, nome in codice Pacifica). |
| Linea 18: | Linea 19: |
| Per sapere se il processore supporta la virtualizzazione digitare il seguente comando in una finestra di terminale:{{{ egrep '(vmx|svm)' --color=always /proc/cpuinfo |
Per verificare il supporto digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ lscpu | grep Virtualization }}} * Se il comando restituisce '''VT-x''' o '''AMD-V''', il supporto hardware è presente. * Se non viene visualizzata alcuna riga relativa alla virtualizzazione o se il comando precedente non restituisce nulla, la CPU potrebbe non supportarla o l'opzione potrebbe essere disabilitata nel BIOS/UEFI. == Verifica avanzata e stato di /dev/kvm: == Un modo più diretto per verificare la disponibilità di '''KVM''' si ha utilizzando `kvm-ok`. {{{#!wiki note Se il comando `kvm-ok` è assente installare il pacchetto [[apt://cpu-checker|cpu-checker]]. |
| Linea 22: | Linea 34: |
| Se non viene fornita alcuna risposta significa che la CPU non supporta la virtualizzazione del hardware. In caso contrario è supportata, ma è necessario verificare che nel BIOS sia abilitata l'opzione per la virtualizzazione. | Digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{ kvm-ok }}} * Se il supporto è presente restituirà una risposta simile a:{{{ INFO: Your CPU supports KVM extensions INFO: /dev/kvm exists KVM acceleration can be used }}} * In caso contrario l'output sarà del tipo:{{{ INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used }}}e significa che le estensioni hardware non sono disponibili. Senza le estensioni '''KVM''' sarà comunque possibile eseguire macchine virtuali, ma risulteranno significativamente più lente. |
| Linea 24: | Linea 47: |
| == Se possibile usare un kernel a 64 bit == Per offrire più di 2047 MB di ram all MV, si deve usare un [http://wiki.ubuntu-it.org//Architettura64Bit/DomandeFrequenti kernel a 64 bit]. Installando un kernel a 32 bit si avrà la limitazione a 2 GB di RAM per MV. Un sistema a 64 bit può ospitare sia virtualizzazioni a 64 bit che a 32 bit. Mentre un sistema a 32 bit può ospitare solo virtualizzazioni a 32 bit. * Per verificare che il processore sia a 64 bit digitare il seguente comando in una finestra di terminale:{{{ grep ' lm ' /proc/cpuinfo |
{{{#!wiki note Potrebbe essere necessario abilitarle nel BIOS/UEFI del sistema (spesso sotto voci come "Virtualization Technology", "Intel VT-d", "AMD-V"). |
| Linea 34: | Linea 51: |
| dove «lm» sta per '''long Mode''', per cui la CPU è a 64 bit, se non viene fornita alcuna risposta significa che la CPU non è a 64 bit. | == Kernel a 64 bit (raccomandato) == |
| Linea 36: | Linea 53: |
| * Per verificare che sia in esecuzione un kernel a 64 bit digitare il seguente comando in una finestra di terminale:{{{ uname -m |
L'esecuzione di un kernel a 64 bit sul sistema host è fortemente raccomandata per sfruttare al meglio KVM. * Un sistema a 64 bit può ospitare sia macchine virtuali a 64 bit che a 32 bit. * Un sistema a 32 bit può ospitare solo macchine virtuali a 32 bit e ha una limitazione di RAM per VM a circa 2 GB. * Per offrire più di 2047 MB di RAM a una macchina virtuale, si deve usare un [[Hardware/Architettura64Bit|kernel a 64 bit]] sul sistema host. Per verificare che il kernel sia a 64 bit, digitare il seguente comando in una finestra di [[AmministrazioneSistema/Terminale|terminale]]:{{{ uname -m }}} Il risultato '''x86_64''' indica che è in uso un kernel a 64-bit. {{{#!wiki note Risultati come '''i386''', '''i486''', '''i586''' o '''i686''' indicano un kernel a 32 bit. |
| Linea 40: | Linea 67: |
| il risultato sarà simile ai seguenti: * '''x86_64''' indica che è in uso un kernel a 64-bit. * '''i386''', '''i486''', '''i586''' o '''i686''', indicano che è in uso un kernel a 32 bit. |
##Se si utilizza un kernel XEN per visualizzare i flag vmx e svm utilizzare il comando:{{{ ##cat /sys/hypervisor/properties/capabilities ##}}} |
| Linea 48: | Linea 74: |
| Per le seguenti impostazioni, si presume la predisposizione di '''KVM''' su un server, e quindi non ci sarà nessun server X sulla macchina. | Per le seguenti impostazioni si assume una configurazione standard adatta sia per desktop che per server (anche senza ambiente grafico, sebbene si consigli `virt-manager` per la facilità di utilizzo). |
| Linea 50: | Linea 76: |
| [:AmministrazioneSistema/InstallareProgrammi:Installare] i seguenti pacchetti: * [apt://kvm kvm], * [apt://libvirt-bin libvirt-bin], * [apt://ubuntu-vm-builder ubuntu-vm-builder], * [apt://bridge-utils bridge-utils]. Se si ha la necessità di visualizzare le istanze installare anche il pacchetto: [apt://virt-viewer virt-viewer]. |
[[AmministrazioneSistema/InstallareProgrammi|Installare]] i seguenti pacchetti:{{{ sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager }}} |
| Linea 60: | Linea 81: |
| * '''qemu-kvm''': il backend principale che fornisce l'accelerazione hardware '''KVM''' tramite '''QEMU'''. [[Virtualizzazione/Qemu|Guida]]. * '''libvirt-daemon-system''': il demone libvirtd che gestisce le istanze '''KVM''' e '''QEMU'''. È l'interfaccia principale per KVM. * '''libvirt-clients''': contiene gli strumenti client (come '''virsh''') per interagire con '''libvirtd'''. * '''bridge-utils''': utilità per la configurazione del networking in bridge, utile per integrare le VM nella rete fisica. * '''virtinst''': strumenti a riga di comando per la creazione rapida di macchine virtuali. * '''virt-manager''': un'interfaccia grafica molto intuitiva e potente per la gestione delle macchine virtuali '''KVM'''. Fortemente raccomandato per la maggior parte degli utenti. |
|
| Linea 61: | Linea 88: |
| * ''kvm'': è il backend. * ''libvirt-bin'': fornisce `libvirtd` necessario per amministrare le istanze di qemu e kvm usando libvirt. * ''ubuntu-vm-builder'': potentissimo strumento a riga di comando per la creazione di macchine virtuali. * ''bridge-utils'': fornisce un bridge tra una rete e la macchinea virtuale. |
<<Anchor(root)>> == Aggiungere utenti ai gruppi == |
| Linea 66: | Linea 91: |
| === Ubuntu 8.10 === Sono stati aggiunti due metapacchetti: |
Per poter gestire le macchine virtuali '''KVM''' senza dover utilizzare [[AmministrazioneSistema/PrivilegiDiAmministrazione|privilegi di amministrazione]] per ogni comando o per avviare '''virt-manager''', è necessario che l'utente appartenga al gruppo '''libvirt'''. |
| Linea 70: | Linea 93: |
| * [apt://ubuntu-virt-server ubuntu-virt-server]: installa i pacchetti necessari alla configurazione di un host di virtualizzazione basilare ( ''kvm'', ''libvirt-bin'' e ''openssh-server''). * [apt://ubuntu-virt-mgmt ubuntu-virt-mgmt]: installa il necessario per amministrarlo da una stazione gestionale (''virt-manager'', ''python-vm-builder'' e ''virt-viewer''). Mentre ''ubuntu-vm-builder'' è stato sostituito da ''python-vm-builder'' (vedere [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/jeos-and-vmbuilder.html tutorial]). |
Durante l'installazione di ''libvirt-daemon-system'' l'utente dovrebbe essere aggiunto automaticamente al gruppo '''libvirt'''. Tuttavia, per sicurezza e per rendere la modifica effettiva, è buona norma aggiungere l'utente manualmente e poi riautenticarsi. |
| Linea 75: | Linea 95: |
| 0. Aggiungere il nome utente al gruppo '''libvirt''':{{{ sudo usermod -a -G libvirt $(whoami) }}} 0. Dopo aver eseguito questo comando disconnettersi e accedere nuovamente (o riavviare il sistema) affinché l'appartenenza al gruppo sia attiva. In alternativa è possibile utilizzare il comando `newgrp libvirt` per applicare la modifica solo nella sessione corrente. 0. Per ottenere l'elenco dei gruppi digitare:{{{ groups }}}Verificare la presenza di `libvirt` tra i gruppi elencati. |
|
| Linea 76: | Linea 103: |
| ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Dato che '''libdevmapper''' non carica i suoi moduli durante l'installazione ([https://bugs.launchpad.net/ubuntu/+source/vm-builder/+bug/277648 bug 277648]), è necessario digitare il seguente comando all'interno di una finestra di terminale:{{{$ sudo modprobe dm-loop}}}, oppure riavviare la macchina per poterla utilizzare.''|| | == Verifica dell'installazione == |
| Linea 78: | Linea 105: |
| Per verificare se l'installazione è avvenuta con successo e che il demone `libvirtd` sia in esecuzione e accessibile, digitare:{{{ virsh -c qemu:///system list --all }}}Se l'installazione è corretta e i permessi sono corretti, si vedrà un output simile a:{{{ Id Name State -------------------- }}}o un elenco delle macchine virtuali, se ne sono già state create. |
|
| Linea 79: | Linea 112: |
| = Aggiungere utenti = | == Avvio del servizio libvirt == |
| Linea 81: | Linea 114: |
| === Ubuntu 9.10 === Il pacchetto ''libvirt-bin'' aggiunge automaticamente i membri del gruppo '''admin''' al gruppo '''libvirtd'''. Rimane comunque necessario eseguire il log out, e quindi autenticarsi nuovamente per rendere effettivi questi cambiamenti. * Per aggiungersi al gruppo '''libvirtd''' (non è necessario aggiungersi anche al gruppo '''kvm''') digitare il seguente comando in una finestra di terminale:{{{ sudo adduser `id -un` libvirtd |
Dopo l'installazione il servizio '''libvirtd''' dovrebbe essere configurato per avviarsi automaticamente a ogni boot. È possibile verificarne lo stato digitando:{{{ sudo systemctl status libvirtd }}}Dovrebbe mostrare restituire:{{{ active (running) |
| Linea 89: | Linea 120: |
| ciò consente l'accesso a livello di sistema all'istanza '''libvirtd'''. In questo modo è possibile accedere ad opzioni di networking avanzate piuttosto che alle semplici opzioni "userspace networking" utilizzate su '''QEmu'''. | = Configurazione Rete (Opzionale: Bridge) = |
| Linea 91: | Linea 122: |
| * È necessario eseguire il log out e riautenticarsi perchè le nuove aggiunte al gruppo siano effettive. | Per impostazione predefinita '''KVM''' con '''libvirt''' configura una rete '''NAT''' per le macchine virtuali. Questo significa che le VM possono accedere a internet ma non sono direttamente accessibili dalla rete fisica (a meno che non si configuri il ''port forwarding''). |
| Linea 93: | Linea 124: |
| ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%>[[Immagine(Icone/Piccole/note.png,,center)]] ||<style="padding:0.5em; border:none;">''Il comando «id -un» restituisce il nome dell'attuale utente, per esempio se l'attuale utente è '''joe''' sarà effettivamente eseguito {{{sudo adduser joe libvirtd}}}.''|| | Se si desidera che le VM ottengano un indirizzo IP direttamente dalla rete locale e siano visibili come host separati, è consigliabile configurare una rete in bridge. Questo è un processo più avanzato che richiede la modifica dei file di configurazione di rete del sistema host. |
| Linea 95: | Linea 126: |
| È possibile verificare la correttezza dell'installazione digitando il seguente comando in una finestra di terminale:{{{ $ virsh -c qemu:///system list Id Name State ---------------------------------- |
== Configurazione di un Bridge con Netplan == |
| Linea 100: | Linea 128: |
| $ | Da Ubuntu 18.04 in poi la configurazione di rete è gestita da '''Netplan'''. Questo sostituisce le modifiche dirette a `/etc/network/interfaces` per le interfacce primarie. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto [[apt://bridge-utils | bridge-utils]] se non è già presente. {{{#!wiki important Netplan prende il controllo della configurazione di rete. Non è consigliabile modificare direttamente `/etc/network/interfaces` per le interfacce gestite da Netplan, né usare [[InternetRete/ConfigurazioneRete/NetworkManager|NetworkManager]] per la stessa interfaccia fisica utilizzata per il bridge. |
| Linea 103: | Linea 136: |
| Se l'installazione non è avvenuta correttamente allora avremo un messaggio simile a:{{{ $ virsh -c qemu:///system list |
0. Identificare l'interfaccia di rete digitando:{{{ ip a }}} Individuare il nome dell'interfaccia di rete Ethernet (es. enp0s31f6, eth0). 0. Modificare il file '''Netplan'''. I file di configurazione si trovano solitamente nella cartella di sistema `/etc/netplan/`. Trovare il `file.yaml` (es. `00-installer-config.yaml`) e modificarlo con un [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministrazione]]:{{{ sudo nano /etc/netplan/00-installer-config.yaml }}} 0. Adattare i nomi delle interfacce. Sostituire il contenuto esistente con qualcosa di simile a questo (adattare `enp0s31f6` al nome dell'interfaccia e il server DHCP):{{{ network: ethernets: enp0s31f6: # <<-- Sostituire con il nome dell'interfaccia fisica dhcp4: no dhcp6: no bridges: br0: interfaces: [enp0s31f6] # <<-- Sostituire con il nome dell'interfaccia fisica dhcp4: yes dhcp6: no parameters: stp: true forward-delay: 0 version: 2 }}} {{{#!wiki note L'interfaccia fisica (enp0s31f6) non ottiene più un IP direttamente. Viene creato un bridge '''br0''' che include l'interfaccia fisica. Il bridge '''br0''' ottiene l'indirizzo IP via DHCP, diventando l'interfaccia principale del sistema host. }}} 0. Applicare le modifiche digitando:{{{ sudo netplan apply }}}Si potrebbe perdere temporaneamente la connessione di rete. 0. Verificare il bridge:{{{ ip a show br0 }}}Dovrebbe essere visualizzato un indirizzo IP per '''br0'''. Creando una nuova VM con '''virt-manager''' sarà possibile selezionare '''br0''' come interfaccia di rete. = Risoluzione problemi = == libvir: Remote error : Permission denied == Il messaggio di errore:{{{ |
| Linea 107: | Linea 177: |
| $ }}} |
}}}può significare che non si è ancora autenticati dopo aver aggiunto l'utente al gruppo '''libvirt'''. |
| Linea 110: | Linea 179: |
| qualcosa è sbagliato e deve essere riparato prima di proseguire. Qui il punto critico è avere i permessi di scrittura al file `/var/run/libvirt/libvirt-sock`. | == Permessi sul socket libvirt-sock == È possibile verificare i permessi del socket con:{{{ sudo ls -la /var/run/libvirt/libvirt-sock }}}L'output atteso dovrebbe essere simile a:{{{ srwxrwx--- 1 root libvirt 0 [DATA E ORA] /var/run/libvirt/libvirt-sock }}}Questo indica che il socket è di proprietà di '''root''' e del gruppo '''libvirt''', con [[AmministrazioneSistema/PermessiFile|permessi]] di lettura/scrittura per i membri del gruppo. |
| Linea 114: | Linea 189: |
| * [https://help.ubuntu.com/community/KVM/Installation Documento originale] ##traduzione della pagina del 27.10.2009 |
* [[https://help.ubuntu.com/community/KVM/Installation|Documento originale]] * [[https://www.libvirt.org/|Sito ufficiale di Libvirt]] * [[https://www.qemu.org/|Sito ufficiale di QEMU]] |
| Linea 117: | Linea 194: |
| CategoryHomepage | CategoryVirtualizzazione |
Guida verificata con Ubuntu: 22.04 24.04 25.04 25.10
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
Questa pagina fornisce una guida completa all'installazione e alla configurazione di KVM (Kernel-based Virtual Machine), la soluzione di virtualizzazione nativa del kernel Linux, su Ubuntu 22.04 e versioni successive. KVM offre prestazioni quasi native ed è la tecnologia di virtualizzazione preferita su Linux.
Preparativi
CPU: verifica supporto virtualizzazione
Per utilizzare appieno le prestazioni di KVM, è indispensabile che il processore supporti le estensioni di virtualizzazione hardware. Queste sono note come Intel VT-x (per processori Intel, nome in codice Vanderpool) e AMD-V (per processori AMD, nome in codice Pacifica).
Per verificare il supporto digitare nel terminale:
lscpu | grep Virtualization
Se il comando restituisce VT-x o AMD-V, il supporto hardware è presente.
- Se non viene visualizzata alcuna riga relativa alla virtualizzazione o se il comando precedente non restituisce nulla, la CPU potrebbe non supportarla o l'opzione potrebbe essere disabilitata nel BIOS/UEFI.
Verifica avanzata e stato di /dev/kvm:
Un modo più diretto per verificare la disponibilità di KVM si ha utilizzando kvm-ok.
Se il comando kvm-ok è assente installare il pacchetto cpu-checker.
Digitare nel terminale:
kvm-ok
Se il supporto è presente restituirà una risposta simile a:
INFO: Your CPU supports KVM extensions INFO: /dev/kvm exists KVM acceleration can be used
In caso contrario l'output sarà del tipo:
INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
e significa che le estensioni hardware non sono disponibili. Senza le estensioni KVM sarà comunque possibile eseguire macchine virtuali, ma risulteranno significativamente più lente.
Potrebbe essere necessario abilitarle nel BIOS/UEFI del sistema (spesso sotto voci come "Virtualization Technology", "Intel VT-d", "AMD-V").
Kernel a 64 bit (raccomandato)
L'esecuzione di un kernel a 64 bit sul sistema host è fortemente raccomandata per sfruttare al meglio KVM.
- Un sistema a 64 bit può ospitare sia macchine virtuali a 64 bit che a 32 bit.
- Un sistema a 32 bit può ospitare solo macchine virtuali a 32 bit e ha una limitazione di RAM per VM a circa 2 GB.
Per offrire più di 2047 MB di RAM a una macchina virtuale, si deve usare un kernel a 64 bit sul sistema host.
Per verificare che il kernel sia a 64 bit, digitare il seguente comando in una finestra di terminale:
uname -m
Il risultato x86_64 indica che è in uso un kernel a 64-bit.
Risultati come i386, i486, i586 o i686 indicano un kernel a 32 bit.
Installazione
Per le seguenti impostazioni si assume una configurazione standard adatta sia per desktop che per server (anche senza ambiente grafico, sebbene si consigli virt-manager per la facilità di utilizzo).
Installare i seguenti pacchetti:
sudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
Descrizione dei pacchetti:
qemu-kvm: il backend principale che fornisce l'accelerazione hardware KVM tramite QEMU. Guida.
libvirt-daemon-system: il demone libvirtd che gestisce le istanze KVM e QEMU. È l'interfaccia principale per KVM.
libvirt-clients: contiene gli strumenti client (come virsh) per interagire con libvirtd.
bridge-utils: utilità per la configurazione del networking in bridge, utile per integrare le VM nella rete fisica.
virtinst: strumenti a riga di comando per la creazione rapida di macchine virtuali.
virt-manager: un'interfaccia grafica molto intuitiva e potente per la gestione delle macchine virtuali KVM. Fortemente raccomandato per la maggior parte degli utenti.
Aggiungere utenti ai gruppi
Per poter gestire le macchine virtuali KVM senza dover utilizzare privilegi di amministrazione per ogni comando o per avviare virt-manager, è necessario che l'utente appartenga al gruppo libvirt.
Durante l'installazione di libvirt-daemon-system l'utente dovrebbe essere aggiunto automaticamente al gruppo libvirt. Tuttavia, per sicurezza e per rendere la modifica effettiva, è buona norma aggiungere l'utente manualmente e poi riautenticarsi.
Aggiungere il nome utente al gruppo libvirt:
sudo usermod -a -G libvirt $(whoami)
Dopo aver eseguito questo comando disconnettersi e accedere nuovamente (o riavviare il sistema) affinché l'appartenenza al gruppo sia attiva. In alternativa è possibile utilizzare il comando newgrp libvirt per applicare la modifica solo nella sessione corrente.
Per ottenere l'elenco dei gruppi digitare:
groups
Verificare la presenza di libvirt tra i gruppi elencati.
Verifica dell'installazione
Per verificare se l'installazione è avvenuta con successo e che il demone libvirtd sia in esecuzione e accessibile, digitare:
virsh -c qemu:///system list --all
Se l'installazione è corretta e i permessi sono corretti, si vedrà un output simile a:
Id Name State --------------------
o un elenco delle macchine virtuali, se ne sono già state create.
Avvio del servizio libvirt
Dopo l'installazione il servizio libvirtd dovrebbe essere configurato per avviarsi automaticamente a ogni boot. È possibile verificarne lo stato digitando:
sudo systemctl status libvirtd
Dovrebbe mostrare restituire:
active (running)
Configurazione Rete (Opzionale: Bridge)
Per impostazione predefinita KVM con libvirt configura una rete NAT per le macchine virtuali. Questo significa che le VM possono accedere a internet ma non sono direttamente accessibili dalla rete fisica (a meno che non si configuri il port forwarding).
Se si desidera che le VM ottengano un indirizzo IP direttamente dalla rete locale e siano visibili come host separati, è consigliabile configurare una rete in bridge. Questo è un processo più avanzato che richiede la modifica dei file di configurazione di rete del sistema host.
Configurazione di un Bridge con Netplan
Da Ubuntu 18.04 in poi la configurazione di rete è gestita da Netplan. Questo sostituisce le modifiche dirette a /etc/network/interfaces per le interfacce primarie.
Installare il pacchetto bridge-utils se non è già presente.
Netplan prende il controllo della configurazione di rete. Non è consigliabile modificare direttamente /etc/network/interfaces per le interfacce gestite da Netplan, né usare NetworkManager per la stessa interfaccia fisica utilizzata per il bridge.
Identificare l'interfaccia di rete digitando:
ip a
Individuare il nome dell'interfaccia di rete Ethernet (es. enp0s31f6, eth0).Modificare il file Netplan. I file di configurazione si trovano solitamente nella cartella di sistema /etc/netplan/. Trovare il file.yaml (es. 00-installer-config.yaml) e modificarlo con un editor di testo e i privilegi di amministrazione:
sudo nano /etc/netplan/00-installer-config.yaml
Adattare i nomi delle interfacce. Sostituire il contenuto esistente con qualcosa di simile a questo (adattare enp0s31f6 al nome dell'interfaccia e il server DHCP):
network: ethernets: enp0s31f6: # <<-- Sostituire con il nome dell'interfaccia fisica dhcp4: no dhcp6: no bridges: br0: interfaces: [enp0s31f6] # <<-- Sostituire con il nome dell'interfaccia fisica dhcp4: yes dhcp6: no parameters: stp: true forward-delay: 0 version: 2L'interfaccia fisica (enp0s31f6) non ottiene più un IP direttamente. Viene creato un bridge br0 che include l'interfaccia fisica. Il bridge br0 ottiene l'indirizzo IP via DHCP, diventando l'interfaccia principale del sistema host.
Applicare le modifiche digitando:
sudo netplan apply
Si potrebbe perdere temporaneamente la connessione di rete.Verificare il bridge:
ip a show br0
Dovrebbe essere visualizzato un indirizzo IP per br0.
Creando una nuova VM con virt-manager sarà possibile selezionare br0 come interfaccia di rete.
Risoluzione problemi
libvir: Remote error : Permission denied
Il messaggio di errore:
libvir: Remote error : Permission denied error: failed to connect to the hypervisor
può significare che non si è ancora autenticati dopo aver aggiunto l'utente al gruppo libvirt.
Permessi sul socket libvirt-sock
È possibile verificare i permessi del socket con:
sudo ls -la /var/run/libvirt/libvirt-sock
L'output atteso dovrebbe essere simile a:
srwxrwx--- 1 root libvirt 0 [DATA E ORA] /var/run/libvirt/libvirt-sock
Questo indica che il socket è di proprietà di root e del gruppo libvirt, con permessi di lettura/scrittura per i membri del gruppo.
