Vagrant无法挂载NFS共享文件夹,因为/etc/exports文件损坏。我该如何修复这个文件?

18

我最近尝试使用Vagrant安装虚拟机时,但运行 "vagrant up" 命令失败,并显示以下错误:

挂载NFS共享文件夹失败。这通常是由于虚拟机上未安装NFS客户端软件引起的。请确保正确安装了NFS客户端软件,并查阅有关您所使用的Linux发行版更多信息。

我的计算机上已经正确安装了NFS客户端软件,因此我寻找其他错误的原因,并找到了一篇博客文章,说明我的 /etc/exports 文件可能已被损坏。我恢复了 exportsbak 文件(其中仅包含注释示例),希望Vagrant可以重新配置该文件... 但它并没有,错误仍然存在。

我该如何强制Vagrant重新生成或修复该文件呢?谢谢。

4个回答

27

只需要删除该文件。

sudo rm -f /etc/exports

该文件将在vagrant up过程中重新创建。


1
谢谢!救了我的一天 :D。这个方法行得通,但我不得不手动重新创建文件sudo touch /etc/exports。 - Calin Blaga

0

我在Ubuntu上无法运行nfs,因为我使用了apt中的vagrant软件包(版本1.2.2)

我从这里安装了最新的Vagrant版本(1.5):http://www.vagrantup.com/downloads 然后nfs就可以工作了。


0

如果您的主机是Windows,则需要安装Vagrant插件Vagrant WinNFSd

$ vagrant plugin install vagrant-winnfsd

为什么我们需要这样做? - nbro
如果你按照提供的链接,你会找到以下内容:Vagrant WinNFSd 可以管理并增加Windows上的NFS支持。 - Yevgeniy Afanasyev

0
  1. 检查是否安装了NSF服务器,您可以执行以下操作...

dpkg -l | grep nfs-kernel-server

  1. 如果未安装,请安装所需的软件包...

apt-get install nfs-kernel-server apt-get install nfs-common service nfs-kernel-server restart sudo service portmap restart mkdir -p /var/exports

  1. 然后在Vagranfile中添加以下行,位于#shared folders下方...

    config.vm.synced_folder "www", "/var/www", :nfs => { :mount_options => "dmode=755","fmode=755"] }

当vagrant启动时,它会要求输入root密码,为了无需root密码运行它,您可以编辑/etc/sudoers并添加以下行...

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status

Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start

Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar

Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /bin/sed -r -e * d -ibak /etc/exports

%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY, VAGRANT_EXPORTS_REMOVE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接