Montare VirtualBox SharedFolder nella macchina virtuale Ubuntu all'avvio


15

Ho una macchina virtuale Ubuntu in esecuzione in VirtualBox.
Ho una cartella condivisa impostata come myshare ho una cartella creata nella mia directory home ( ~/jamesw) come host. l'utilizzo della linea sudo mount -t vboxsf myshare hostdalla mia directory home in Terminal monta correttamente l'unità, ma se riavvio non è montato di nuovo.

Questa è una macchina virtuale che utilizzo per eseguire un semplice server Web e vorrei che questa condivisione venisse montata ogni volta che avviavo. C'è un modo per fare questo? Soprattutto dato che richiede sudo?

Risposte:


22

Monta automaticamente le cartelle condivise utilizzando Virtual Box Manager

Da Virtual Box> 4.0 siamo in grado di montare automaticamente le cartelle condivise in una macchina virtuale. Per farlo per Ubuntu noi

  • è necessario installare Guest Additions nel SO guest
  • assicurarsi che gli utenti siano nel gruppo vboxsf
  • definire le cartelle condivise da Virtual Box Manager

Fare clic con il tasto destro sulla macchina virtuale e selezionare Impostazioni-> Cartelle condivise . Questo elencherà le condivisioni esistenti o ti permetterà di definire una nuova piega condivisa facendo clic sull'icona della cartella blu con il +segno verde in alto a destra:

inserisci qui la descrizione dell'immagine

Scegli la tua cartella dal menu a discesa Percorso cartella o scegli Definisci altro per un selettore di file che elenca il filesystem host. Scegli un nome per la condivisione (ad esempio myshares ). Spuntando Auto-mount questa cartella sarà sempre montata nella directory guest di Ubuntu /media/sf_myshares(il prefisso sf_verrà automaticamente aggiunto).


In alternativa, per definire le cartelle condivise in un SO guest in esecuzione, possiamo selezionare Dispositivi -> Cartelle condivise dal menu della finestra di Virtual Box Manager:

inserisci qui la descrizione dell'immagine

Spuntando Rendi permanenti queste cartelle condivise saranno disponibili anche al prossimo avvio e verranno montate quando viene selezionato anche Auto-mount .


Ciò renderà il sistema operativo guest da montare automaticamente una condivisione host e credo che l'OP voglia il contrario: montare una condivisione guest nel suo sistema operativo host . Se sbaglio, ho frainteso completamente la domanda e la mia risposta dovrebbe essere ignorata
MestreLion

1
@MestreLion: ti sbagli, scusa! Penso che il mio problema sia che non sono mai riuscito a trovare l'unità condivisa sulla macchina virtuale Ubuntu perché non avevo idea che stesse montando su / media. Se mi fossi reso conto che questa domanda non sarebbe nemmeno stata necessaria.
James P. Wright,

@James: Oh, mi dispiace allora. Montare una condivisione host in un SO guest è facile e hai diverse opzioni. Oltre alla risposta (eccellente, a proposito) fornita qui, sei consapevole che un SO guest può essere visto nella LAN proprio come una normale macchina? Cambia rete dalla configurazione predefinita NATa Bridged. Ora puoi "scambiare" le condivisioni da ospite a host (e viceversa) utilizzando Nautilus, Samba, ecc ...
MestreLion

@MestreLion: a dire il vero - condivido principalmente i miei file host (e guest) usando Samba sulla rete;)
Takkat

@Takkat: Anch'io! (e questo rende entrambe le risposte obsolete!: P)
MestreLion


2

Questa non è ancora una risposta completa, ma più come linee guida su 2 approcci hai:

1 - È possibile modificare /etc/fstabe aggiungere questa montatura lì. Dovresti tradurre il tuo parametro mount nella sintassi di fstab. Un'ipotesi selvaggia sarebbe qualcosa di simile /home/jamesw/host vboxsf myshare,umask=002,uid=<youruser>,gid=plugdev 0 0. Dovresti sudomodificare il tuo fstab, ma, una volta fatto, verrà montato automaticamente all'avvio. Dato che questo viene fatto prima ancora di accedere, è necessario un percorso assoluto per il punto di montaggio (quindi / home / jamesw / host), non è possibile utilizzare $HOMEo ~. Suggerimento: la cartella "host" non deve necessariamente esistere. Se è in fstab, mount lo creerà per te.

2 - È possibile utilizzare fusermountinvece di montare. La sintassi è simile (ma non identica, quindi è ancora necessario tradurre i parametri di montaggio). Fusermount richiede che il punto di montaggio si trovi da qualche parte all'interno di $ HOME, ma il vantaggio più grande è che non avresti bisogno sudo. E il supporto sarà disponibile in Nautilus (come se fosse un CD o una chiave USB). Dopo aver ottenuto i parametri giusti e averlo testato, puoi aggiungerlo al tuo ~/.profile, che viene eseguito ogni volta che accedi.

EDIT: suppongo che Virtualbox non necessiti che la macchina sia effettivamente in esecuzione per poter condividere le cartelle, O che sia attivo e in esecuzione prima di accedere


L'uso di / etc / fstab non funziona, vedi la risposta di Kenneth Gulbrandsøy.
Reinier Post,

0

Ubuntu 16.04 guest e cartelle condivise automounting accessibili dall'utente normale

Per montare automaticamente e accedere a tali cartelle come utente normale, sono necessari passaggi specifici.

  1. Non utilizzare le aggiunte ufficiali degli ospiti. Invece installa virtualbox-guest-dkms.

    sudo apt-get install -y virtualbox-guest-dkms
    sudo usermod -aG vboxsf $(whoami)
    sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir ~/vbshare
  2. Aggiungi alcune cartelle condivise con Auto-mounte Permanentselezionate.

  3. Riavvia vm.
  4. Controlla se hai delle cartelle vb montate:

    mount | grep vboxsf

  5. In tal caso, cambia la proprietà di ~/vbsharete stesso.

    sudo chown $(whoami):$(whoami) ~/vbshare

Aggiungi nuove cartelle condivise senza riavviare la VM

  1. Aggiungi cartella condivisa.
  2. Controlla se riesci a trovarlo elencato da questo comando:

    sudo VBoxControl sharedfolder list

  3. In tal caso, creare directory e montare

    mkdir ~/vbshare/newfolder
    sudo mount -t vboxsf newfolder ~/vbshare/newfolder
    
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.