目前,nfs 服务器已通过 Ubuntu 的几个版本顺利运行。
今天,我正在重建一个导出的磁盘,因此停止了 nfs 服务器,重建了磁盘,然后尝试重新启动 nfs 服务器。系统抱怨:
proc-fs-nfsd.mount is masked
我发现下面这个问题将问题标识为空服务定义,这是我在其他链接中找到的解释。但是在我的例子中,服务定义链接不是 /dev/null,所以我不知道我的情况发生了什么。(我不明白链接问题的其他答案如何适用)
下面您可以看到服务链接指向一个实际的文件。
systemctl start nfs-kernel-server
Failed to start nfs-kernel-server.service: Unit proc-fs-nfsd.mount is masked.
systemctl unmask proc-fs-nfsd.mount
systemctl start nfs-kernel-server
Failed to start nfs-kernel-server.service: Unit proc-fs-nfsd.mount is masked.
file /lib/systemd/system/proc-fs-nfsd.mount
/lib/systemd/system/proc-fs-nfsd.mount: ASCII text
最初作为答案提出但重启后失败
我见过的最常见的修复方法是删除链接
/dev/null
,但是file /lib/systemd/system/proc-fs-nfsd.mount /lib/systemd/system/proc-fs-nfsd.mount: ASCII text
然而我还是删除了这个文件,然后发现
lib/systemd/system/proc-fs-nfsd.mount
曾是链接到/dev/null
,所以我删除了它并重新加载了守护进程。sudo rm /lib/systemd/system/proc-fs-nfsd.mount sudo systemctl daemon-reload
然后重启nfs服务
sudo systemctl restart nfs-kernel-server.
这成功了。
服务器在重新启动之前运行良好。然后出现故障:
systemctl start nfs-kernel-server
Failed to start nfs-kernel-server.service: Unit proc-fs-nfsd.mount not found
当前有效的修复方法是
sudo cp /etc/exports ~
sudo apt purge nfs-kernel-server
sudo apt install nfs-kernel-server
sudo cp /etc/exports ~/exports.installed
sudo cp ~/exports /etc
sudo systemctl restart nfs-kernel server
systemctl status nfs-kernel-server
现在有一个可以正常工作的 NFS 服务器。
rm ~/exports ~/exports.installed
然而,我并不确信一切都好,所以我不会将此作为答案。
答案1
我不是 systemd 专家,但我认为这对我有用:
rm /run/systemd/system/proc-fs-nfsd.mount
systemctl daemon-reload
Systemd 抱怨 proc-fs-nfsd.mount 未被屏蔽,我认为这是因为有一个/run/systemd/system/proc-fs-nfsd.mount
文件指向/dev/null
并阻止 systemd 挂载/proc/fs/nfsd
。
我不知道该文件最终是如何创建的,也不知道 NFS 为何停止工作。我经历了很多尝试/错误,所以我不能肯定地说上面两行是有效的,但这是我目前的理解。
答案2
我在更换硬盘后遇到了类似的问题,我的/etc/exports变得不正确。
即使修复后/etc/exports,nfs没有启动。
问题是有很多链接指向/dev/null在/运行/systemd/系统/。
解决办法是
sudo rm /run/systemd/system/*.mount
然后重新启动 nfs。