14/10/2008 - Linux Feed

LINUX « E-Pillole



VirtualBox per Debian e Ubuntu

Post inserito il 07/06/2007 da Fede in Guide Debian Ubuntu

Ieri, è stata rilasciata una nuova versione di VirtualBox (1.4.0), uno dei migliori software di virtualizzazione disponibili e sicuramente uno dei più semplici da utilizzare.

EDIT: 03/09/2007 aggiornamento alla versione 1.5.0 (Changelog)

Personalmente, dopo aver avuto il "privilegio" di installare in un ambiente di produzione un sistema di virtualizzazione basato su XEN, considero VirtualBox adatto principalmente ad un'utilizzo "amatoriale" e "saltuario". Con questo non voglio assolutamente dire che VirtualBox non sia un prodotto valido, anzi, ma i gusti sono gusti e XEN è XEN :)

VirtualBox

Detto in parole povere, per un uso sporadico in ambiente Desktop, VirtualBox è perfetto: semplice da installare e semp//lice da configurare. Sicuramente esistono altre alternative valide come ad esempio VMware, ma in questo momento ci interessa VirtualBox :)

Vediamo quindi come installarlo su Debian e Ubuntu...

Come detto in precedenza, l'installazione è semplicissima. VirtualBox è infatti già pacchettizzato sia per Debian (Etch - Sarge) che per Ubuntu (Dapper - Edgy - Feisty - Gutsy), ed è possibile installarlo direttamente via apt aggiungendo la repository ufficiale adatta alla vostra distribuzione.

(*) N.B. Per Sid non è presente alcuna repository, e sarà quindi necessario utilizzare l'installer o installare il tutto da sorgente.

Installazione VirtualBox tramite apt

Editando il file /etc/apt/sources.list con il vostro editor di testo preferito aggiungete una delle seguenti repository:

- se utilizzate Debian Etch:

deb http://www.virtualbox.org/debian etch non-free

- se utilizzate ancora Debian Sarge:

deb http://www.virtualbox.org/debian sarge non-free

- se utilizzate Ubuntu Gutsy:

deb http://www.virtualbox.org/debian gutsy non-free

- se utilizzate ancora Ubuntu Feisty:

deb http://www.virtualbox.org/debian feisty non-free

- se utilizzate ancora Ubuntu Edgy:

deb http://www.virtualbox.org/debian edgy non-free

- se utilizzate ancora Ubuntu Dapper:

deb http://www.virtualbox.org/debian dapper non-free

Salvate il file, e importate la chiave gpg per l'autenticazione digitando:

wget -O - http://www.virtualbox.org/debian/innotek.asc | sudo apt-key add -

Se invece state utilizzate root importatela digitando:

wget -O - http://www.virtualbox.org/debian/innotek.asc | apt-key add -

Ora aggiornate le vostre repository:

sudo apt-get update

ed installate VirtualBox digitando molto semplicemente:

sudo apt-get install virtualbox

Installando VirtualBox da apt, verrà caricato automaticamente il modulo per il kernel (vboxdrv) e verrà creato il gruppo vboxusers al quale dovrete aggiungere il vostro utente digitando:

sudo adduser USERNAME vboxusers

A questo punto, per rendere effettiva la modifica apportata al vostro utente, sarà necessario effettuare il log out dalla vostra sessione e rieffettuare il log in. Si può anche evitare ma al momento non ricordo come :)

Rieffettuato il log in, VirtualBox è ora pronto ad essere utilizzato per virtualizzare qualunque sistema operativo, e potrete trovarlo in: System Tools --->> innotek VirtualBox

A questo link potete trovare un ottima guida con diversi screenshot per la creazione e la configurazione delle vostre "macchine virtuali".

In generale, se non vi interessa che il vostro "OS guest virtuale" appertenga alla stessa sottorete dell'host su cui gira VirtualBox, potete tranquillamente fermarvi qui e cominciare ad utilizzarlo senza problemi. Al contrario proseguite con la guida (**)

(*) Installazione VirtualBox su Sid tramite l'installer

Per installare VirtualBox su Debian Sid potete servirvi sia dell'installer reperibile da questa pagina alla voce All distributions, sia del sorgente.

P.S. per l'installazione sono necessari tutti i vari strumenti per la compilazione (build-essential, linux-headers ecc...) più alcune librerie particolari. (fate riferimento a questa pagina per tutto il necessario e per l'installazione da sorgente)

Ipotizzando che abbiate installato tutto il necessario, e che abbiate scelto di utilizzare l'installer, sostituendo la versione corretta per la vostra architettura, digitate:

sudo sh VirtualBox_1.4.0_Linux_x86.run install

Se non ci sono errori, l'installazione è andata a buon fine, ma prima di procedere, è necessario caricare il modulo del kernel (vboxdrv) digitando:

sudo modprobe vboxdrv

e aggiungere il vostro utente al gruppo vboxusers:

sudo adduser USERNAME vboxusers

Come sempre, per rendere effettiva la modifica apportata al vostro utente, sarà necessario effettuare il log out dalla vostra sessione e rieffettuare il log in.

Rieffettuato il log in, VirtualBox è ora pronto ad essere utilizzato per virtualizzare qualunque sistema operativo, e potrete trovarlo in: System Tools --->> innotek VirtualBox

(**) Networking "Avanzato"

Come detto in precedenza, se volete che il vostro host e la vostra virtual machine appartengano alla stessa sottorete, di modo da poter comunicare, è necessario creare un'interfaccia di rete ed aggiungerla ad un bridge.

Per ottenere questo risultato, innanzitutto, dovete installare due pacchetti indispensabili digitando:

sudo apt-get install bridge-utils uml-utilities 

Ora, create la nuova interfaccia di rete che chiameremo vbox0, in questo modo:

sudo tunctl -t vbox0 -u USERNAME

e settate correttamente i permessi digitando:

sudo chmod 666 /dev/net/tun

Create ora il bridge che chiameremo br0 digitando:

sudo brctl addbr br0

e ipotizzando che le vostra interfaccia di rete primaria sia eth0, aggiungete sia eth0 che vbox0 al bridge br0 digitando in successione questi comandi:

sudo brctl addif br0 eth0

sudo dhclient br0

sudo brctl addif br0 vbox0

sudo ifconfig vbox0 up

A questo punto, dovrebbe essere già tutto perfettamente funzionante, ma prima di lanciare VirtualBox, verificate digitando:

sudo ifconfig

e dovreste visualizzare tutte le interfacce di rete create (br0, eth0, vbox0).

Se così è, lanciate VirtualBox e nelle impostazioni, alla voce network, scegliete:

- Attached to --->> Host Interface

- Interface Name --->> vbox0

Avviate la vostra macchina virtuale e se tutto è configurato correttamente, il vostro host e la vostra macchina virtuale apparterranno alla stessa sottorete e potranno comunicare tranquillamente.

N.B. ripetete i passaggi precedenti per ogni interfaccia di rete virtuale che vorrete creare (vbox1, vbox2, ecc...).

N.B. con questo metodo "manuale" ogni volta che riavvierete il vostro PC dovrete ripetere i passaggi elencati in precedenza.

In alternativa, per rendere definitiva questa configurazione di rete potete mettere mano al file /etc/network/interfaces e modificarlo secondo le vostre necessità rendendolo simile ad uno di questi due.

- HOST IN DHCP:

#LOOPBACK INTERFACE
auto lo
iface lo inet loopback

#eth0 INTERFACE
auto eth0
iface eth0 inet dhcp 

#vbox0 INTERFACE
auto vbox0
iface vbox0 inet manual
    tunctl_user USERNAME

#br0 INTERFACE
auto br0
iface br0 inet manual
    post-up chmod 666 /dev/net/tun
    post-up dhclient br0
    bridge-ports eth0 vbox0
    bridge-ageing 7200
    bridge-fd 0

- HOST CON IP FISSO:

#LOOPBACK INTERFACE
auto lo
iface lo inet loopback

#eth0 INTERFACE
auto eth0
iface eth0 inet manual 

#vbox0 INTERFACE
auto vbox0
iface vbox0 inet manual
    tunctl_user USERNAME

#br0 INTERFACE
auto br0
iface br0 inet static
    address 192.168.10.100
    netmask 255.255.255.0
    broadcast 192.168.10.255
    gateway 192.168.10.1
    bridge-ports eth0 vbox0
    bridge-ageing 7200
    bridge-fd 0

Inoltre, in alternativa ai metodi sopra elencati, è anche possibile automatizzare il tutto all'avvio delle macchine virtuali utilizzando degli script ad hoc.

Per ulteriori chiarimenti visitate queste pagine:

- VirtualBox HOWTOs and tutorials

- End-user documentation

- Technical documentation

Nella speranza che sia tutto chiaro, buon divertimento e buona virtualizzazione...


Post letto 8814 volte | Commenti (29) | Bookmark   del.icio.us    segnalo


Commento postato da maupec il 14/06/2007
Grazie per le istruzioni, finalmente ho iniziato a vedere che qualcosa funziona (parlo del networking avanzato con host interface).
Una precisazione: nelle righe:
#br0 INTERFACE
auto br0
iface br0 inet static
address 192.168.10.100
netmask 255.255.255.0
broadcast 192.168.10.255
gateway 192.168.10.1
bridge-ports eth0 vbox0
bridge-ageing 7200
bridge-fd 0

devo mettere gli indirizzi che veramente ha il mio pc nei settaggi della rete? Nel mio caso sarebbe address 192.168.1.9, gateway 192.168.1.1, ecc..?

E, per esempio, se faccio un xp virtuale, nel settaggio della rete su xp devo ripetere tutto il settaggio rete come l'ho su linux, cioe' con gli stessi indirizzi?

Dalle prove che ho fatto fino ad ora, solo dando da terminale i comandi suggeriti, senza modificare il file interfaces, almeno ho visto che riuscivo ad andare in internet dall'xp virtuale, ma non riesco a vedere i pc della rete a cui sono collegato.

grazie

mauro

Commento postato da Fede il 14/06/2007
@maupec

>>devo mettere gli indirizzi che veramente ha il mio pc nei settaggi della rete?

sì certo!!

il PC "host", quello su cui è installato virtualbox, prende l'IP da dhcp o ha IP fisso ?

non ho mai virtualizzato win con virtualbox, ma credo non ci siano noie particolari...

incolla l'output di:

ifconfig (per linux) e ipconfig (per win)

ciaociao

Commento postato da Lelo il 29/07/2007
Ciao ragazzi, ho una debian etch 2.6.19-2 , sapete dove posso trovare i linux-source di questa versione? Ho cercato ovunque e non li trovo.

Commento postato da Fede il 29/07/2007
@Lelo

probabilmente non ho capito la tua domanda :)

cmq, il kernel Debian per etch è la versione 2.6.18...
deduco che te lo sei compilato il 2.6.19 no??

i sorgenti del kernel v2.6 li trovi tutti qui -->> http://www.kernel.org/pub/li­nux/kernel/v2.6/

ciaociao­

Commento postato da Lelo il 31/07/2007
No, purtroppo è una macchina dedicata in affitto quindi io non ho fatto nulla e purtroppo ogni qual volta provi a modificare il kernel Upgrade/downgrade sono costretto a reinstallare tutto quindi devo rimanere con quello :P Grazie comunque per la risposta, ora sto facendo un pò di test sulla lenny a casa 2.6.21-2
Compilato ma ogni tanto (anzi sempre) ho questo messaggio in shell:

atkbd.c: Spurious NAK on isa0060/serio0. Some program might be trying access har dware directly.

Commento postato da Fede il 31/07/2007
@Lelo

uhmm, ho dato un occhiata in giro su google e sulle varie mailing-list di debian e virtualbox.

ci sono diversi risultati riguardanti il tuo "problema"...ma non vedo nessuna soluzione :(

sembra cmq che non crei nessun malfunzionamento alle VM...o sbaglio??

http://www.virtualbo­x.org/discussion/1/782

ciaocia­o­

Commento postato da Lelo il 01/08/2007
volevo avvisarti che ci sono riuscito :) sia in locale che sulla macchina remota. In locale comunque continuoad avere quel problema, ma fa nulla.
Ora sto cercando di fare uno script per far partire la vm in screen :D

Commento postato da Fede il 02/08/2007
@Lelo

bene :)

per lo script ci sono diversi esempi utili sulla documentazione ufficiale se ti dovesse servire aiuto...

ciaociao

Commento postato da Lelouch il 03/08/2007
Rieccomi :)

Ok allora, configurato tutto a livello di rete, ma dunno why il bridge non mi funziona, Package not found, bridge-utils installato ed il comando brctl in qualche modo rrestituisce il classico --help, deduco quindi che il mio kernel sta facendo ancora una volta la sua parte :D

Quindi c'è un altro modo per far apparire in rete il guest senza fare bridge...

...fosse un host winzoz

Ricordo che

Debian = host
WS2003 = gust

Commento postato da Fede il 03/08/2007
@Lelouch

sicuro che non ti trovi il pacchetto bridge-utils ??

davvero strano...è incluso nella sezione main per tutte le release :(

ciaociao

Commento postato da Lelouch il 04/08/2007
si il comando esiste brctl

ma dando

brctl addbr br0

Mi dice Package not found, credo sia per via della mancanza del modulo bridge del kernel.

Ora devo capire come compilarli magari singolarmente visto che ho finalmente i source

Commento postato da lo_gnu il 25/08/2007
...ciao... sto provando a configurare la rete a livello avanzato per mettere in comnicazione il sistema host(debian) con il guest(XP) ho modificato il mio /etc/network/interfaces come host con ip fisso...

il ping verso il gateway router funzina da entrambi
il ping da guest a host funziona, non riesco a pingare il sistema guest dal sistema host....

grazie a tutti

Commento postato da lo_gnu il 28/08/2007
risolto... bastava installare le guest additions...

grazie a tutti....

Commento postato da Fede il 28/08/2007
@lo_gnu

>>risolto... bastava installare le guest additions...

good...!! :)

purtroppo non ho mai virtualizzato win dentro virtualbox...
magari prima o poi lo farò :)

grazie per aver riportato la soluzione, potrebbe essere utile ad altri...!!

ciaociao

Commento postato da vin il 18/10/2007
questo è l'errore:


" VirtualBox kernel driver not installed. The vboxdrv kernel module was either not loaded or /dev/vboxdrv was not created for some reason. Re-setup the kernel module by executing '/etc/init.d/vboxdrv setup' as root.
VBox status code: -1908 (VERR_VM_DRIVER_NOT_INSTALLED).­


Codice&nbspd'uscita:­
0x80004005
Componente:
Console
Interfaccia:
IConsole {1dea5c4b-0753-4193-b909-22330f64ec45} "

ho provato in tutti i modi ma non riesco a risolverlo. Da shell se digito '/etc/init.d/vboxdrv setup' ottengo:

"Stopping VirtualBox kernel module: vboxdrv.
Recompiling VirtualBox kernel module: vboxdrv
* Look at /var/log/vbox-install.log to find out what went wrong"

Commento postato da Fede il 19/10/2007
@vin

debian o ubuntu??

quale release...??

ciaociao

Commento postato da albesan il 23/11/2007
Grazie ottimo lavoro. Mi rimane un solo problema quando vado a fare il "sudo chmod 666 /dev/net/tun" al successivo reboot del pc, perdo i permessi. Come faccio a renderli permanenti.
Grazie

Commento postato da darkness il 30/12/2007
salve.. io ho un pc dove ho messo debian lenny ( ha 2 schede di rete) 1 acquisisce i dati provenienti dal router la 2 li trasmette a un altro pc(dove sto scrivendo) qualche giorno fa installai virtualbox creando interfaccia br0 mettendo ip che avevo su eth0 (la scheda che acquisisce dal router) e su eth2 lasciai ip che ci stava.. su firestarter come interfaccia principale ho messo br0 e come interfaccia da condividere eth2 .. ho creato interfacce tap 1 2 3 avviai il 1 server virtuale.. solo che io da qui riesco a pingare sia la macchina fisica che quella virtuale.. per quella virtuale non va su internet anche se pinga le altre macchine della mia rete.. ho messo i dns ho messo ip statico ma niente.. cn dhcp non posso xche non ho un server dh sul pc help mee

Commento postato da xavy il 11/04/2008
Ciao a tutti.. ho provato a seguire i vostri consigli ma nulla .. il mio problema è che non sono collegato ad internet e non ho un router hardware..

il mio intento è poter avere una comunicazione tra la macchina host (debian) e la macchina guest (debian) senza nessuna connessione di nessun tipo..

grazie mille

Commento postato da Ph3mt il 28/06/2008
root@blackhats:/etc/network# /etc/init.d/networking start
* Configuring network interfaces... Set 'vbox0' persistent and owned by uid 1000
Set 'vbox0' persistent and owned by uid 0

Salve ragazzi volevo sapere come risolvere questo problema perchè ogni volta devo dare il comando a mano così

root@blackhats:/etc/network# tunctl -t vbox0 -u ph3mt
Set 'vbox0' persistent and owned by uid 1000
root@blackhats:/etc/network#

Attendo una vostra risposta :P

Commento postato da Fede il 29/06/2008
@Ph3mt

>>N.B. con questo metodo "manuale" ogni volta che riavvierete il vostro PC dovrete ripetere i passaggi elencati in precedenza.

La soluzione al tuo problema è descritta nel post :)

ciaociao

Commento postato da hanz il 26/07/2008
Hi all,

I found this page by using google. I have the same problem as ph3mt. Because I can't speak italy, I home anybody can tell/translate me the solution in english/german for his problem.

Thanks a lot!

Commento postato da Pol Hallen il 31/07/2008
Fico!
Grazie :-)

leggendo 'sto howto mi son venuti in mente i tempi in cui usavo il modulo shaper per limitare la banda alle interfacce di rete!

Comunque non mi e' molto chiaro del perche' vbox non disponga di una configurazione tipo gui per il suo dhcp - considerando che in vmware e' possibile settare l'intefaccia su cui poggiare il guest os.

Saluti
Pol

Commento postato da Betty Boop il 12/08/2008
Bella Fede!! Grazie mille mi hai risolto un problemone!!
Però dopo aver seguito la procedura dal pc host non riesco più a raggiungere nulla che stia sulla rete, nemmeno se effettuo un ping diretto dell'ip di un'altra macchina. la navigazione internet invece funziona.
HELP!!
GRAZIE!!

Commento postato da Lorenzo il 17/08/2008
Ciao a tutti,
utilizzando la configurazione con ip statici sopra indicata, ogni volta si riavvia il pc si devono dare i comandi "sudo tunctl -t vbox0 -u USERNAME" e "sudo chmod 666 /dev/net/tun" manualmente.
Con la configurazione descritta sotto questo è reso automatico:

#LOOPBACK INTERFACE
auto lo
iface lo inet loopback

#eth0 INTERFACE
auto eth0
iface eth0 inet manual

#vbox0 INTERFACE
auto vbox0
iface vbox0 inet manual
tunctl_user lorenzo

#br0 INTERFACE
auto br0
iface br0 inet static
post-up chmod 666 /dev/net/tun
post-up tunctl -t vbox0 -u lorenzo
address 192.168.2.20
netmask 255.255.255.0
broadcast 192.168.2.255
gateway 192.168.2.10
bridge-ports eth0 vbox0
bridge-ageing 7200
bridge-fd 0


Grazie mille per il tuo grande aiuto nella configurazione delle reti per VirtualBox!!

Commento postato da Fede il 19/08/2008
@Lorenzo

grazie per il commento sarà sicuramente utile ad altri!! :)

thx

ciaociao

Commento postato da Cufre il 20/08/2008
Stesso problema segnalato da Betty Boop.
La Macchina Host funziona perfettamente: naviga pinga gli altri pc della rete (eccetto che pc GUest).
Il Pc Guest (Ubuntu Hardy) invece naviga (anche se non pinga nessuno...
PS: per adesso non ho toccato /etc/nework/interfaces

Commento postato da Cufre il 20/08/2008
Per Betty Boop e chiunque altro avesse il nostro problema:
Pare ce l'abbiano anche altri:

http://forum.ubuntu-it.org/index.­php?topic=200947.msg1349535#msg1349535

e­ sembra che riavviando i servizi di rete funzioni tutto

sudo /etc/init.d/networking restart

^__^

Commento postato da Fede il 21/08/2008
@Cufre

thx :)

ciaociao

Commenta Post

(opzionale)
(opzionale)


Codice antispam: Codice antispam