Virtualbox: Compartilhe arquivos entre host e guest usando Pastas Compartilhadas

Esse é um recurso muito útil do Virtualbox que acaba sendo pouco utilizado por ser um pouco confuso. Baseando-se apenas nas instruções da interface você tem uma boa chance de não acertar na primeira tentativa e ficar frustrado mas se você parar um pouco para entender como funciona percebe que é simples.

O que vou explicar aqui permitirá que você compartilhe arquivos entre um Sistema Operacional (SO) host Windows e guests Windows e Linux

O processo se divide em dois passos:

  1. Criar o compartilhamento no SO host
  2. Acessar/montar esse compartilhamento no SO guest

O passo 1 precisa ser feito usando a interface do Virtualbox pois esse compartilhamento é “virtual”, só existindo dentro do ambiente do VB e só é visível para o guest ao qual foi associado.

Em “Caminho da Pasta” você aponta a pasta do host quer você quer que apareça no guest

Em “Nome da Pasta” você dá um nome qualquer a esse compartilhamento. Poderia ficar mais intuitivo se o VB chamasse de “nome do Compartilhamento”.

Marcar qualquer uma das três caixas seguintes é opcional, mas deixe as duas últimas marcadas até você ter certeza de que entende o funcionamento. Essa configuração precisa ser feita em cada guest e pode ser diferente em cada um deles.

Isso conclui o passo 1, mas ao executar o guest nem sempre esse compartilhamento aparece automagicamente, apesar de estar lá. Você pode precisar executar um procedimento dentro do guest. Seja qual for o SO do guest os “adicionais de convidado” precisam estar instalados.

No Guest Windows:

O compartilhamento aparece como uma unidade de rede no caminho \\vboxsrv\nome_do_compartilhamento. No exemplo dado na imagem, fica acessível em \\vboxsrv\shared_rw. E se você marcou “montar automaticamente” na configuração a unidade já aparecerá montada no explorer logo ao rodar o guest:

Note que “vboxsrv” é um servidor virtual criado pelo mecanismo de pastas compartilhadas do virtualbox.  Você não precisa fazer nada específico para que ele exista.

No Guest Linux:

Eu não testei extensivamente o recurso no Linux e o caráter mutante desse SO não me permite garantir nada, mas pelo menos no Ubuntu 10 funcionou na primeira tentativa abrindo um terminal no seu diretório home e executando os seguintes comandos:

O primeiro comando cria uma pasta chamada “compartilhado_host” no diretório home

O segundo comando “monta” o seu compartilhamento “shared_rw” no diretório “compartilhado_host”

A partir daí ao acessar o diretório virtual ~/compartilhado_host/ você está acessando o diretório que foi compartilhado como “shared_rw” no host.

Ainda não acabou. Não é tão fácil quanto no Windows

Isso é suficiente para você constatar que funciona, mas assim que você reiniciar o guest linux o mapeamento se perde. Se não quiser digitar o comando mount toda vez que reiniciar o guest você tem que editar o arquivo fstab. Na verdade aquela configuração “montar automaticamente” também funciona no guest linux, mas o ponto de montagem fica em /media/sf_[nome_do_compartilhamento] e só pode ser acessado como usuário root, que você geralmente não é (dá acesso negado).

Outra hora eu concluirei este texto explicando como se fazer com que seja permanente e acessível sem permissões de root.

Perceba que no Linux a coisa não funciona do mesmo jeito que no Windows. Depois de fazer no Windows você fica inclinado a imaginar que vai precisar ter o SAMBA instalado no guest para acessar o compartilhamento, mas não é assim. O virtualbox apresenta para o guest Linux o compartilhamento de uma forma diferente e mais apropriada  para ele.

17 comentários
  • Jefferson - 6.465 Comentários

    Para dar acesso ao ponto de montagem criado pelo virtualbox o meio mais fácil parece ser editar o arquivo /etc/group. No Ubuntu 10 funciona assim:

    cd /etc
    sudo nano group

    O arquivo vai abrir no editor “nano”. Se você rolar até o fim vai encontrar uma linha começando com “vboxsf”. Acrescente a essa linha “:nome_do_usuario_linux”.

    Por exemplo, como meu usário é “ryan”:

    Linha original: vboxsf:x:1001
    Linha modificada: vboxsf:x:1001:ryan

    Salve com CTRL-O e saia com CTRL-X. Reinicie o Ubuntu.

    Você agora pode acessar /media/sf_[nome_do_compartilhamento]

    • Jefferson - 6.465 Comentários

      Encontrei um jeito mais fácil de fazer isso. Basta dar o comando:

      sudo adduser $USER vboxsf

      e reiniciar. Esse comando edita o arquivo group por você, adicionando $USER ao grupo vboxsf

      A variável $USER contém o nome do usuário corrente.

  • Jefferson - 6.465 Comentários

    Para mudar o ponto de montagem, se você quiser que fique no seu diretório home em vez de em /media, você precisa dar o seguinte comando no terminal:

    sudo VBoxControl guestproperty set /VirtualBox/GuestAdd/SharedFolders/MountDir /home/ryan/

    Troque “ryan” pelo seu nome de usuário. Reinicie o linux. O ponto de montagem agora será /home/ryan/sf_[nome_do_compartilhamento]

  • Snow_man - 301 Comentários

    Boa noite
    Jeff, aqui não deu certo, fiz no Virtualbox, mas no windows 7 o caminho \\vboxsrv\ não aparece na minha rede; que será que tô fazendo errado???

    • Jefferson - 6.465 Comentários

      \\vboxsrv\ não aparece “na sua rede”. Ele aparece exclusivamente no guest.

      • Snow_man - 301 Comentários

        Mas sua imagem do Windows Explorer aí no artigo mostra esse caminho, ainda não consegui replicar isso aqui.

        • Jefferson - 6.465 Comentários

          A imagem é do sistema operacional guest (convidado). Não estou entendendo a sua dúvida.

        • Jefferson - 6.465 Comentários

          Você experimentou digitar \\vboxsrv\ na barra de endereços do Explorer ou está esperando que uma máquina chamada VBOXSRV apareça automaticamente sob “rede”?

          • Snow_man - 301 Comentários

            Não funciona, ainda hoje final de 2019 :S :S :dashhead1:

            • Jefferson - 6.465 Comentários

              Alguma coisa nas minhas instruções você não entendeu e está fazendo diferente. Acabo de retestar em uma instalação completamente nova do host Windows 8.1 e com um guest XP e um guest Windows 7. Em ambos funcionou na primeira tentativa.

              • Snow_man - 301 Comentários

                Não descarto de forma alguma minha inabilidade com Virtualbox; tem um roteiro de como você fez, pra retentar aqui? A iso que instalei é do Lubuntu.

                • Jefferson - 6.465 Comentários

                  Sua dúvida inicial era com o Windows 7 e agora envolve linux. Você já fez funcionar com host e guest Windows? Se seu problema é com o Virtualbox o “roteiro” é o que está escrito no post. Ontem eu não lembrava como fazer e segui o que está escrito. Mas se o problema é saber usar o Linux aí complica, porque o que eu sei mal dá para meu uso.

        • Jefferson - 6.465 Comentários

          Eu não me lembro se testei todas as possibilidades de conexão de rede entre o host e o guest, mas é possível que esse problema ocorra se você estiver usando “NAT”. Eu geralmente uso “placa em modo BRIDGE”. Se for esse o problema me avise porque meu tutorial estará incompleto. “NAT” é o default.

  • DanDaniel - 1 Comentário

    :dashhead1: nao consigo compartilhar o arquivo do host para o guest pois sempre pede um ponto de montagem. o que eu faço?

  • Dennis - 1 Comentário

    Valeu!!! Não tava conseguindo acessar aqui e seguindo o seu passo-a-passo me ajudou!

  • Ismael - 1 Comentário

    Boa tarde …
    Aqui funcionou corretamente
    no Editar compartilhamento do windows preencha da seguinte forma:
    caminho da pasta: [procure a sua pasta] C:\users\doc…\shared (exemplo)
    Nome da Pasta: sharedVM (exemplo)
    *montar automaticamente
    Ponto de montagem: /media/fs_ismael (exemplo)
    Pronto… no guest linux execute o comando ja mencionado anterior mente useradd vboxfs ismael
    Aqui funcionou perfeitamente

Deixe um comentário para Jefferson Cancelar resposta

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »