Ошибка `` устаревший дескриптор файла '' с Vagrant на macOS Catalina

После обновления macOS до Catalina проекты Vagrant на внешнем SSD перестали работать. При попытке доступа к списку файлов в смонтированной папке появляется ошибка «Дескриптор устаревшего файла». При этом проекты, находящиеся на локальном диске, работают после добавления в путь монтирования / System / Volumes / Data /. Кто-нибудь может помочь?


person soalvi    schedule 11.10.2019    source источник


Ответы (2)


Я мог работать, выполняя:

1 - sudo rm /etc/exports

2 - В Vagrantfile измените конфигурацию на synced_folder, чтобы использовать абсолютный путь в новом шаблоне Каталины.

ex.: directory = "<project_path>" config.vm.synced_folder "/System/Volumes/Data#{directory}", "/vagrant", :nfs => true, :mount_options => ['actimeo=2']

3 - Выполнить vagrant destroy -f && vagrant up

И вам хорошо!

person Wallace Soares    schedule 11.10.2019

Добавление '/ System / Volumes / Data' помогает только проектам в локальной файловой системе. И эта ошибка исправлена ​​в последней версии Vagrant. Но проблема актуальна для проектов на внешних дисках.

Нашел не очень красивое, но рабочее решение:

  1. Удалите старые строки Vagrant из / etc / exports и добавьте в / etc / exports:

/ Тома / SSD / DEV / имя каталога / www -alldirs -mapall = 501: 20 192.168.33.10

  1. sudo nfsd перезапуск
  2. showmount -e

Вы должны увидеть правильный список монтирования: / Volumes / SSD / DEV / dirname / www 192.168.33.10

  1. Редактировать Vagrantfile

config.vm.synced_folder "/ Volumes / SSD / DEV / dirname / www", "/ var / www", тип: "nfs", nfs_export: false

По умолчанию vagrant смонтирует ваш каталог в папку / vagrant, но если вы хотите смонтировать в другом каталоге, добавьте в раздел подготовки: sudo mount -o vers = 3, udp 192.168.33.1:/Volumes/SSD/DEV/dirname/www / var / www

person soalvi    schedule 15.10.2019