web-dev-qa-db-ja.com

nfs4を使用してマウントすると、そのようなデバイスエラーは発生しません

NFSを介してサーバーからクライアントにworkspaceフォルダーをマウントしようとしています。このために、サーバー上の/exportに以下を追加して、フォルダーを/etc/fstabにバインドします。

/home   /export none    bind

次に、サーバーの/etc/exportsに次の行を追加します。

/export     *(ro,sync,no_subtree_check,insecure,fsid=0) 
/export/workspace   *(rw,sync,no_subtree_check,insecure,nohide) 

Exportfsファイルをロードし、nfs-kernel-serverを再起動します。

# exportfs -vr
# service nfs-kernel-server restart

次に、クライアントに移動して、エクスポートできるフォルダーを確認します。

# showmount -e 192.168.145.131
Export list fo 192.168.145.131:
/export/workspace *
/export           *

しかし、フォルダをマウントしようとすると、次のエラーが発生します。

$ Sudo mount -t nfs4 192.168.145.131:/workspace nfs/ -v
mount.nfs4: timeout set for Sat Apr 19 19:16:51 2014
mount.nfs4: trying text-based options 'addr=192.168.145.131,clientaddr=192.168.145.128'
mount.nfs4: mount(2): No such device
mount.nfs4: No such device

/export/workspace/home/workspaceもマウントしようとしましたが、同じエラーが発生します。クライアントとサーバーの両方でmodprobeを使用してNFSモジュールをロードしようとしましたが、モジュールはクライアントとサーバーの両方にロードされています。

3
Shehbaz Jaffer

3日で問題解決!!

新しいカーネルバージョン(3.8)のクライアントからnfs4サーバーフォルダーをマウントしてみました。私はそうすることができました。そこで、構成ファイル/boot/configure-3.8-genericファイルを/usr/src/.configにコピーし、オプションFilesystems -> Network File Systems -> NFS3 client load as moduleおよびNFS4 client loadをモジュールとして有効にしました。

カーネルを再度コンパイルし、initrd imageを作成し、grubを更新しました。これで、2.6カーネルクライアントからもサーバーフォルダーをマウントできるようになりました。

2
Shehbaz Jaffer

システムのアップグレード後にエラー_mount.nfs4: No such device_が発生しましたが、後で再起動することで解決しました。

問題は、システムのアップグレード後に古いカーネルモジュールディレクトリ/usr/lib/modules/$(uname -r)/が削除されるため、nfs用のモジュールのロードに失敗するようです。

0
golopot