Montar VirtualBox SharedFolder na VM do Ubuntu na inicialização


15

Eu tenho uma VM do Ubuntu em execução no VirtualBox.
Eu tenho uma pasta compartilhada configurada e myshare tenho uma pasta criada no meu diretório pessoal ( ~/jamesw) como host. usar a linha sudo mount -t vboxsf myshare hostdo meu diretório pessoal no Terminal monta a unidade corretamente, mas se eu reiniciar, ela não será montada novamente.

Esta é uma VM que eu uso para executar um servidor Web simples e gostaria que esse compartilhamento fosse montado toda vez que eu inicializasse. Há alguma maneira de fazer isso? Especialmente porque requer sudo?

Respostas:


22

Montar automaticamente pastas compartilhadas usando o Virtual Box Manager

No Virtual Box> 4.0, podemos montar automaticamente pastas compartilhadas em uma máquina virtual. Para fazer isso no Ubuntu, nós

  • precisa instalar Adições de Convidado no SO Convidado
  • verifique se os usuários estão em grupo vboxsf
  • definir pastas compartilhadas no Virtual Box Manager

Clique com o botão direito na sua máquina virtual e escolha Configurações-> Pastas Compartilhadas . Isso listará os compartilhamentos existentes ou permitirá definir um novo grupo compartilhado clicando no ícone azul da pasta com o +sinal verde no canto superior direito:

insira a descrição da imagem aqui

Escolha sua pasta no menu suspenso Caminho da pasta ou escolha Definir outra para um seletor de arquivos que lista o sistema de arquivos host. Escolha um nome para o compartilhamento (por exemplo, myshares ). Ao marcar Montagem automática, essa pasta sempre será montada no diretório de convidados do Ubuntu /media/sf_myshares(o prefixo sf_será adicionado automaticamente).


Como alternativa, para definir pastas compartilhadas em um sistema operacional convidado em execução, podemos selecionar Dispositivos -> Pastas Compartilhadas no menu da janela do Virtual Box Manager:

insira a descrição da imagem aqui

Ao marcar Tornar permanente, essas pastas compartilhadas também estarão disponíveis na próxima inicialização e serão montadas quando a montagem automática também estiver marcada.


Isso fará com que o sistema operacional convidado monte automaticamente um compartilhamento de host , e acredito que o OP deseja o oposto: montar um compartilhamento de convidado em seu sistema operacional host . Se eu estiver errado, que eu não entendi completamente a pergunta, e minha resposta deve ser ignorado
MestreLion

1
@MestreLion: Você está errado, desculpe! Acho que meu problema é que nunca consegui encontrar a unidade compartilhada na VM do Ubuntu porque não fazia ideia de que estava montando em / media. Se eu tivesse percebido que essa pergunta nem seria necessária.
James P. Wright

@ James: Oh, desculpe-me então. A montagem de um compartilhamento de host em um sistema operacional convidado é fácil e você tem várias opções. Além da (excelente, btw) resposta dada aqui, você está ciente de que um sistema operacional convidado pode ser visto na LAN como uma máquina comum? Apenas mude a rede do padrão NATpara Bridged. Você pode agora "troca" ações de convidado para hospedar (e vice-versa) usando Nautilus, Samba, etc ...
MestreLion

@MestreLion: para ser honesto - Eu, principalmente, compartilhar minha host (e convidados) arquivos usando Samba através da rede;)
Takkat

@Tkkat: Eu também! (e que faz com que ambas as nossas respostas obsoleto: P!)
MestreLion


2

Esta ainda não é uma resposta completa, mas mais como as orientações sobre 2 abordagens que você tem:

1 - Você pode editar /etc/fstabe adicionar esta montagem lá. Você precisaria converter seu parâmetro de montagem na sintaxe fstab. Um palpite seria algo parecido /home/jamesw/host vboxsf myshare,umask=002,uid=<youruser>,gid=plugdev 0 0. Você precisaria sudoeditar seu fstab, mas, uma vez feito, ele será montado automaticamente na inicialização. Como isso é feito antes mesmo de você efetuar login, você precisa de um caminho absoluto para o ponto de montagem (daí / home / jamesw / host), você não pode usar $HOMEor ~. Dica: a pasta "host" não precisa existir. Se estiver no fstab, o mount o criará para você.

2 - Você pode usar em fusermountvez de montar. A sintaxe é semelhante (mas não idêntica, portanto, você ainda precisa converter os parâmetros de montagem). O Fusermount exige que seu ponto de montagem esteja em algum lugar dentro do seu $ HOME, mas a maior vantagem é que você não precisaria sudo. E a montagem estará disponível no Nautilus (como se fosse um CD ou chave USB). Depois de obter os parâmetros corretos e testá-lo, você pode adicioná-lo ao seu ~/.profile, que é executado sempre que você faz login.

EDIT: Estou assumindo que o Virtualbox não precisa que a máquina esteja realmente em execução para compartilhar pastas, OU que está em funcionamento antes de você fazer login


Usar o / etc / fstab não funciona, veja a resposta de Kenneth Gulbrandsøy.
Reinier pós

0

Convidado do Ubuntu 16.04 e compartilhamento de pastas automáticas acessíveis pelo usuário normal

Para montar e acessar automaticamente essas pastas como usuário normal, são necessárias etapas específicas.

  1. Não use adições oficiais de convidados. Em vez disso, instale 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. Adicione algumas pastas compartilhadas Auto-mounte Permanentmarque.

  3. Reinicie a vm.
  4. Verifique se você tem alguma pasta vb montada:

    mount | grep vboxsf

  5. Nesse caso, altere a propriedade ~/vbsharepara si mesmo.

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

Adicione novas pastas compartilhadas sem reiniciar a VM

  1. Adicionar pasta compartilhada.
  2. Verifique se você pode encontrá-lo listado por este comando:

    sudo VBoxControl sharedfolder list

  3. Nesse caso, crie o diretório e monte

    mkdir ~/vbshare/newfolder
    sudo mount -t vboxsf newfolder ~/vbshare/newfolder
    
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.