giovedì 2 ottobre 2008

Virtualizzare Windows con VirtualBox




Spesso si parla di creare una macchina virtuale sotto Linux, al fine di lanciare
un altro sistema operativo "virtualizzato", spesso questo sistema è rappresentato da Windows.
Il concetto è semplice, si crea una macchina virtuale, con un suo hard disk virtuale e su di esso si installa Windows come se fosse un'installazione normale, chiaramente, nella macchina
virtuale bisogna attivare il dispositivo CD-Rom, in modo da poter inserire il cd di Windows.
Una volta installato il sistema operativo di Microsoft, rimane il problema di come farlo
comunicare col sistema host di Linux, per sfogliare le directories condivise ad esempio.
Ma tra la teoria e la pratica, come al solito, c'è sempre qualche difficoltà, dato che, al fine di sfogliare la rete e vedere le cartelle condivise, bisogna configurare sia Linux sia le connessioni di rete del sistema virtualizzato.
Qui descrivo la mia esperienza con Virtualbox (http://www.virtualbox.org/) se qualcuno ha qualcosa da aggiungere o da correggere non esiti a scrivere i commenti....perchè questo è un tipico frutto di prova ed errore!

Prima di tutto bisogna creare un file shell tipo questo:

tunctl -t vbox0 -u nbs
chmod 666 /dev/net/tun
brctl addbr br0
brctl addif br0 eth0
ifconfig br0 192.168.1.100 netmask 255.255.255.0
brctl addif br0 vbox0
ifconfig vbox0 up
ifconfig

Oppure inserire questi comandi nel file /etc/network/interfaces

Se si decide di creare il file, lo nominiamo, ad esempio, vbox.sh.
In questo esempio ho usato l'indirizzamento 192.168.1.x, si noti che la mia scheda di rete di Linux è configurata con indirizzo IP 192.168.0.222 e gateway 192.168.0.1, quindi il bridge che si va a creare con questo script appartiene ad una sottorete diversa.
Cosa fa lo script:
tunctl - crea e gestisce un'interfaccia TUN/TAP persistente
Tratto da Wikipedia:
"Nelle reti Informatiche, TUN e TAP sono driver che permettono la creazione di periferiche di rete virtuali. Rispetto alle comuni periferiche (ad es. eth0) che sono controllate direttamente dalle schede di rete, i pacchetti spediti da o verso dispositivi TUN/TAP sono spediti da o verso programmi software. TUN è in grado di simulare una periferica di rete di tipo punto-punto e lavora con pacchetti di tipo IP mentre TAP è in grado di simulare un dispositivo Ethernet e logicamente utilizza i frame Ethernet."
chmod 666 /dev/net/tun - setta i diritti di lettura e scrittura per tutti gli utenti sul device virtuale
brctl addbr br0 - crea un bridge virtuale. Il bridge è un dispositivo di rete che riesce a smistare i pacchetti tra sottoreti anche differenti.
brctl addif br0 eth0 - rende l'interfaccia di rete eth0 una porta del bridge, insomma si pone in modo da poter smistare i pacchetti provenienti da eth0
ifconfig br0 192.168.1.100 netmask 255.255.255.0 - configura l'IP e la netmask del bridge
brctl addif br0 vbox0 - come per eth0 solo che lo fa per vbox0.

A questo punto lanciamo Virtualbox (nel quale abbiamo già creato la macchina virtuale con Windows installato), ed andiamo nei settings di rete.
Qui configuramo una scheda di rete (che comparirà sotto Windows), come Interfac Host, Mac adress assegnato da Virtualbox e nome interfaccia Vbox0.




Poi configuriamo una seconda scheda di rete e la mettiamo in modalità Nat.



Adesso mandiamo in running la macchina virtuale.

Stiamo su Windows.

Vedremo due schede di rete attive, quella col Nat, che avrà un indirizzo IP assegnato e che ci permette di navigare sul web e quella che dovrebbe permetterci di sfogliare le cartelle condivise di Linux.

Ma per farlo devo disattivare la Nat, non so perchè, ma solo così funziona.
Facciamo un passo indietro.
Sotto Linux devo aver installato il Samba, il samba-common ed il demone nmbd.
Dopo aver installato questi pacchetti devo abilitare l'utente con il comando:
sudo smbpasswd -a nomeutente_che usate_per_Linux
sudo smbpasswd -e nomeutente_che usate_per_Linux

Per guardare altre configurazioni di Samba, si può dare un'occhiata al file:
/usr/share/apps/samba/smb.conf

Poi prendete una cartella di Linux (es. /home/nomeutente/Documenti) e sceglite l'opzione "Condivisione", a questo punto da Windows virtualizzato, si dovrebbe poter sfogliare la rete e arrivare alla cartella Documenti, condivisa sotto Linux.
Buna virtualizzazione!

Links:
http://guide.debianizzati.org/index.php/Condivisione_risorse_con_Samba
http://samiux.wordpress.com/2007/07/11/bridge-network-interface-on-virtualbox/

Nessun commento: