mercoledì 26 settembre 2007

VirtualBox: cartelle condivise in guest Windows (1a parte)

Le cartelle condivise sono un'altra interessante possibilità offerta dall'installazione delle VirtualBox Guest Additions. Permettono infatti di condividere in maniera estremamente semplice ed immediata cartelle fra host e guest senza dover usare la condivisione in rete: è VirtualBox stesso ad occuparsene tramite un apposito servizio che gira sul sistema host e un driver per il file system nel guest.

Non dovrete stare più a pasticciare con la configurazione della rete per fare la condivisione e potrete scegliere in qualunque momento, la cartella o le cartelle da condividere: potrete infatti farlo prima di far partire la macchina virtuale, ma anche a macchina virtuale già in funzione.

Ed in quest'ultimo caso avrete a disposizione un'ulteriore modalità di condivisione chiamata cartella condivisa transiente: funziona come una normale cartella condivisa ma la condivisione viene rimossa allo spegnimento della macchina virtuale.

Della condivisione cartelle ve ne avevo già parlato in occasione della creazione di una macchina virtuale, e avevo indicato all'interno dei commenti, come superare un problema quando si usano spazi nel Nome cartella di VirtualBox, guardate fig. 7. Ebbene, dalla versione 1.5 di VirtualBox tutto ciò è stato corretto: ora non solo potete dare un nome qualsiasi alla cartella condivisa in VirtualBox, ma anche tutta la procedura è stata molto semplificata, soprattutto in presenza di guest Windows.

Non vi è più bisogno infatti di dare comandi strani dal DOS, appena la cartella condivisa viene aggiunta, basta premere F5 nell'Esplora risorse del guest per aggiornare la visualizzazione, ed è subito disponibile. E nulla vieta, anche se la funzione si chiama “condivisione cartelle”, di condividere l'intero disco rigido dell'host come potete vedere in fig. 1 nel punto indicato dal mouse.

Fig. 1 - VirtualBox cartelle condivise
fig. 1

Ok, fatta questa lunga premessa, ora diamoci dentro. La macchina host è un sistema Windows, per questo primo esempio useremo Windows anche per il sistema guest (un guest Linux lo vedremo in post successivi). Vogliamo condividere la cartella sull'host che vedete in fig. 2 contenente Prevx CSI: l'idea è di fare una scansione antimalware sul sistema guest lanciando il software direttamente dall'host; vediamo se l'esperimento riesce.

Fig. 2 - VirtualBox cartelle condivise - Cartella da condividere
fig. 2


Cominciate con l'avviare VirtualBox e selezionate la macchina guest Windows (fig. 3). Notate la voce Rete tre voci sopra quella di Cartelle condivise: la rete è disabilitata, proprio per mostrarvi che la funzione condivisione cartelle è un'altra cosa dalla condivisione fatta tramite la rete e funziona a prescindere da questa. Cliccate sulla voce Cartelle condivise per passare alle impostazioni delle cartelle condivise.

Fig. 3 - VirtualBox cartelle condivise - Inizio impostazioni
fig. 3


Vi ritroverete nella schermata di aggiunta e modifica delle cartelle condivise (fig. 4), come potete notare non ve ne sono ancora. Iniziamo con il condividere la cartella di fig. 2 contenente Prevx CSI.

Fig. 4 - VirtualBox cartelle condivise - Impostazioni
fig. 4


Cliccate sul pulsante di aggiunta di una cartella da condividere indicato dalla posizione del mouse in fig. 5 (l'indicazione di cosa fa il pulsante compare anche nel box informativo sopra il pulsante OK).

Fig. 5 - VirtualBox cartelle condivise - Pulsante aggiunta cartella
fig. 5


Vi comparirà la piccola finestra di Aggiungi condivisione visibile in fig. 6, cliccate sul pulsante indicato dalla posizione del mouse per proseguire.

Fig. 6 - VirtualBox cartelle condivise - Percorso cartella da condividere
fig. 6


Tramite la finestra di navigazione che vi comparirà, trovate la cartella da condividere sull'host e selezionatela, in Percorso cartella comparirà il percorso completo della cartella scelta (fig. 7). In Nome cartella assegnatele il nome con cui volete vi appaia nel Guest. Di default VirtualBox le assegna lo stesso nome che ha sull'host; fatta la vostra scelta, cliccate su OK per proseguire. Ricordatevi che il problema con gli spazi nel nome è stato risolto per cui va bene se ci sono.

Fig. 7 - VirtualBox cartelle condivise - Nome cartella condivisa in VirtualBox
fig. 7


Ed eccola la vostra cartella condivisa, compare finalmente nelle impostazioni della macchina virtuale (fig. 8). Cliccate su OK per accettare le modifiche alla macchina virtuale e proseguire.

Fig. 8 - VirtualBox cartelle condivise - Cartella condivisa aggiunta
fig. 8


Se tutto è andato bene, ora nei dettagli della macchina virtuale prescelta compare l'indicazione che questa ha una cartella condivisa (fig. 9). Assicuratevi che la macchina virtuale sia selezionata (altrimenti selezionatela) e fatela partire cliccando sul pulsante Avvia.

Fig. 9 - VirtualBox cartelle condivise - Fine creazione cartella condivisa
fig. 9


Nel guest avviate l'Esplora risorse e date un'occhiata alla rete (fig. 10): eccola lì la nostra cartella condivisa, ha lo stesso nome che le abbiamo assegnato in Nome cartella di fig. 7; all'interno è visibile Prevx CSI.

Fig. 10 - VirtualBox cartelle condivise - Cartella condivisa visibile dal guest
fig. 10


Provate a fare doppio click sul file (fig. 11). Il file che, vale la pena ricordarlo, si trova sull'host, è andato in esecuzione come se fosse sul guest: non male, eh?!? ;-)
Esperimento pienamente riuscito! :-D

Fig. 11 - VirtualBox cartelle condivise - Esecuzione programma contenuto sull'host
fig. 11


Pensate che sia finita qua? Certo che no! Nel prossimo post sull'argomento vedremo come sia possibile aggiungere cartelle condivise anche a macchina virtuale accesa ed a non limitarci a condividere una singola cartella dell'host: condivideremo infatti tutto l'hard disk! Al prossimo post allora. :-)

@:\>

8 commenti:

  1. Nell'uso di un disco virtuale dinamico in VirtualBox si pone il problema di compattare il disco dinamico, affinchè la dimensione del file immagine sul PC host sia minimizzata. VirtualBox prevede allo scopo un apposito comando, che non si può impartire dall'interfaccia grafica ma solamente da linea di comando; il comando è VBoxManage modifyvdi.
    Ecco l'hlep relativo:
    8.13. VBoxManage modifyvdi
    The modifyvdi command can be used to compact disk images, i.e. remove blocks that only contains zeroes. For this operation to be effective, it is required to zero out free space in the guest system using a suitable software tool.


    Qual'è la sintassi esatta del comando? da qulche parte ho letto:
    VBoxManage modifyvdi
    NOMEFILEVDI.vdi compact


    Il comando prevede che i settori non utilizzati siano preventivamente sovrascritti con degli zero prima di lanciare il comando, ed indica l'esistenza di software che eseguono tale compito; quali sono questi software?

    Al riguardo Microsoft VirtualPC (concorrente di VirtualBox, con dei punti a vantaggio, ad esempio il drag and drop tra host e guest, ed altri a sfavore, ad esempio non gestisce le porte USB ed i snapshot) è più semplice, in quanto fornisce uno strumento (precompact.exe) che scrive gli zeri nei settori inutilizzati.

    Si può usare precompact anche in VirtualBox?

    Credo che giornaledisistema dovrebbe dedicare un post all'argomento "Compattare un disco virtuale dinamico in VirtualBox"

    RispondiElimina
  2. Precompact.exe di Microsoft (fornito in VirtualPC) funziona anche in VirtualBox di Innotek.
    Ho lanciato l'eseguibile direttamente da una cartella condivisa residente sull'host (come spiegato in questo stesso post) e il programma si è concluso senza errori; poi ho lanciato il comando
    VBoxManage modifyvdi XP.vdi compact e al termine il file immagine si è ridotto da 3.7 a 3.5 GB.
    Mi resta il dubbio se precompact.exe riempia i settori inutilizzati con zeri o con il carettere - (meno); e ciò in quanto nella cartella di precompact.exe c'è anche un file filler.txt che contiene appunto una serie (2 MB!) di meno, e non di spazi. Forse precompact sostituisce i meno con spazi? oppure davvero riempie i setori inutilizzati con dei meno, e quindi è inutile ai fini di compattare il VDI?

    RispondiElimina
  3. Più in generale sull'argomento compattazione spazio disco virtuale: facendo un giro sul forum di VirtualBox (http://forums.virtualbox.org/), sempre ottima fonte di notizie, non ho trovato granché al riguardo (spero non sia perché non ho cercato bene).

    Sembra che in realtà alla innotek non abbiano preso in considerazione la cosa: il manuale di VirtualBox come ha segnalato Michele, lascia tutto nelle mani di "appositi tool software", sul forum ho trovato chi addirittura si è scritto da se (solo per file system EXT2 e EXT3 di Linux) un apposito programmino per mettere tutto a zero (http://forums.virtualbox.org/viewtopic.php?t=1198&highlight=compact).

    Magari nella prossima release di VirtualBox, chissà, ci protebbe essere spazio anche per qualcosa di questo tipo.

    @:\>

    RispondiElimina
  4. ciao senti io ho il problema della condivisione delle cartelle ho seguito il tuo tutorial (fatto molto bene) alla lettera eppure non riesco perchè io nelle risorse di rete non ho virtualbox Shared Folders dove tu trovi la cartella che in precedenza hai condiviso come mai? e come faccio a metterlo?
    grazie anticipatamente

    RispondiElimina
  5. Ciao Anonimo...

    nel post si inizia con "Le cartelle condivise sono un'altra interessante possibilità offerta dall'installazione delle VirtualBox Guest Additions"... Le hai installate? Altrimenti Dispositivi -> Installa Guest Addition

    PS: Ottimo post!!

    RispondiElimina
  6. grazie molto utile questa guida

    RispondiElimina

L'autore del commento si assume la totale responsabilità del suo contenuto. Commenti ritenuti offensivi o non attinenti potranno essere cancellati.