Erreur vagabonde: NFS signale que votre fichier d'exportation n'est pas valide

95

J'essaye de mettre en place l'environnement de développement Discourse en utilisant ces instructions . Cependant, lorsque je lance Vagrant, j'obtiens l'erreur:

NFS signale que votre fichier d'exportation n'est pas valide. Vagrant effectue cette vérification avant d'apporter des modifications au fichier. Veuillez corriger les problèmes ci-dessous et exécuter "vagrant reload":

Impossible d'ouvrir / etc / exports

J'ai vérifié et je n'ai pas de dossier etc / exports, alors j'en ai créé un et je l'ai exécuté vagrant reload. Cela m'a fait:

/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: dans le cleanup' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:24:inbloc dans l'appel 'from /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:inappel 'depuis /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' depuis /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:118:inappel '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/plugins/providers/virtualbox/action/prepare_forwarded_port_collision_params.rb:30:inappel 'depuis /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' depuis /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/provision.rb:52:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:13:inappel '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/plugins/providers/virtualbox/action/set_name.rb:19:incall' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_accessible.rb:18:inappel' depuis /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:inblock in 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: dans le call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inbloc en cours d'exécution 'à partir de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb: 19: en busy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:incours d'exécution 'depuis /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel' depuis / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / lib / vagrant / action / warden.rb: 95: en block in finalize_action' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb : 34: danscall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:inappelez 'depuis /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' depuis /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / runner.rb: 69: en run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:95:inbloc in 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: dans le call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inbloc en cours d'exécution 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19 :dansbusy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inlancez 'depuis /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' depuis / Applications / Vagrant / embedded / gems / gems / vagrant -1.4.1 / lib / vagrant / action / builtin / config_validate.rb: 25: dans l' call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox. rb: 17: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:57: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel' de / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / plugins / fournisseurs / virtualbox / action / check_virtualbox.rb: 17: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inappel 'depuis /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:inappel 'depuis /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' depuis /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:inappel 'de /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:in run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:incall' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:inappel 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:en call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:inappel' depuis /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:inbusy 'de /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/machine.rb:147:inaction' de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / plugins / commands / reload / command.rb: 37: dans le block in execute' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:193:inbloc with_target_vms 'de /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb: 191: dans each' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:191:inwith_target_vms 'depuis /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:inexécutez' depuis / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / lib / vagrant / environment.rb: 484: dans 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'

Je suis sur un Mac (OS X 10.6.8). Comment puis-je réparer ça? J'ai essayé de rechercher le message d'erreur d'origine, et tout ce que j'ai trouvé était quelques référentiels contenant le code source de Vagrant qui le lance.

chasseur
la source

Réponses:

-32

Essayez d'utiliser les bonnes versions connues de VirtualBox et Vagrant notées dans Discourse comme votre application First Rails :

J'avais le même problème sur Mac (OS X 10.9 (Mavericks)), mais revenir à ces versions semblait le résoudre pour moi.

Lockyer
la source
Merci Je suis toujours en train de terminer les prochaines étapes d'installation, mais cela semble avoir fonctionné.
Hunter
3
Le déclassement n'est pas nécessaire. Vous avez juste besoin de courir sudo touch /etc/exports. Voir la réponse de colinhoernig . De plus, je viens de mettre à jour mon installation vagrant vers la v1.4.3 et VirtualBox vers la v4.3.8 et cela semblait résoudre mon problème.
donut
5
c'est une réponse trompeuse. Veuillez sélectionner la réponse de colinhoemig car c'est beaucoup plus utile!
enjalot
3
La réponse n'est pas constructive et trompeuse. Je me demande comment il est marqué comme correct. La bonne réponse est celle de @colinhoernig qui a été votée plus de 50 fois. Pour que l'erreur soit résolue. Vous devez corriger le fichier / etc / exports. Puis reconstruisez.
Alexandros Spyropoulos
1
Lorsque vous créez un projet avec des dépendances documentées pour la première fois, il est utile d'utiliser les versions exactes connues pour fonctionner, ce n'est pas parce qu'il y a un contournement pour ce problème précis qu'il ne se heurtera pas à d'autres non-documentés. incompatibilités ...
Lockyer
332

J'avais quelques images / boîtes précédentes installées dans mon installation VirtualBox, donc il y avait déjà quelques entrées invalides /etc/exports. J'ai donc dû nettoyer ce fichier et redémarrer ma boîte 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":

Voici ce que j'ai fait sur ma machine hôte:

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

vagrant halt
vagrant up --provision
totas
la source
9
C'était la plus applicable, car j'avais deux boîtes de vagabond montées sur le même dossier. Ils sont devenus confus!
wulftone
33
ou au lieu de tout supprimer, supprimez simplement toutes les lignes liées à ces VM qui ne sont plus là.
Alejandro Moreno
2
J'ai eu ce problème après avoir renommé le nom du répertoire du projet. Merci! :)
Radu
4
Il peut être intéressant de mentionner que cette commande doit être exécutée sur la machine hôte. Parce que par vagrant box est en fait démarré, je pourrais me connecter, mais je n'ai pas pu trouver le fichier / etc / exports. Parce que c'est sur la machine hôte.
chuwy
4
Je ne suis pas sûr que l' --provisionindicateur soit nécessaire dans la dernière commande, car généralement NFS est monté sur upplutôt qu'au moment de l'approvisionnement. Cela peut être nécessaire dans votre configuration, mais ces étapes ont fonctionné pour moi sans cet indicateur.
acobster
79

J'ai rencontré ce problème avec Vagrant 1.4.1 et VirtualBox 4.3.6 sur OS X 10.9 Mavericks (13A603). J'ai pu le réparer avec une simple commande pour créer le fichier manquant / etc / exports. Exécutez ceci sur OS X, pas sur invité, comme indiqué dans les commentaires ci-dessous.

$ sudo touch /etc/exports

J'ai alors pu courir avec succès vagrant up. J'ai rencontré une autre erreur où les ajouts d'invité n'étaient pas à jour, mais j'ai résolu ce problème en installant le plugin vagrant-vbguest.

$ vagrant plugin install vagrant-vbguest

et puis un rapide vagrant reloadet j'étais opérationnel!

colinhoernig
la source
4
Très bon conseil, cela doit être fait sur l'hôte Mac ... Pas sur l'invité comme je l'ai essayé pour la première fois
Ramzi
Merci @Ramzi, j'ai édité l'original pour clarifier.
colinhoernig
J'ai dû utiliser sudo rm -rf / etc / exports sur linux car il s'agit d'un dossier
timhc22
5
J'ai également dû modifier mon fichier / etc / exports car il contenait plusieurs entrées déroutantes.
enjalot
J'ai dû supprimer le contenu de mon fichier d'exportations
David
23

Pour moi, cette erreur a commencé à apparaître pour un environnement Vagrant de travail.

J'avais renommé le répertoire à partir duquel Vagrant courait. Pour résoudre ce problème, j'ai exécuté 'sudo vi / etc / exports' et j'ai corrigé le chemin d'accès pour qu'il pointe vers mon répertoire actuel.

Kevin G.
la source
9

La même chose m'est arrivée. J'ai copié mon Vagrantfile à partir d'un autre projet et j'ai oublié de modifier les paramètres NFS. Cela a amené la VM actuelle à monter le dossier parent de la VM à partir de laquelle j'ai copié le Vagrantfile d'origine. Alors j'ai fait ceci:

vagrant halt
vagrant up

J'ai toujours la même erreur. J'ai donc retrouvé mon fichier d'exportations situé dans / etc / exports qui ressemble à ceci:

# 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

Les deux derniers chemins sont les mêmes. J'ai donc supprimé les trois dernières lignes et j'ai couru:

vagrant halt && vagrant up

Maintenant, tout semble bien fonctionner.

OSX 10.11.1 Vagrant 1.7.4

colefner
la source
8

Je ne voulais pas subir les tracas de la rétrogradation. C'est ce que j'ai fait (a encore pris un certain temps, mais moins de tracas que de rétrograder à mon humble avis):

  1. Dans le VM Vagrantfile, pour tout dossier synchronisé, NFS désactivé

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

  2. Suppression de / etc / exports

    sudo mv /etc/exports ~/Desktop/exports

  3. Réécrire / etc / exports

    vagrant up

  4. Réactivez NFS si vous voulez / avez besoin de l'activer sur votre VM

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

doigt cassé
la source
4

Exécutez simplement les commandes suivantes:

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

Ne pas utiliser vagrant up --provisionsi vous n'êtes pas sûr que ce ne sera pas l' état actuel Ecraser de votre projet.

MilanG
la source
0

Sur l'hôte Ubuntu 12 / l'invité Ubuntu 12, ce qui suit a fonctionné pour moi avec 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

Remarque: J'ai également dû ajouter une adresse IP d'hôte déterminée par Vagrant et une adresse IP d'invité déterminée par Vagrant aux exceptions du pare-feu.

Niccolox
la source