Помилка бродяги: NFS повідомляє, що ваш файл експорту недійсний


95

Я намагаюся налаштувати середовище розробки Дискурсу, використовуючи ці інструкції . Однак, коли я запускаю Vagrant, я отримую помилку:

NFS повідомляє, що ваш файл експорту недійсний. Vagrant робить цю перевірку перед внесенням будь-яких змін у файл. Будь ласка, виправте наведені нижче проблеми та виконайте "бродяже перезавантаження":

Не вдається відкрити / etc / export

Я перевірив, і у мене немає папки etc / export, тому я створив її і побіг vagrant reload. Це мене зрозуміло:

/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 'з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/ plugins / synced_folders / nfs / synced_folder.rb: 68: у cleanup' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/synced_folder_cleanup.rb:24:inблоці у виклику '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:inдзвінок 'з /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' з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/handle_forwarded_port_collisions.rb:118:inвиклику 'від /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:inдзвінок 'з /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' з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/provision.rb:52:inвиклику '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' від /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:inдзвінку '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' з /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блокувати у finalize_action 'з /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: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inблоці під час запуску 'з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb: 19: у busy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inзапуску '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' from / Applications / Vagrant / embedded / gems / gems / vagrant-1.4.1 / lib / vagrant / action / warden.rb: 95: у block in finalize_action' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inдзвінку 'від /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb : 34: вcall' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:inдзвінок 'з /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' з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / runner.rb: 69: у run' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builtin/call.rb:51:inвиклику '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:95:inblock у 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: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inблоці під час запуску 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/util/busy.rb:19 : вbusy' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/runner.rb:69:inзапустити 'з /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' з / Applications / Vagrant / embedded / gems / gems / vagrant -1.4.1 / lib / vagrant / action / builtin / config_validate.rb: 25: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inвиклику 'from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox. rb: 17: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inвиклику '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 / provider / virtualbox / action / check_virtualbox.rb: 17: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/warden.rb:34:inвиклику 'from /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:inдзвінок 'від /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' від /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / lib / vagrant / action / warden.rb: 34: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/action/builder.rb:116:inдзвінку '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' від /Applications/Vagrant/embedded/gems/gems/vagrant-1.4. 1 / lib / vagrant / action / warden.rb: 34: у call' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:inдзвінку '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' з /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 '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/machine.rb:147:inaction' від /Applications/Vagrant/embedded/gems/gems/vagrant-1.4 .1 / plugins / commands / reload / command.rb: 37: у block in execute' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:193:inблоці with_target_vms 'з /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb: 191: у each' from /Applications/Vagrant/embedded/gems/gems/vagrant-1.4.1/lib/vagrant/plugin/v2/command.rb:191:inwith_target_vms 'від /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'

Я працюю на Mac (OS X 10.6.8). Як це виправити? Я спробував знайти оригінальне повідомлення про помилку, і все, що я знайшов, - це кілька сховищ, що містять вихідний код Vagrant, який видає його.

Відповіді:


-32

Спробуйте використати відомі хороші версії VirtualBox та Vagrant, зазначені в Discourse, як свій перший додаток Rails :

У мене була та сама проблема на Mac (OS X 10.9 (Mavericks)), але повернення до цих версій, здавалося, це виправило для мене.


Дякую, я все ще закінчую наступні кроки встановлення, але схоже, це спрацювало.
Мисливець

3
Пониження рейтингу не потрібно. Вам просто потрібно бігти sudo touch /etc/exports. Дивіться відповідь colinhoernig . Крім того, я щойно оновив свою установку бродяги до версії 1.4.3, а VirtualBox до версії 4.3.4, і це, здавалося, вирішило мою проблему.
пампушка

5
це оманлива відповідь. будь ласка, виберіть відповідь colinhoemig як набагато кориснішу!
enjalot

3
Відповідь не є конструктивною та оманливою. Цікаво, як це позначено як правильне. Правильна відповідь - відповідь @colinhoernig, за яку проголосували понад 50 разів. Щоб помилка була вирішена. Вам потрібно виправити файл / etc / export. Потім будуйте знову.
Александрос Спіропулос

1
Коли ви вперше створюєте проект із задокументованими залежностями, це допомагає використовувати точні версії, які, як відомо, працюють, лише тому, що для цієї однієї конкретної проблеми є обхід, це не означає, що він не зіткнеться з іншими документами несумісність ...
Локкер

331

У мене було встановлено кілька попередніх зображень / коробок у моїй програмі встановлення VirtualBox, тому в них вже було кілька невірних записів /etc/exports. Тому мені довелося очистити цей файл і перезапустити ящик 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":

Ось що я зробив на моїй хост-машині:

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

vagrant halt
vagrant up --provision

9
Це був найбільш застосовний, оскільки у мене було два бродяжні ящики, що кріпили одну папку. Вони заплутались!
wulftone

32
або замість того, щоб видалити всі, просто видаліть усі ті рядки, пов’язані з тими ВМ, яких там вже немає.
Алехандро Морено

2
У мене виникла ця проблема після перейменування назви проекту. Дякую! :)
Раду,

4
Варто згадати, що цю команду слід виконувати на хост-машині. Оскільки за допомогою бродячого вікна фактично завантажується, я міг увійти до нього, але не зміг знайти файл / etc / export. Тому що це на головній машині.
chuwy

4
Я не впевнений, що --provisionпрапор необхідний в останній команді, оскільки зазвичай NFS монтується, upа не під час підготовки. Можливо, це буде потрібно у вашому налаштуванні, але ці кроки працювали для мене без цього прапора.
акобстер

79

Я зіткнувся з цією проблемою з Vagrant 1.4.1 та VirtualBox 4.3.6 на OS X 10.9 Mavericks (13A603). Я зміг це виправити за допомогою простої команди для створення відсутнього файлу / etc / export. Запустіть це на OS X, а не як гість, як зазначено в коментарях нижче.

$ sudo touch /etc/exports

Тоді я зміг успішно бігати vagrant up. Я зіткнувся з черговою помилкою, коли Guest Additions не були оновленими, але вирішив цю проблему, встановивши плагін vagrant-vbguest.

$ vagrant plugin install vagrant-vbguest

а потім швидко, vagrant reloadі я працював!


4
Дуже хороша порада, це потрібно зробити на хості Mac ... Не на гості, як я вперше спробував
Рамзі

Дякую @Ramzi, я відредагував оригінал для уточнення.
colinhoernig

Мені довелося використовувати sudo rm -rf / etc / export на linux, оскільки це папка
timhc22

5
Мені також довелося відредагувати файл / etc / export, оскільки в ньому було кілька записів, що заплутало бродягу.
enjalot

Мені довелося видалити вміст мого файлу експорту
Девід,

23

Для мене ця помилка почала з'являтися в робочому середовищі Vagrant.

Я перейменував каталог, з якого працював Vagrant. Щоб це виправити, я запустив 'sudo vi / etc / export' і зафіксував ім'я шляху, щоб воно вказувало на мій поточний каталог.


9

Те саме сталося і зі мною. Я скопіював свій файл Vagrant з іншого проекту і забув змінити налаштування NFS. Це змусило поточну віртуальну машину змонтувати батьківську папку тієї віртуальної машини, з якої я скопіював вихідний файл Vagrant. Отже, я зробив це:

vagrant halt
vagrant up

Все одно отримана та сама помилка. Тож я відстежив свій файл експорту, розташований у / etc / export, який виглядає так:

# 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

Останні два шляхи однакові. Тож я видалив останні три рядки і запустив:

vagrant halt && vagrant up

Зараз, здається, все працює нормально.

OSX 10.11.1 Vagrant 1.7.4


8

Я не хотів проходити через клопоти про зниження рейтингу. Це те, що я зробив (все ще зайняв деякий час, але менше клопоту, ніж зниження IMHO):

  1. У файлі Vagrant VM для будь-якої синхронізованої папки вимкнено NFS

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

  2. Видалено / etc / export

    sudo mv /etc/exports ~/Desktop/exports

  3. Перепишіть / etc / export

    vagrant up

  4. Повторно ввімкніть NFS, якщо ви хочете / потребуєте, щоб він був увімкнений на вашій віртуальній машині

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


4

Просто виконайте такі команди:

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

Як НЕ використовувати , vagrant up --provisionякщо ви не впевнені в тому, що вона не буде переписувати поточний стан вашого проекту.


0

На хості Ubuntu 12 / гостя Ubuntu 12 для мене працювало з 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

Примітка: Мені також довелося додати IP-адресу хоста, визначену Vagrant, та гостьову IP-адресу, визначену Vagrant, до винятків брандмауера.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.