Dimensione: 5708
Commento: to be continued....
|
← Versione 35 del 09/02/2019 11.38.50 ⇥
Dimensione: 6147
Commento: CategoryDaRevisionare
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 1: | Linea 1: |
## page was renamed from Emulatori/Kvm/GestioneDiretta ## page was renamed from FabioMarconi/Prove11 ## page updated 13-06-2011 |
|
Linea 3: | Linea 6: |
[[Indice(depth=2)]] [[Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,371617.0.html")]] [[BR]] KVM/!GestioneDiretta |
<<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="10.04")>> |
Linea 26: | Linea 27: |
* '''-boot a, c, d, n''': | * '''-boot a, c, d''' o '''n''': |
Linea 28: | Linea 29: |
* '''c''': disco rigido, * '''d''': CD-ROM, * '''n''': da rete. |
* '''c''': avvio da disco rigido, * '''d''': avvio da CD-ROM, * '''n''': avvio da da rete. |
Linea 42: | Linea 43: |
0. Creare il bridge sulla scheda, come descritto [[KVM/Networking#Creazione di un bridge di rete sul host QUI]]*****ancorare | 0. Creare il bridge sulla scheda, come descritto nella [[Virtualizzazione/Kvm/Networking#bridge-sull-host|relativa pagina]]. |
Linea 44: | Linea 45: |
2. Installare uml-utilities | 0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto: [[apt://uml-utilities | uml-utilities]] |
Linea 46: | Linea 47: |
{{{ sudo apt-get install uml-utilities }}} 3. Impostare i permessi al dispositivo tun, tramite qualsiasi editor di testo, modificare ''/etc/udev/rules.d/40-permissions.rules'', aggiungendo queste linee alla fine del file: {{{ |
0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/udev/rules.d/40-permissions.rules` e aggiugere alla fine del file la seguente riga:{{{ |
Linea 55: | Linea 50: |
per impostare i permessi al dispositivo '''tun'''. | |
Linea 56: | Linea 52: |
4. Riavviare (per rendere visibili i dispositivi bridged e tun). | 0. Salvare e chiudere il file appena modificato. |
Linea 58: | Linea 54: |
5. Editare ''/etc/kvm/kvm-ifup'' aggiungendo sudo davanti ai comandi ifconfig e brctl: | 0. Riavviare la macchina per rendere visibili i dispositivi '''bridged''' e '''tun'''. |
Linea 60: | Linea 56: |
{{{ | 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/kvm/kvm-ifup` e aggiungere «sudo» davanti ai comandi «ip» e «brctl»:{{{ |
Linea 64: | Linea 60: |
'''sudo''' /sbin/ifconfig $1 0.0.0.0 up | '''sudo''' /sbin/ip link set dev "$1" up |
Linea 68: | Linea 64: |
0. Salvare e chiudere il file appena modificato. | |
Linea 69: | Linea 66: |
6. Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo '''kvm-bridge''', e richiamarlo direttamene con il comando '''kvm-bridge'''. {{{ |
0. Per lanciare '''KVM''' è necessario uno script wrapper. È possibile inserirlo in `~/bin` e chiamarlo '''kvm-bridge''' e richiamarlo direttamene con il comando '''kvm-bridge'''.{{{ |
Linea 108: | Linea 103: |
7. Rendere eseguibile lo script appena creato: | 0. Rendere eseguibile lo script appena creato digitando in un terminale:{{{ chmod 0755 ~/bin/kvm-bridge }}} |
Linea 110: | Linea 107: |
{{{ chmod 0755 ~/bin/kvm-bridge }}} |
0. Modificare '''sudoers''' per consentire ai membri del gruppo '''KVM''' di eseguire lo script '''wrapper kvm-bridge''' e creare una intefaccia di rete bridged senza l'esecuzione di '''KVM''' come superutente:{{{ visudo }}} |
Linea 114: | Linea 111: |
8. Modificare sudoers per consentire ai membri del gruppo kvm di eseguire lo script wrapper kvm-bridge e creare una intefaccia di rete bridged senza l'esecuzione di KVM come superutente. {{{ visudo }}} Aggiungere queste linee alla fine del file: |
Aggiungere le seguenti righe alla fine del file: |
Linea 123: | Linea 114: |
%kvm ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/sbin/tunctl }}} |
%kvm ALL=(ALL) NOPASSWD: /sbin/ip, /usr/sbin/brctl, /usr/sbin/tunctl }}} |
Linea 126: | Linea 117: |
9. Avviare KVM da riga di comando. '''Non è necessario dichiarare una interfaccia network'''. {{{ |
0. Avviare '''KVM''' da riga di comando. Non è necessario dichiarare una interfaccia network.{{{ |
Linea 130: | Linea 119: |
}}} | }}} |
Linea 135: | Linea 124: |
Aggiungere le seguenti regole ad iptables: {{{ |
Aggiungere le seguenti regole ad iptables:{{{ |
Linea 144: | Linea 131: |
Sostituire "$IPADDR_FROM_GUEST_OS" con l'attuale indirizzo ip dell'ospite di kvm. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico). | Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di '''kvm'''. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico). |
Linea 146: | Linea 133: |
Se si usa ufw, aggiungere queste regole a ''/etc/ufw/before.rules'' * Vedere [http://help.ubuntu-it.org/9.10/ubuntu/serverguide/it/firewall.html Ubuntu Sicurezza Firewall] |
Se si usa '''ufw''', aggiungere queste regole al file `/etc/ufw/before.rules`. ##vedere anche [[http://help.ubuntu-it.org/current/ubuntu/serverguide/it/firewall.html|Ubuntu Sicurezza Firewall]]. |
Linea 151: | Linea 137: |
*[https://help.ubuntu.com/community/KVM/Directly Documento originale] ##traduzionepagina del 10.02.2009 |
* [[https://help.ubuntu.com/community/KVM/Directly|Documento originale]] |
Linea 154: | Linea 140: |
CategoryHomepage CategoryInTraduzione | CategoryVirtualizzazione CategoryDaRevisionare |
Problemi in questa pagina? Segnalali in questa discussione
Introduzione
La documentazione trattata fino ad ora è focalizzata all'uso di KVM attraverso libvirt, in questa pagina verrà spiegata la gestione diretta di KVM, un metodo non raccomandabile, ma in alcuni casi, utile.
Gestione diretta di KVM
KVM è molto simile a qemu e rende possibile l'esecuzione di macchine da riga di comando.
La sintassi di base è:
kvm -m 512 -hda disk.img -cdrom ubuntu.iso -boot d -smp 2
dove:
-m: è la memoria (in MB)
-hda: è il primo disco rigido. È possibile usare vari tipi di file immagine inclusi .img, .cow. Per avviare un disco rigido è necessario prestare attenzione nell'uso di questa opzione, se non si vuole avviare la partizione di root del host. La sintassi corretta è -hda /dev/sda. Questa richiama il menu di grub dal MBR quando viene lanciato KVM.
-cdrom può essere sia un'immagine ISO che un lettore CD/DVD.
-boot a, c, d o n:
a: avvio da floppy,
c: avvio da disco rigido,
d: avvio da CD-ROM,
n: avvio da da rete.
-smp: è il numero delle CPU.
-alt-grab cambia la combinazione per il grab del puntatore da Ctrl-Alt a Ctrl-Alt-Shift (molto pratico se si usano spesso combinazioni di tasti come Ctrl-Alt-Del o Windows-E).
Per ulteriori opzioni digitare:
kvm --help
Dispositivi di connessione bridged
Prima di avviare KVM usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.
Creare il bridge sulla scheda, come descritto nella relativa pagina.
Installare il pacchetto: uml-utilities
Aprire con un editor di testo il file /etc/udev/rules.d/40-permissions.rules e aggiugere alla fine del file la seguente riga:
KERNEL=="tun", GROUP="kvm", MODE="0660"
per impostare i permessi al dispositivo tun.
- Salvare e chiudere il file appena modificato.
Riavviare la macchina per rendere visibili i dispositivi bridged e tun.
Aprire con un editor di testo il file /etc/kvm/kvm-ifup e aggiungere «sudo» davanti ai comandi «ip» e «brctl»:
#!/bin/sh switch=$(ip route ls | awk '/^default / { for(i=0;i<NF;i++) { if ($(i) == "dev") print $(i+1) }}') '''sudo''' /sbin/ip link set dev "$1" up '''sudo''' /usr/sbin/brctl addif ${switch} $1 exit 0
- Salvare e chiudere il file appena modificato.
Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo kvm-bridge e richiamarlo direttamene con il comando kvm-bridge.
#!/usr/bin/env bash. # script per gestire l'allocazione dell'interfaccia tap. # per kernels >= 2.6.18. # modificato da bodhi.zazen con l'ausilio di: # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86. # http://ubuntuforums.org/showthread.php?t=528046. # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. # impostazione di una interfaccia tap per qemu. # USERID - uid sotto il quale è in esecuzione qemu. USERID=`whoami` # generare un indirizzo macchina casuale peril nic di qemu . # shell script preso in prestito dall'utente pheldens @ qemu forum. ranmac=$(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ; \ do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done) # specificare quale NIC usare - vedere qemu.org per altri NIC. # model=r8169. # impostare il modello di scheda di rete. # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10. model=rtl8139 iface=`sudo tunctl -b -u $USERID` # avviare kvm con questi parametri. # echo "rendere visibile l'interfaccia $iface con indirizzo macchina $ranmac". # nohup aggiunto per consentire a kvm di essere indipendente dal terminale. nohup kvm -net nic,vlan=0,macaddr=$ranmac -net tap,vlan=0,ifname=$iface $@ # kvm è stato fermato - non usare più l'interfaccia tap. sudo tunctl -d $iface &> /dev/null
Rendere eseguibile lo script appena creato digitando in un terminale:
chmod 0755 ~/bin/kvm-bridge
Modificare sudoers per consentire ai membri del gruppo KVM di eseguire lo script wrapper kvm-bridge e creare una intefaccia di rete bridged senza l'esecuzione di KVM come superutente:
visudo
Aggiungere le seguenti righe alla fine del file:# Autorizzare i membri del gruppo KVM a configurare una interfaccia di rete bridged virtuale. %kvm ALL=(ALL) NOPASSWD: /sbin/ip, /usr/sbin/brctl, /usr/sbin/tunctl
Avviare KVM da riga di comando. Non è necessario dichiarare una interfaccia network.
kvm-bridge -m 512 -hda disk.img -cdrom ubuntu.iso -boot -d -smp 2
iptables
Aggiungere le seguenti regole ad iptables:
# autorizza i pacchetti in ingresso per l'ospite kvm. IPTABLES -A FORWARD -d $IPADDR_FROM_GUEST_OS -j ACCEPT # autorizza i pacchetti in uscita da kvm. IPTABLES -A FORWARD -s $IPADDR_FROM_GUEST_OS -j ACCEPT
Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di kvm. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico).
Se si usa ufw, aggiungere queste regole al file /etc/ufw/before.rules.