lunedì 22 ottobre 2007

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

Vi ricordate? Nella 3a parte del post concludevo dicendo che in fondo non è necessario fare il l'auto-mount della cartella condivisa alla partenza del guest Linux, e per la verità è anche meglio non farlo per almeno 3 motivi:

- occorre modificare dei file di configurazione all'interno di Linux da cui è sempre meglio star lontani;
- condividiamo ogni volta una cartella che magari ci serve solo ogni tanto;
- se vogliamo condividere un'altra cartella occorre riandare a cercare quel file, modificare le indicazioni della cartella condivisa al suo interno, salvare, riavviare la macchina virtuale per caricare la nuova cartella condivisa.

Troppo macchinoso?!? Assolutamente! Esiste però un modo non solo più semplice di caricare la cartella condivisa, ma anche più elastico: può essere caricata o scaricata al volo senza riavviare la macchina, e solo quando effettivamente ci occorre. Useremo uno script, un semplice file di testo con all'interno i comandi che abbiamo dato a mano nella shell della 2a parte del post.

Lo faremo usando come esempio una Ubuntu, e per lavorare nella massima comodità, faremo altre 3 cose:

- monteremo la cartella condivisa direttamente in una cartella sul desktop, così da averla sempre immediatamente a disposizione senza dover vagare nel filesystem di Linux alla sua ricerca;
- creeremo un ulteriore script per smontare sempre al volo la cartella (unmount);
- creeremo un paio di pulsanti sul pannello di Gnome (l'interfaccia grafica di Ubuntu), quello in alto con sopra i vari menù di Ubuntu per intenderci, da cui avviare direttamente gli script.

Iniziamo creando la cartella sul desktop in cui montare la cartella condivisa: cliccate direttamente sul desktop con il tasto destro e poi su Crea cartella con il tasto sinistro (fig. 23), datele un nome, per esempio Cartella condivisa host, e salvatela.

Fig. 23 - Mount script - creazione cartella condivisa
fig. 23

E' il turno dei 2 file che conterranno gli script di mount e unmount (smontaggio) della cartella condivisa. Aprite l'Editor di testo (si tratta di gedit, fig. 24),

Fig. 24 - Mount script - apertura editor testo
fig. 24


e al suo interno scrivete le 2 seguenti righe (fig. 25):

#!/bin/bash
sudo mount -t vboxsf 'Cartella condivisa host' /home/nomeutente/Desktop/'Cartella condivisa host'


Poi salvate il tutto nella vostra home con il nome mountcc (senza tanta fantasia, sta per Mount Cartella Condivisa); di default l'editor si dovrebbe essere aperto proprio al suo interno. Verificate comunque, alla voce Salva nella cartella di fig. 25 deve esserci il vostro nome utente.

Fig. 25 - Mount script - creazione script
fig. 25


Create un secondo documento nell'editor, inserite le 2 righe sotto,

#!/bin/bash
sudo umount 'Cartella condivisa host'


e salvate il documento sempre nella vosta home con il nome di umountcc. Vediamo un attimo cosa abbiamo scritto. La prima riga in comune ad entrambi gli script, #!/bin/bash, avvisa il sistema che:

- (#!) tutto quanto segue è un script di shell (o terminale che dir si voglia, ma d'ora in poi diremo shell);
- la shell da eseguire si trova nella directory /bin in un file che si chiama shell;

La seconda riga invece chiama con i privilegi di amministratore (sudo):

- il comando di mount (spiegato nella parte iniziale della 2a parte del post) nel primo script per montare la cartella condivisa,
-il comando di umount (senza la n) per smontare la cartella condivisa.

Il motivo per cui vi ho chiesto di salvarli nella vostra home è presto detto: quando aprite la finestra di terminale che fra poco useremo, questa di default si apre proprio sulla vostra home. In questo modo potrete semplicemente aprire il terminale e dare subito i comandi mountcc e umountcc senza doverli andare a cercare da qualche parte.

Bene, gli script sono creati, ma i file che li contengono, così come sono verrebbero letti come normali file di testo; dobbiamo renderli eseguibili. Aprite il terminale (guardate fig. 24, è l'ultima voce del menù) e date il comando ls (LiSt, analogo a dir per Windows) per vedere il contenuto della vostra home: eccoli lì i 2 file di script, mountcc e umountcc (fig. 26). Sempre nella finestra di terminale date i comandi:

chmod +x mountcc
chmod +x umountcc


Se tutto è andato bene, il comando vi restituirà ogni volta semplicemente il prompt mentre entrambi i file sono diventati eseguibili.

Fig. 26 - Mount script - assegnazione permessi esecuzione
fig. 26


Proviamo i due script. Dall'interno del terminale date il comando ./mountcc: dopo aver dato la password da amministratore, andate a dare un'occhiata in Cartella condivisa host sul desktop: et voilà! Il contenuto della cartella condivisa sull'host ora è visibile direttamente sul desktop di Linux. :-D

Vi piace? Sii?!? Ma non abbiamo mica finito qua. Sempre nel terminale, ora date il comando ./umountcc: la cartella condivisa così viene smontata, ed il suo contenuto scompare. ;-)

Bene, constatato che gli script funzionano, diamo un tocco di eleganza al tutto: niente lancio a mano degli script (cosa comunque sempre possibile nel modo che abbiamo visto), ma due bei pulsanti su cui cliccare per lanciarli.

Cliccate con il tasto destro sul pannello di Gnome (fig. 27) e poi con il sinistro sulla voce Aggiungi al pannello:

Fig. 27 - Mount script - aggiungi elemento sul pannello
fig. 27


Nella finestra che si è aperta, cliccate su Icona avvio applicazioni personalizzata (fig. 28).

Fig. 28 - Mount script - crea nuova icona sul pannello
fig. 28


Fate le opportune selezioni e riempite i vari campi in modo tale da ottenere un risultato analogo a fig. 29; in particolare nel campo Comando, tramite il tasto accanto Esplora, cercate e selezionate lo script mountcc. Cliccate anche su Nessuna icona se volete associare al vostro pulsante una icona, quando avete finito su OK per terminare.

Fig. 29 - Mount script - informazioni creazione nuova icona sul pannello
fig. 29


Ed eccola, sul vostro pannello (fig. 30) è comparsa l'icona del pulsante da cui lanciare la script di mount della cartella condivisa. Ripetete tutti i passaggi per creare un analogo pulsante di lancio dello script di unmount.

Fig. 30 - Mount script - icone avvio script disponibili sul pannello
fig. 30


A questo punto non vi resta che provarli. Aprite Cartella condivisa host sul desktop e cliccate sul pulsante di mount: si aprirà la finestra di terminale dove inserire la password da amministratore (le operazioni di mount e unmount sono operazioni riservate all'amministratore se non diversamente specificato). Inserita e dato invio, vedrete comparire in tempo reale il contenuto della cartella condivisa sull'host. Cliccando sull'altro pulsante e data la password se richiesta, vedrete scomparire davanti ai vostri occhi il contenuto della cartella condivisa.

Bene, e con questo credo abbiamo finito anche l'argomento cartelle condivise. In una mia riflessione "sotto la doccia" qualche post addietro, descrivevo la virtualizzazione come un ponte fra sistemi operativi, e più in generale fra idee, concezioni, modi di essere, in definitiva fra persone. Vedo le cartelle condivise come l'esemplificazione pratica e immediata in VirtualBox di questo ponte.

E allora, buona condivisione a tutti! :-D
@:\>