Abilitare network shares in Virtualbox con Ubuntu Linux

Supponiamo di avere sotto Windows una macchina virtuale Virtualbox con installato Ubuntu Linux e di voler condividere una cartella di Windows (il sistema Host) con Ubuntu (il sistema Guest) utilizzando la funzione di condivisione cartelle di Virtualbox. Questo semplifica un po' la cosa in quanto non dovremmo preoccuparci di installare e configurare Samba sotto linux. La procedura qui descritta è per Ubuntu 10.04 (Lucid Lynx) ma dovrebbe funzionare allo stesso modo anche in versioni precedenti di Ubuntu.

Anzitutto è necessario creare la condivisione con Virtualbox, cosa piuttosto semplice. Dal menù di servizio di Virtualbox, selezionare Dispositivi -> Cartelle condivise:

Selezionando "Cartelle della macchina" cliccare sull'icona con il simbolo + per aggiungere una nuova cartella e selezionare in Windows la cartella che si desidera condividere ed assegnare un nome alla condivisione, in questo caso "shared"; spuntare la casella "Rendi permanente" per poter utilizzare la condivisione ad ogni avvio della macchina:

Fatto questo, è necessario controllare che sulla macchina guest (in Ubuntu) siano installate le Guest Additions, cosa che possiamo facilmente verificare con il comando lsmod | grep vb:

A questo punto è necessario creare sul sistema guest, la cartella in cui montare la condivisione, che chiamerò vbox-shared e posizionerò in /mnt:

sudo mkdir /mnt/vbox-shared

ed assegnare i permessi di scrittura e lettura anche al mio utente (che con ben poca fantasia si chiama andrea):

sudo chown -cR andrea:andrea /mnt/vbox-shared

In secondo luogo verifico che sia possibile montare la cartella condivisa che ricordo ho chiamato shared e che andrò a montare nella cartella /mnt/vbox-shared con il comando:

sudo mount -t vboxsf -o uid=1000,gid=1000 shared /mnt/vbox-shared

dove uid=1000 e gid=1000 sono lo user id ed il group id del mio utente andrea nella macchina guest (se non si è sicuri di quale sia il proprio id, basta un semplice comando id per visualizzarlo)

Se tutto è andato correttamente non dovreste vedere nessun messaggio di errore o avviso, come mostrato qui sopra. Arrivati a questo punto la cartella è montata, tuttavia risulta conveniente montare automaticamente tale cartella all'avvio del sistema guest; per fare questo è sufficiente aggiungere il comando mount di cui sopra a /etc/rc.local. Apriamo il suddetto file con un editori di testo:

gksudo gedit /etc/rc.local

Ed aggiungiamo in coda prima di exit 0 il comando utilizzato poc'anzi sudo mount -t vboxsf -o uid=1000,gid=1000 shared /mnt/vbox-shared:

Se tutto è stato fatto correttamente al prossimo riavvio della macchina, la cartella shared sarà automanticamente montata nella posizione specificata, piuttosto comodo per condividere i file tra i due sistemi.