Erro do Vagrant: NFS está relatando que seu arquivo de exportação é inválido

95

Estou tentando configurar o ambiente de desenvolvimento do Discourse usando essas instruções . No entanto, quando executo o Vagrant, recebo o erro:

NFS está relatando que seu arquivo de exportação é inválido. O Vagrant faz essa verificação antes de fazer qualquer alteração no arquivo. Corrija os problemas abaixo e execute "vagrant reload":

Não é possível abrir / etc / exports

Verifiquei e não tenho uma pasta etc / exports, então criei uma e executei vagrant reload. Isso me pegou:

/Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/hosts/bsd/host.rb:146:in read': Is a directory - /etc/exports (Errno::EISDIR) from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/hosts/bsd/host.rb:146:innfs_prune 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/ plugins / synced_folders / nfs / synced_folder.rb: 68: em cleanup' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:24:inbloco na chamada 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:22:in each_key' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:22:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/prepare_nfs_valid_ids.rb:12:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:118:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/env_set.rb:19:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/provision.rb:52:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:13:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/set_name.rb:19:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_accessible.rb:18:incall' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:95:inbloquear em finalize_action 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' de / Applications / Vagrant / embedded / gems / gems / vagrant -1.4.1 / lib / vagrant / action / builder.rb: 116: em call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inbloco em execução 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb: 19: em busy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inexecução 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' de / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / lib / vagrant / action / warden.rb: 95: in block in finalize_action' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb : 34: emcall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:in block in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19:inbusy' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / runner.rb: 69: na run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:inchamada 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:95:inblock in finalize_action 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' from / Applications / Vagrant / embedded / gems / gems / vagrant- 1.4.1 / lib / vagrant / action / builder.rb: 116: em call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inbloco em execução 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19 :nobusy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inexecute 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' de / Applications / Vagrant / embedded / gems / gems / vagrant -1.4.1 / lib / vagrant / action / builtin / config_validate.rb: 25: na call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inchamada 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox. rb: 17: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:57:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' from / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / plugins / supplies / virtualbox / action / check_virtualbox.rb: 17: na call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inchamada 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action /builtin/config_validate.rb:25:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:95:in block in finalize_action' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:in block in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19:inbusy 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:incall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:incall 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:in call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:incall' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inblock in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19:inocupado 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:em run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/machine.rb:147:inação' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / plugins / comandos / reload / command.rb: 37: no block in execute' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:193:inbloco em with_target_vms 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb: 191: em each' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:191:inwith_target_vms 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/commands/reload/command.rb:36:in execute' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/cli.rb:38:inexecute' from / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / lib / vagrant / environment.rb: 484: in cli' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/bin/vagrant:127:in'from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in load' from /Applications/Vagrant/bin/../embedded/gems/bin/vagrant:23:in'

Estou em um Mac (OS X 10.6.8). Como faço para corrigir isso? Tentei pesquisar a mensagem de erro original e tudo que encontrei foram alguns repositórios contendo o código-fonte do Vagrant que a lança.

Caçador
fonte

Respostas:

-32

Tente usar as versões boas conhecidas do VirtualBox e do Vagrant anotadas no Discourse como seu primeiro aplicativo Rails :

Eu estava tendo o mesmo problema no Mac (OS X 10.9 (Mavericks)), mas reverter para essas versões pareceu resolver isso para mim.

Lockyer
fonte
Obrigado. Ainda estou terminando as próximas etapas de instalação, mas parece que funcionou.
Hunter
3
O downgrade não é necessário. Você só precisa correr sudo touch /etc/exports. Veja a resposta do colinhoernig . Além disso, acabei de atualizar minha instalação do vagrant para v1.4.3 e VirtualBox para v4.3.8 e isso pareceu resolver meu problema.
donut
5
esta é uma resposta enganosa. selecione a resposta do colinhoemig porque é muito mais útil!
enjalot de
3
A resposta não é construtiva e enganosa. Eu me pergunto como está marcado como correto. A resposta correta é @colinhoernig que já foi votado mais de 50 vezes. Para que o erro seja resolvido. Você precisa corrigir o arquivo / etc / exports. Em seguida, construa novamente.
Alexandros Spyropoulos
1
Quando você está construindo um projeto com dependências documentadas pela primeira vez, ajuda a usar as versões exatas que funcionam, só porque há uma solução alternativa para esse problema exato não significa que ele não encontraria outros não documentados incompatibilidades ...
Lockyer
331

Eu tinha algumas imagens / caixas anteriores instaladas na minha instalação do VirtualBox, então já havia algumas entradas inválidas /etc/exports. Então eu tive que limpar aquele arquivo e reiniciar minha caixa Vagrant.

NFS is reporting that your exports file is invalid. Vagrant does
this check before making any changes to the file. Please correct
the issues below and execute "vagrant reload":

Aqui está o que fiz na minha máquina host:

sudo rm /etc/exports
sudo touch /etc/exports

vagrant halt
vagrant up --provision
totas
fonte
9
Essa foi a mais aplicável, pois eu tinha duas caixas vagabundas montando a mesma pasta. Eles ficaram confusos!
wulftone
32
ou em vez de excluir tudo, apenas remova todas as linhas relacionadas àquelas VMs que não estão mais lá.
Alejandro Moreno
2
Tive esse problema depois de renomear o nome do diretório do projeto. Obrigado! :)
Radu,
4
Vale ressaltar que este comando deve ser executado na máquina host. Porque o vagrant box é realmente inicializado, eu pude fazer login nele, mas não consegui encontrar o arquivo / etc / exports. Porque está na máquina host.
chuwy de
4
Não tenho certeza se o --provisionsinalizador é necessário no último comando, já que normalmente o NFS é montado em upvez de no momento do provisionamento. Pode ser necessário em sua configuração, mas essas etapas funcionaram para mim sem esse sinalizador.
acobster
79

Eu tive esse problema com o Vagrant 1.4.1 e o VirtualBox 4.3.6 no OS X 10.9 Mavericks (13A603). Consegui consertá-lo com um comando simples para criar o arquivo / etc / exports ausente. Execute-o no OS X, não no convidado, conforme apontado nos comentários abaixo.

$ sudo touch /etc/exports

Consegui então executar com sucesso vagrant up. Encontrei outro erro em que o Guest Additions não estava atualizado, mas resolvi esse problema instalando o plugin vagrant-vbguest.

$ vagrant plugin install vagrant-vbguest

e então um rápido vagrant reloade eu estava pronto e funcionando!

colinhoernig
fonte
4
Dica muito boa, isso tem que ser feito no host Mac ... Não no convidado como eu tentei pela primeira vez
Ramzi
Obrigado @Ramzi, eu editei o original para esclarecer.
colinhoernig 09/01/2014
Tive que usar sudo rm -rf / etc / exports no linux, pois é uma pasta
timhc22
5
Eu também tive que editar meu arquivo / etc / exports porque tinha várias entradas que estavam confundindo o vagrant.
enjalot de
Tive que excluir o conteúdo do meu arquivo de exportação
David,
23

Para mim, esse erro começou a aparecer em um ambiente Vagrant funcional.

Eu havia renomeado o diretório de onde o Vagrant estava rodando. Para consertar, executei 'sudo vi / etc / exports' e fixei o nome do caminho para que apontasse para o meu diretório atual.

Kevin G.
fonte
9

A mesma coisa aconteceu comigo. Copiei meu Vagrantfile de outro projeto e esqueci de alterar as configurações de NFS. Isso fez com que a VM atual montasse a pasta pai da VM da qual copiei o Vagrantfile original. Então eu fiz isso:

vagrant halt
vagrant up

Ainda tenho o mesmo erro. Então eu rastreei meu arquivo de exportação localizado em / etc / exports que se parece com isto:

# VAGRANT-BEGIN: 501 64e10d4d-342e-4f55-b69a-97edda35742f
"/Users/[username]/vagrant" 192.168.11.12 -alldirs -mapall=501:20
# VAGRANT-END: 501 64e10d4d-342e-4f55-b69a-97edda35742f
# VAGRANT-BEGIN: 501 b3c6e7fe-95d4-48db-8876-c89d3e07af8d
"/Users/[username]/Sites/molitech-oms" 192.168.11.124 -alldirs -mapall=501:20
# VAGRANT-END: 501 b3c6e7fe-95d4-48db-8876-c89d3e07af8d
# VAGRANT-BEGIN: 501 3e2aabfd-ce63-441b-85a2-1b51e8beb863
"/Users/[username]/Sites/app" 192.168.11.125 -alldirs -mapall=501:20
# VAGRANT-END: 501 3e2aabfd-ce63-441b-85a2-1b51e8beb863
# VAGRANT-BEGIN: 501 ff92e353-9f6d-48ee-9d76-e29b33f1dd60
"/Users/[username]/Sites" 192.168.11.126 -alldirs -mapall=501:20
# VAGRANT-END: 501 ff92e353-9f6d-48ee-9d76-e29b33f1dd60

Os dois últimos caminhos são iguais. Então, excluí as últimas três linhas e executei:

vagrant halt && vagrant up

Agora tudo parece estar funcionando bem.

OSX 10.11.1 Vagrant 1.7.4

colefner
fonte
8

Eu não queria passar pelo aborrecimento de rebaixar. Isso é o que eu fiz (ainda demorou um pouco, mas menos incômodo do que rebaixar o IMHO):

  1. No VM Vagrantfile, para qualquer pasta sincronizada, desabilite o NFS

    config.vm.synced_folder ".", "/vagrant", nfs: false

  2. / Etc / exports removido

    sudo mv /etc/exports ~/Desktop/exports

  3. Reescrever / etc / exports

    vagrant up

  4. Reative o NFS se você quiser / precisar habilitado em sua VM

    config.vm.synced_folder ".", "/vagrant", nfs: true

dedo de índice quebrado
fonte
4

Basta executar os seguintes comandos:

sudo rm /etc/exports
sudo touch /etc/exports
vagrant reload

Você não usar vagrant up --provisionse você não tem certeza de que ele não vai sobrescrever o status atual do seu projeto.

MilanG
fonte
0

No Ubuntu 12 host / Ubuntu 12 guest, o seguinte funcionou para mim com o Discourse :

nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
config.vm.synced_folder ".", "/vagrant", id: "vagrant-root", type: "nfs", nfs_udp: "true", nfs_version: "4", :nfs => nfs_setting

Observação: também tive que adicionar um endereço IP de host determinado pelo Vagrant e um endereço IP de convidado determinado pelo Vagrant às exceções do firewall.

niccolox
fonte