HomeServiceContact
JavaScript
min read
November 8, 2019
September 28, 2017

Vagrant NFS Sync Problem on macOS High Sierra

Vagrant NFS Sync Problem on macOS High Sierra
Table of contents

Disclaimer: This is a temporary workaround which worked for me, not a permanent fix and may not work for everyone

Many of us have already tried to enjoy the flavor of new OS by Apple, macOS High Sierra. And doing that might have given you nightmares, if you were using vagrant based project.

If anyone is facing missing files or file changes not getting detected issue inside Vagrant, this might be because of compatibility issues with Apple’s latest APFS (apple file system) and Vagrant’s synced folder type: nfs.

I experienced this a couple of weeks ago, when I upgraded to beta version of masOS High Sierra. I was not able to see few modules (like views, taxonomy) and files present inside vagrant (guest) even though these were actually present in my mac machine (host). This is an already reported issue.

After struggling for next few days and nights, I found the quickest possible solution for this problem which worked for me.

Please follow the steps mentioned below:

  • Install the vagrant gatling rsync plugin.

vagrant plugin install vagrant-gatling-rsync	

         Add the following part only:


# Configure the window for gatling to coalesce writes.
 if Vagrant.has_plugin?("vagrant-gatling-rsync")
   config.gatling.latency = 2.5
   config.gatling.time_format = "%H:%M:%S"
 end

 # Automatically sync when machines with rsync folders come up.
 config.gatling.rsync_on_startup = true
 

Add this code in Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| function of your VagrantFile. You can also refer to VagrantFile line number: 108 & 114 given in https://github.com/navneet0693/high-sierra-vagrant-problem.

  • Important: Change vagrant_synced_folders type from `type: nfs` to `type: rsync` in box/config.yml. Sync folder is mostly your project repo, which shared b/w host (mac) and guest (vagrant box).

vagrant_synced_folders:
  # The first synced folder will be used for the default Drupal installation, if
  # build_makefile: is 'true'.
  - local_path: ..
    destination: /var/www/demo-drupal
    type: rsync
    create: true
  • Then you will have provision your Vagrant again.

vagrant reload --provision
Written by
Editor
No art workers.
We'd love to talk about your business objectives