sabato 13 ottobre 2007

VirtualBox: cartelle condivise in guest Linux (3a parte)

Chiudevo la 2a parte di questo post dicendo che VirtualBox non può scavalcare il funzionamento interno di Linux. Il risultato è che lo spegnimento, od anche il semplice riavvio della macchina virtuale, vanifica tutto il lavoro fatto per rendere visibile la cartella condivisa nel guest. Bene, vorrà dire che andremo a fare noi a manella il lavoro che, spero già dalla prossima versione, VirtualBox potrebbe fare da se: la modifica dei file di configurazione di Linux per fare l'auto-mount della cartella condivisa. Avviate la vostra macchina virtuale, si parte!

Mentre la macchina virtuale parte, vi spiego un attimo il lato tecnico del problema; se invece non siete curiosi di sapere perché Linux ad ogni spegnimento o anche semplice riavvio si perde la cartella condivisa, allora saltate direttamente al paragrafo sopra fig. 21.

Linux all'avvio esegue tutta una serie di operazioni, compresa quella di mount. Tramite questa rende disponibili nel filesystem tutti i dispositivi che trova elencati nel file /etc/fstab, ad esempio il disco rigido oppure il lettore CD/DVD-ROM. Ed ecco il motivo per cui al riavvio si perde la cartella condivisa: essa semplicemente non viene montata perché non è indicata fra i dispositivi da montare nel file fstab; VirtualBox non effettua questa modifica, ed in realtà non servirebbe comunque.

Chi infatti rende disponibile sotto forma di dispositivo da montare la nostra cartella condivisa, è un driver delle VirtualBox Guest Additions (ecco perché vanno installate prima di fare questi giochetti con le cartelle condivise). Questo driver viene caricato molto dopo che Linux ha già fatto il mount dei dispositivi indicati in fstab, pertanto anche trovandovi l'indicazione di montare la cartella condivisa, in quel momento non è ancora disponibile e non verrebbe caricata.

Occorre dare il comando di mount da qualche altra parte, in un punto in cui il driver delle Guest Additions è già stato caricato e la cartella condivisa resa disponibile come dispositivo da montare. Un file letto da Linux sempre all'avvio ma dopo il driver delle Guest Additions è /etc/init.d/rc.local. Vediamo come modificarlo aggiungendovi il nostro sospirato comando di mount.

Aprite il vostro terminale e date il comando sudo gedit che vi permetterà di lanciare gedit, l'editor di gnome, con permessi di amministratore. In alternativa, sul vostro sistema date sudo nome_vostro_editor (fig. 21). Date la password e poi un invio per proseguire.

Fig. 21 - Automount cartelle condivise guest Linux - avvio gedit
fig. 21


Si aprirà gedit con i permessi da amministratore, potrete pertanto modificare qualunque cosa sul vostro sistema, fate la massima attenzione a modificare esattamente come indicato se non volete trovarvi con un Linux in panne. Cliccate sul pulsante apri e navigate le cartelle fino a /etc/init.d/, lì aprite il file rc.local (fig. 22). In fondo a quello che è uno script, aggiungete la riga:

mount -t vboxsf 'Cartella condivisa host' /mnt/'Cartella condivisa host'

Uscite salvando le modifiche.

Fig. 22 - Automount cartelle condivise guest Linux - modifica rc.local
fig. 22


Riavviate la macchina virtuale e date un'occhiata nella cartella condivisa! ;-D
Se sul vostro sistema non dovesse essere presente questo file, potete fare le stesse modifiche nel file/etc/rc.d/rc.local, non le ho provate ma dovrebbero funzionare bene.

E se invece non volessimo fare l'auto-mount della cartella condivisa ma montarla al volo di volta in volta senza stare a ricordarsi tutto il comando per intero? Qualcuno ha detto script?!? Avete detto bene, ma tutto questo, nella 4a parte del post.

@:\>