Fedora 17 で NFS 3 ボリュームをマウントするにはどうすればいいですか?

Fedora 17 で NFS 3 ボリュームをマウントするにはどうすればいいですか?

パッケージをインストールして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

systemd 経由で起動することは、nfs-lock.serviceコマンドラインから NFS 3 マウントを実行するための前提条件ではないようです。

ただ実行しているだけ

# mount -t nfs server:/mnt /mnt

(nfs-utilsパッケージがインストールされた後) は、SELinux エラー メッセージが表示されずに loaded rpc.statd- になります。マウントされた NFS エクスポートは問題なく使用できます。

カーネルは systemd と対話せずに、要求に応じて rpc.statd (および関連プログラム) を起動するだけのようです。

# pgrep -l rpc
3063 rpc.statd
22599 rpciod
24280 rpcbind

関連情報