
数時間読んで試行錯誤した後、nfsインストールの問題と解決策を説明したいと思います。
私は長年にわたって仮想分野で働いてきました。Debian 8.5ホストシステムは、imx、raspi、beagleボードなどに基づいて、さまざまな組み込みデバイス用のソフトウェアを開発しています。
開発中は、ホストシステムからnfsを介して組み込みルートパーティションをマウントするのが便利です。構成は通常簡単です。
ホスト構成
# /etc/exports
/opt/tftpboot/rootfs *(rw,sync,insecure,no_subtree_check,no_root_squash)
- ワイルドカードの代わりに特定のIPを使用することをお勧めします。
- また、本番環境で安全でないオプションも削除されました。
クライアント構成
カーネルがネットワークファイルシステムをサポートしている場合、ルートファイルシステムのインストールは組み込み/またはリモートシステムで簡単に設定できます。
# example part of the kernel command line
root=/dev/nfs nfsroot=10.0.102.247:/opt/tftpboot/rootfs,nolock
ところで、新バージョンのnfs カーネルサーバー、に付属Debian 10.2または9.xルートファイルシステムをマウントできません。ホストデバイスにエラーログがなく、リモートシステムにエラーログがない状態で起動プロセスが中断されました。
シェルでテストする
Flashからリモートシステムを起動し、ビジボックスシェルからリモートフォルダをマウントしようとしましたが失敗しました。
$ mount -t nfs 10.0.102.247:/opt/tftpboot/rootfs /mnt/nfs
no route to host
pingはうまく動作します;-)ホスト側のファイアウォールもよく設定されています。他の問題(ネットワークの問題など)を排除した後、NFS V4を使用するようにmountコマンドを変更し、mountコマンドが期待どおりに機能します。
mount -t nfs -o nfsvers=4 10.0.102.247:/opt/tftpboot/rootfs /mnt/nfs
答え1
解決策
これで、カーネルコマンドラインからルートファイルシステムのマウントに戻り、NFS V4を渡す必要があります。
# working example part of the kernel command line
root=/dev/nfs nfsroot=10.0.102.247:/opt/tftpboot/rootfs,v4,tcp