proc-fs-nfsd.mount 已被屏蔽:无法取消屏蔽

proc-fs-nfsd.mount 已被屏蔽:无法取消屏蔽

目前,nfs 服务器已通过 Ubuntu 的几个版本顺利运行。

今天,我正在重建一个导出的磁盘,因此停止了 nfs 服务器,重建了磁盘,然后尝试重新启动 nfs 服务器。系统抱怨:

proc-fs-nfsd.mount is masked

我发现下面这个问题将问题标识为空服务定义,这是我在其他链接中找到的解释。但是在我的例子中,服务定义链接不是 /dev/null,所以我不知道我的情况发生了什么。(我不明白链接问题的其他答案如何适用)

systemctl,如何揭露

下面您可以看到服务链接指向一个实际的文件。

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。

相关内容