315100 Letture

VirtualBox: condividere file e cartelle tra sistemi host e macchine virtuali

VirtualBox è un software che ormai non ha bisogno di presentazioni: inizialmente sviluppato dalla tedesca InnoTek, successivamente acquistata (febbraio 2008) da Sun Microsystems, a sua volta entrata nel portafoglio di Oracle (gennaio 2010), si tratta di una soluzione per la virtualizzazione di sistemi operativi ed applicazioni. Sono tanti gli articoli che, nel corso del tempo, abbiamo dedicato a VirtualBox (vi invitiamo a far riferimento a queste pagine) illustrandone le principali caratteristiche oltre ad alcuni aspetti meno conosciuti.

In quest'articolo desideriamo soffermarci in modo più approfondito sulle funzionalità di VirtualBox volte all'accesso di risorse disponibili all'interno della rete locale ed alla condivisione dei dati.

Ciascuna macchina virtuale VirtualBox può essere equipaggiata con un numero massimo di quattro schede di rete, ciascuna delle quali impostata per l'utilizzo di una differente configurazione. Una volta selezionata la macchina virtuale sulla quale operare dalla schermata principale di VirtualBox, cliccando sul pulsante Impostazioni della barra degli strumenti quindi su Rete, è possibile accedere alla finestra di configurazione delle impostazioni di rete.

Per impostazione predefinita, ciascuna macchina virtuale VirtualBox utilizza un'unica scheda di rete regolata in modalità NAT (menù a tendina Connessa a).


Proprio l'impostazione Connessa a è la più importante perché permette di stabilire in che modo l'interfaccia di rete virtuale dovrà interagire con l'hardware "fisico" installato sul sistema host. Scegliendo NAT, VirtualBox assegnerà alla macchina virtuale un indirizzo IP privato, del tutto inaccessibile dalla rete locale così come dal sistema host. Supponendo che al sistema host sia attribuito l'IP 192.168.1.2 (il router "fisico" si supponga abbia l'indirizzo 192.168.1.1), in modalità NAT, VirtualBox attribuirà alla virtual machina un IP 10.0.2.x. E' possibile verificarlo aprendo, da una macchina guest Windows, il prompt dei comandi e digitando ipconfig /all:

La configurazione NAT permette di accedere senza problemi alla rete Internet dalla macchina virtuale e si rivela la più adatta se non si è interessati all'indirizzo IP che sarà utilizzato dal sistema guest virtualizzato con VirtualBox.

Ovviamente, non si tratta invece della configurazione migliore se fosse necessario inoltrare determinati pacchetti dati oppure se si debbono rendere visibili dalla rete locale o da utenti remoti certe risorse presenti nella macchina virtuale.

Scegliendo Scheda con bridge, invece, la macchina virtuale cercherà di ottenere un indirizzo IP dalla medesima sorgente che solitamente fornisce gli indirizzi ai vari sistemi client che compongono la rete locale. Il termine bridge fa semplicemente riferimento al fatto che la macchina virtuale VirtualBox risulterà connessa alla rete locale, così come se lo fosse "fisicamente".

Nel nostro caso, come si vede, la scheda di rete installata sul sistema host che viene utilizzata dalla macchina virtuale, è un'interfaccia wireless Broadcom (Nome). "Agli occhi" della virtual machine, però, tale dispositivo di rete apparirà con una normale scheda ethernet Intel. Ecco infatti il responso che si ottiene, questa volta, digitando il comando ipconfig /all:

Com'è possibile notare, la macchina virtuale questa volta ha ricevuto un indirizzo IP (192.168.1.51) dal server DHCP all'indirizzo 192.168.1.1 (il router).

D'ora in poi, la macchina virtuale in modalità scheda con bridge risulterà come se fosse una workstation fisicamente connessa alla rete locale alla quale è collegato anche il sistema host.
Digitando, nel nostro esempio, il comando ping 192.168.1.51 da un qualunque sistema collegato alla LAN, si dovrebbe immediatamente ottenere una serie di risposte dalla macchina virtuale VirtualBox.
La virtual machine è adesso potenzialmente in grado di accedere a qualunque risorsa condivisa presente sui sistemi connessi in rete locale e di accettare le richieste di connessione provenienti dagli altri terminali. Condividendo una risorsa (ad esempio, una cartella) dalla macchina virtuale, si potrà così comodamente accedervi da qualsiasi sistema sia collegato alla LAN previa impostazione delle opportune condivisioni e dei relativi diritti d'accesso.


La modalità Scheda solo host è molto simile alla Scheda con bridge eccezion fatta per l'uso di un dispositivo di rete dedicato, chiamato vboxnet0: tale device è responsabile dell'assegnazione degli IP. Di fatto, il sistema host diventa un router con IP 192.168.56.1 mentre alla macchina virtuale viene assegnato un IP 192.168.56.101. Si tratta di uno schema utile per allestire reti private all'interno delle quali le macchine debbono potersi vedere senza però necessariamente dover accedere a risorse esterne (ad esempio la rete Internet).

La scelta Rete interna è simile alle opzioni NAT + Scheda solo host. In questo caso, però, lo scambio di dati può avvenire esclusivamente all'interno della rete virtuale creata tra macchine virtuali, senza alcun dialogo con il sistema host. Ciò che si otterrà sarà una LAN privata appannaggio delle sole virtual machine, senza alcun accesso "al mondo esterno".


Per condividere file e cartelle in VirtualBox, è possibile utilizzare due soluzioni: la prima consiste nell'accesso diretto attraverso la rete virtuale mentre l'altra nell'impiego della funzionalità Cartelle condivise.

Noi, di solito, preferiamo il primo approccio perché è ciò che facciamo abitualmente tutti i giorni. La condivisione di file e cartelle su sistemi Windows e Linux è un'operazione che dovrebbe essere ormai conosciuta alla stragrande maggioranza degli utenti: perché non continuare ad utilizzarla anche in una macchina virtuale?
Come precedentemente chiarito, l'accesso alle risorse condivise attraverso la rete virtuale è possibile solo se l'interfaccia di rete di VirtualBox è regolata su Scheda con bridge oppure su Scheda solo host.

Di contro, la funzionalità Cartelle condivise consente di creare una cartella sul sistema host che verrà poi "montata" all'interno della macchina virtuale VirtualBox. Si tratta, questo, di un "espediente" che funziona con qualsiasi configurazione scelta per l'adattatore di rete virtuale e che sfrutta un server di condivisione allestito da VirtualBox per l'accesso delle macchine guest ai dati condivisi sull'host.


La caratteristica Cartelle condivise si regola semplicemente accedendo alle impostazione della macchina virtuale, da VirtualBox, quindi cliccando sulla voce omonima.

Nell'area di destra della finestra, si otterrà la lista delle risorse condivise sulla macchina host. Cliccando sul piccolo pulsante Aggiungi cartella condivisa, è possibile specificare la cartella che si desidera condividere con la macchina virtuale:

Dopo aver confermato le proprie scelte mediante la pressione del pulsante OK, a questo punto, nel caso in cui la macchina guest sia un sistema Windows, accedendo a Risorse di rete si dovrebbe trovare il server virtuale VBOXSVR ed al suo interno la risorsa appena condivisa.

Per assegnare una lettera di unità alla risorsa condivisa, si può invocare il comando \\net use lettera_unità \\vboxsvr\nome_condivisione.
Se si ha a che fare con una macchina virtuale Linux, si può ricorrere al comando mount -t vboxsf nome_condivisione percorso_in_cui_montare_la_risorsa.

Abilitando la casella Rendi permanente di VirtualBox, la "cartella virtuale" sarà inserita nella sezione Cartelle della macchina. Ciò significa che la directory dell'host posta in condivisione col sistema guest resterà automaticamente a disposizione di quest'ultimo ad ogni riavvio della macchina virtuale. Diversamente, nel caso in cui la casella Rendi permanente venisse lasciata non spuntata, la configurazione verrà persa ad ogni arresto o reboot del sistema virtuale.

VirtualBox: condividere file e cartelle tra sistemi host e macchine virtuali - IlSoftware.it