お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2018-06-18 14:27:51

Morimoto
新しいメンバ
登録日: 2018-06-18

ubuntu 18.04 になってから NFS root ができなくなった

今まで Ubuntu 14.04 を使っていましたが、先日から 18.04 を再インストールして使用しています。
このマシンで以前から NFS/TFTPBOOT/DHCP を使用しボードの組み込み開発に使用しています。

    1) ボードが TFTPBOOT 経由でカーネルをロードし起動する
    2) ボードが DHCP に IP アドレスと NFS rootfs の位置を問い合わせる
    3) rootfs を NFS 経由でマウントしブートする

それぞれのサーバー用設定は以前の ubuntu からずっと使用していて、
サーバー自体の設定が間違っている etc ということは起こってい無いと思います
Ubuntu 14.04 以前までは上記の手順で問題なく NFS root マウントができていましたが、
Ubuntu 18.04 にしてからマウントがタイムアウトしてしまうようになりました。
(16.04 でも問題なく使用できている事を確認済み)

18.04 のログには以下のようなものが出ていました
マウントができていた以前の Ubuntu でも同じものが出ていましたが 1 つだけでした

    > tail -n xxx /var/log/syslog
    ...
    xxx rpc.mountd[7779]: authenticated mount request from 192.168.10.100:952 for /xxx (/xxx)
    xxx rpc.mountd[7779]: authenticated mount request from 192.168.10.100:857 for /xxx (/xxx)
    xxx rpc.mountd[7779]: authenticated mount request from 192.168.10.100:936 for /xxx (/xxx)
    xxx rpc.mountd[7779]: authenticated mount request from 192.168.10.100:879 for /xxx (/xxx)
    ...

同ネット上の別のマシンからは普通にマウントできますし、
同じボードでも NFS 以外の方法でブート後、普通のフォルダとしてマウントしてみると問題なくマウントできるので、
NFS サーバー自体はちゃんと動いていると思います

なぜ 18.04 からマウントできなくなったのか分かる方いるでしょうか?

Ubuntu         : ubunut 18.04
NFS サーバー: nfs-kernel-server

-- /etc/exports ---
...
/xxx 192.168.10.0/255.255.255.0(rw,async,no_root_squash,no_subtree_check)
...

オフライン

 

#2 2018-06-18 16:44:37

array
メンバ
登録日: 2007-03-13

Re: ubuntu 18.04 になってから NFS root ができなくなった

外しているかもしれませんがnfs-commonがクライアントにインストールされていますか?

オフライン

 

#3 2018-06-18 18:48:01

Morimoto
新しいメンバ
登録日: 2018-06-18

Re: ubuntu 18.04 になってから NFS root ができなくなった

ありがとうございます

クライアント側は基本的に busybox ですが(マウントできれば)、NFS rootfs を使用する際は kernel 内臓の NFS クライアント機能を使っています。
(= Linux kernel の .config で言うところの CONFIG_NFS_FS)

オフライン

 

#4 2020-07-26 20:53:29

hiraku_wfs
新しいメンバ
登録日: 2020-07-26

Re: ubuntu 18.04 になってから NFS root ができなくなった

ちょうど同じ問題に当たって、解決する方法を見つけました。
クライアント側のLinux Kernelのnfsrootは(おそらく)デフォルトでNFSv2を使う一方で、サーバ側のUbuntu 18.04ではNFSv2がデフォルトでは無効化されてますので、マウントできません。

$ sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2

これを解決するには次の2つの方法があります。

A. サーバ側でv2を有効化する
B. クライアント側のnfsrootでv3を使う

Aの場合、/etc/default/nfs-kernel-serverに次の設定を追記してsystemctl restart nfs-kernel-serverすると有効化できました。
RPCNFSDOPTS="$RPCNFSDOPTS -V 2"

$ sudo cat /proc/fs/nfsd/versions
+2 +3 +4 +4.1 +4.2

参考: https://askubuntu.com/questions/1193536/how-to-enable-nfs-v2-on-ubuntu-18-04


Bの場合、nfsrootのoptionに v3 もしくは vers=3 を付けることでNFSv3でマウントできました。

オフライン

 

#5 本日 09:13:46

Morimoto
新しいメンバ
登録日: 2018-06-18

Re: ubuntu 18.04 になってから NFS root ができなくなった

ありがとうございます

最新のカーネルでは NFS を UDP を使ったマウントも禁止されてしまった事も有り、
サーバー側で TCP と NFSv3 を指定するほうが良いようです

当方都合により Ubuntu18.04 を試すのは少し先になりそうですが、
以下の設定で解決するようです。

-- /etc/dhcp/dhcpd.conf ---

option root-path "/path/to/rootfs,tcp,v3";

オフライン

 

Board footer

Powered by FluxBB