我安装了该软件包nfs-utils
并通过以下方式进行了尝试:
# mount -t nfs server:/mnt /mnt
mount.nfs: rpc.statd is not running but is required for remote locking.
mount.nfs: Either use '-o nolock' to keep locks local, or start statd.
mount.nfs: an incorrect mount option was specified
好吧,可能需要通过 systemd 启动它,对吧?
# systemctl start nfs-lock.service
Job failed. See system journal and 'systemctl status' for details.
# journalctl
Jun 15 23:22:18 host rpc.statd[24339]: Version 1.2.6 starting
Jun 15 23:22:18 host rpc.statd[24339]: Opening /var/run/rpc.statd.pid failed:
Permission denied
[..]
Jun 15 23:22:18 host systemd[1]: nfs-lock.service: control process exited,
code=exited status=1
Jun 15 23:22:18 host systemd[1]: Unit nfs-lock.service entered failed state.
看起来像是 SELinux 相关的问题?
Jun 15 23:22:18 host setroubleshoot[3211]: analyze_avc()
avc=scontext=system_u:system_r:rpcd_t:s0
tcontext=unconfined_u:object_r:var_run_t:s0
access=['unlink'] tclass=file tpath=rpc.statd.pid
Jun 15 23:22:18 host setroubleshoot[3211]: SELinux is preventing
/usr/sbin/rpc.statd from unlink access on the file rpc.statd.pid.
Jun 15 23:22:18 host setroubleshoot[3211]: analyze_avc()
avc=scontext=system_u:system_r:rpcd_t:s0
tcontext=unconfined_u:object_r:var_run_t:s0
access=['write'] tclass=file tpath=rpc.statd.pid
Jun 15 23:22:18 host setroubleshoot[3211]: SELinux is preventing
/usr/sbin/rpc.statd from write access on the file rpc.statd.pid.
好的 - 现在的问题是:我必须更改什么 SELinux 配置或什么文件标签?
# systemctl status nfs-lock.service
nfs-lock.service - NFS file locking service.
Loaded: loaded (/usr/lib/systemd/system/nfs-lock.service; enabled)
Active: failed (Result: exit-code) since Fri, 15 Jun 2012 23:22:18 +0200;
13min ago
Process: 24338 ExecStart=/sbin/rpc.statd $STATDARG
(code=exited, status=1/FAILURE)
Process: 24334 ExecStartPre=/usr/lib/nfs-utils/scripts/nfs-lock.preconfig
(code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/nfs-lock.service
包裹是否丢失 - 或者我使用了错误的服务?
答案1
不确定这是否有帮助,因为我没有看到任何 SElinux 错误。
安装 Fedora 17 后,我升级到最新版本,但没有重新启动。由于几个 gnome 软件包的更新,我确实注销并重新登录。 (我没有注意到更新systemd
也包含了更新。)
为了挂载我的 NFS 共享,我安装nfs-utils
并尝试启动 rpcbind 服务:
sudo systemctl start rpcbind.service
我收到以下错误:
Failed to issue method call: Unit var-run.mount failed to load: No such file or directory. See system logs and 'systemctl status var-run.mount' for details.
var-run.mount 似乎最近已被删除,yum whatprovides
表明它systemd-44-8.fc17
仍然存在。
其他几个 NFS 服务也抛出了同样的错误。
就我而言,只需重新启动就有帮助。因此,您可能需要更新到最新的软件包并重新启动。 (如果有人知道如何让 systemd 重新读取其配置而无需重新启动,请告诉我。)
答案2
在 Fedora 17 中,您必须启动的服务名称是“nfslock”,因此:
systemctl start nfslock
安装 nfs-utils 后它已经启用
答案3
看起来nfs-lock.service
通过 systemd 启动并不是从命令行进行 NFS 3 挂载的真正先决条件。
刚刚执行
# mount -t nfs server:/mnt /mnt
nfs-utils
(安装包后)会导致出现“已加载rpc.statd
- 没有进一步的 SELinux”错误消息。并且挂载的 NFS 导出可以毫无问题地使用。
看起来内核只是按需启动 rpc.statd (和朋友),而不与 systemd 交互:
# pgrep -l rpc
3063 rpc.statd
22599 rpciod
24280 rpcbind