Home Vagrant Vagrant Up Hangs When Mounting NFS Shared Folders – How To Fix?

Vagrant Up Hangs When Mounting NFS Shared Folders – How To Fix?

By sk
Published: Updated: 5K views

Today I created a new Virtual machine with Arch Linux vagrant box. I started the Arch Linux virtual machine with vagrant up command, but it didn't start. Every time I try to start the VM, the vagrant up hangs when mounting NFS shared folders. After waiting more than 5 minutes, the command ended with the following error:

 [...]
 ==> default: Mounting NFS shared folders…
 ==> default: Pruning invalid NFS exports. Administrator privileges will be required…
 [sudo] password for sk: 
 ==> default: Removing domain…
 The following SSH command responded with a non-zero exit status.
 Vagrant assumes that this means the command failed!
 mount -o vers=3,udp 192.168.122.1:/home/sk/vagrant/archlinux /vagrant
 Stdout from the command:
 Stderr from the command:
 mount.nfs: Connection refused
Vagrant up hangs when mounting NFS shared folders
Vagrant up hangs when mounting NFS shared folders

As you can see, the vagrant up command fails on mounting NFS shared folders. My KVM host is latest Fedora 34 edition. I never had this issue with Ubuntu virtual machines. This error occurred only when I start Arch Linux virtual machine. If your Vagrant machine stuck while "Mounting NFS shared folders", you can use the workaround given below.

Vagrant up hangs when mounting NFS shared folders in Linux

This issue is probably and more likely caused by your firewall. In my case, it is indeed the firewall issue. I had to allow the following services through the firewall to fix mounting NFS shared folders issue in Vagrant:

  • nfs,
  • mountd,
  • rpc-bind.

Also, I opened the port 2049 for both tcp and udp.

1. Run the following commands one by one to allow the aforementioned services and the port 2049.

$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs3
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=mountd
$ sudo firewall-cmd --permanent --zone=libvirt --add-service=rpc-bind
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/tcp
$ sudo firewall-cmd --permanent --zone=libvirt --add-port=2049/udp

2. Reload the firewall rules to take effect the changes:

$ sudo firewall-cmd --reload

3. View the list of allowed services using command:

$ firewall-cmd --list-all

Sample output:

FedoraWorkstation (active)
  target: default
  icmp-block-inversion: no
  interfaces: wlp9s0
  sources: 
  services: dhcpv6-client mdns mountd nfs rpc-bind samba-client ssh
  ports: 1025-65535/udp 1025-65535/tcp
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

This enables NFS between your host and the Vagrant virtual machines and allows the libvirt hosted Vagrant VMs to use nfs mounts from the host system.

4. After allowing the nfs service and relevant port, I tried to start the Vagrant VM. This time I ran into another issue:

[...]
mount.nfs: requested NFS version or transport protocol is not supported

5. To fix this error, edit /etc/nfs.conf file in the host system:

$ sudo vi /etc/nfs.conf

6. Uncomment the following two lines:

[nfsd]
udp=y

Save the file and close it.

7. Restart the nfs service:

$ sudo systemctl restart nfs-server.service

8. Finally, reboot the host system:

$ sudo reboot

That's it. Now you should be able to start the Vagrant machine without any issues.

We have posted a complete guide about Vagrant usage. Check following link to learn how to use Vagrant.

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More