Ok, iniziamo con il condividere una cartella a macchina virtuale spenta.
Avviate VirtualBox e selezionate la macchina virtuale relativa alla vostra distribuzione (fig. 1): notate dalla scheda dettagli come la Rete sia Disabilitata. Cliccate sulla voce Cartelle condivise per proseguire.
fig. 1
Si aprirà il pannello di gestione delle Cartelle condivise (fig. 2). Ancora non ve ne sono, ma la didascalia sopra il pulsante OK vi da già preziose informazioni su come condividere le cartelle una volta all'interno del guest.
fig. 2
Cliccate sul pulsante di aggiunta di una nuova cartella condivisa, nella posizione indicata dal mouse (fig. 3):
fig. 3
Si aprirà la finestra di Aggiungi condivisione (fig. 4), cliccate sul pulsante per trovare la cartella sul disco rigido dell'host, nel punto indicato dal mouse.
fig. 4
Navigate il vostro disco rigido fino a trovare la cartella che volete condividere (fig. 5) e cliccateci sopra per selezionarla; se la cartella non esiste, potete crearne una al volo usando il pulsante Crea nuova cartella. Quando avete selezionato la cartella che vi interessa, cliccate su OK per confermare.
fig. 5
Vi ritrovate nella finestra precedente di Aggiungi condivisione che si è trasformata in Modifica condivisione. La voce Nome cartella fa riferimento al nome con cui la cartella condivisa sarà visibile nel guest e ne viene preimpostato uno, se non vi piace modificatelo a vostro piacimento e poi cliccate su OK per confermare la scelta.
fig. 6
Eccola (fig. 7), la cartella sull'host che avete deciso di condividere con il guest, è nell'elenco delle Cartelle condivise; con lo stesso procedimento aggiungetene quante volete e cliccate su OK per terminare.
fig. 7
Ok, la condivisione è pronta e VirtualBox vi informa del numero di cartelle dell'host che la macchina virtuale condivide (fig. 8).
fig. 8
Ora avviate la macchina virtuale.
Avviate una sessione di terminale all'interno della vostra distribuzione Linux (fig. 9): come preannunciato, ho usato una distribuzione Ubuntu, ma i comandi sono identici qualunque sia la vostra distribuzione.
fig. 9
Se non vi trovate a vostro agio con i comandi della shell (terminale) e volete capire graficamente cosa sta per accadere, allora aprite il vostro file manager. Puntatelo sulla radice / del filesystem, pressappoco il C:\ di Windows, e da lì entrate nella cartella mnt. Questa è la cartella che per convenzione Linux utilizza per montare e rendere disponibili al sistema nuovi dispositivi di memoria quali: Hard disk, memorie USB, floppy... ed è qui che noi monteremo la cartella condivisa dell'host.
Ok, tornate nella shell e date il comando seguente apici singoli compresi (fig. 10):
sudo mkdir /mnt/'Cartella condivisa host'
Dopo aver dato la password il comando verrà eseguito.
fig. 10
Ma cosa ha eseguito il comando?
- sudo: esegui i successivi comandi con le autorizzazioni da amministratore;
- mkdir: MaKe DIRectory, crea una directory;
- /mnt/'Cartella condivisa host': creala all'interno della directory mnt e chiamala Cartella condivisa host.
Gli apici singoli servono a far capire alla shell che gli spazi fanno parte del nome della cartella. Ora guardate nel vostro file manager (fig. 11): è comparsa la nuova cartella che farà da punto di mount nel filesystem della vostra distribuzione Linux.
fig. 11
La directory (o cartella, in questi post indico la stessa cosa con nomenclatura Linux o Windows a seconda di dove siamo) è stata creata, ora possiamo montarvi la cartella condivisa. Nella shell date il comando (fig. 12):
sudo mount -t vboxsf 'Cartella condivisa host' /mnt/'Cartella condivisa host'
Se vi chiede la password inseritela e date invio per far eseguire il comando alla shell. Se tutto è andato bene, sembrerà non sia accaduto nulla, semplicemente la shell vi restituirà il prompt, ma...
fig. 12
... date un'occhiata cosa trovate all'interno della Cartella condivisa host: et voilàaa... Signori e Signore, Ladyes and Gentlemen... il contenuto della cartella host condivisa ora è visibile ed a vostra disposizione nel guest (fig. 13)! :-D
Ho lasciato visibile a destra anche una parte della shell da cui abbiamo dati i comandi. Se avete già seguito il post per condividere cartelle con guest Windows, riconoscerete il programma Prevx CSI che avevo usato in quel post per farvi vedere come dalla macchina guest, si poteva avviare un programma che fisicamente era in una cartella sull'host.
fig. 13
Ricordate infatti una cosa: i file in questo momento fisicamente sono ancora sull'host, è come se si fosse aperta una finestra che vi permette di osservarli dal guest: se volete portarli fisicamente sul guest, basterà che nel file manager li trasciniate in un'altra cartella del guest stesso, verrano copiati lì.
Beh, mi pare che per questa volta possa bastare, mi fermo qua. Non mancate però alla 2a parte del post, quando condivideremo l'intero disco rigido dell'host facendolo direttamente dalla macchina guest in funzione! ;-D
@:\>
Fatto, però se chiudo Ubuntu e lo faccio ripartire la condivisione non c'è più. Non dovrò dare il comando
RispondiEliminasudo mount -t vboxsf 'Cartella condivisa host' /mnt/'Cartella condivisa host' tutte le volte?
Inoltre, perchè la cartella creata con mkdir non è cancellabile? (il comando "Sposta nel cestino" è disattivato)
Ciao Michele! :-)
RispondiEliminaCome sempre attentissimo, ti sei accorto della magagna. Per ora si, la soluzione è "sudare" a manella ogni volta, nella 3a parte del post invece, descrivo come ottenere l'auto-mount della cartella condivisa.
La cartella non è cancellabile perché è stata creata mentre eri con i super poteri da amministratore e solo tornando amministratore la puoi cancellare.
Fai così. Apri il terminale e scrivi:
- sudo rmdir /mnt/'nome cartella condivisa'
e dai la password quando richiesta; la cartella viene cancellata. Mi appunto la cosa così magari la aggiungo nel prossimo post.
@:\>
Post davvero molto utile, mi è servito a risolvere i problemi di comprensione che avevo. Ho risolto.
RispondiEliminaUn sola piccola precisazione.
Il mio host è win XP, il mio guest è ubuntustudio 7.10.
Il primo comando di mount in linux è: sudo mount -t vboxsf condvm /mnt/condvm
ma così avevo solamente creato una condivisione, ma non era agganciata al mio host.
Ho rifatto il comando di mount:
sudo mount -t vboxsf 'condvm' /mnt/'condvm'
e così si è risolto.
Sbagliavo io, oppure la precisazione è inportante?
Grazie.
Ciao Alessandro; sono contento ti sia stato d'aiuto. :-)
RispondiEliminaAdesso però qualcosa non torna a me... il comando mount deve funzionare già nella forma:
sudo mount -t vboxsf condvm mnt/condvm
L'apice singolo serve solo in presenza di spazi nei nomi usati, ad esempio:
sudo mount -t vboxsf condvm /mnt/'cond vm'
Prova a verificare che non ti sia inavvertitamente sfuggito qualche spazio nei nomi usati.
@:\>
A me dice "Unkown filesystem type 'vboxsf'"...che devo fare?Che vuol dire?
RispondiEliminaI motivi in genere sono 2:
RispondiElimina- hai invertito l'ordine delle ultime 2 lettere scrivendo vboxfs al posto di vboxsf; quello corretto è vboxsf.
- non hai installato le VirtualBox Guest Additions, in tal caso occorre installarle prima di poter accedere alle cartelle condivise.
Verifica un pò e fammi sapere.
@:\>
Complimenti per questa semplice quanto utile guida :)
RispondiEliminaEra proprio quelloche cercavo.
Saluti
Ho seguito alla lettera la procedura ma cado all'ultimo comando sudo mount -t vboxsf 'Cartella condivisa host' /mnt/'Cartella condivisa host' e mi dice: /sbin/mount.vboxsf: mounting failed with the error: No such device, dove sbaglio? qualcuno mi può aiutare?
RispondiEliminaGrazie
Andrea
Salve ho seguito la procedura,la cartella da condividere e stata creata,ma non posso ne lvisuallizzare ne scrivere o meglio salvare dei file,ubunto mi dice che non ho i permessi,che devo fare?
RispondiEliminap.s. sono un neofita
@ Andrea:
RispondiEliminastesso problema... (/sbin/mount.vboxsf: mounting failed with the error: No such device). Per risolvere è sufficiente:
1- installare i sorgenti del tuo kernel (uname -a per capire di che kernel si tratta, ad esempio 2.6.32-21-generic) quindi:
sudo apt-get install linux-headers-2.6.32-21-generic
2- installare il compilatore:
sudo apt-get install gcc
A questo punto:
sudo /etc/init.d/vboxadd setup
e l'installazione delle guest addictions dovrebbe terminare correttamente, includendo anche il supporto alle shared folders.
Per me ha funzionato!
Grazie per la dritta e complimenti per la guida
RispondiEliminaGrazie. :)
RispondiEliminabellissima questa guida mi è servita molto grazie mille
RispondiEliminaNe sono felice, grazie a te. :-D
RispondiEliminasudo mount -t vboxsf ns /media/vbox_ns
RispondiElimina/sbin/mount.vboxsf: mounting failed with the error: Invalid argument
come posso risolvere??
grazie mille
Nel guest hai installato le VirtualBox Guest Additions?
RispondiElimina