ホストマウント開発ボードのNFSファイルシステム

3059 ワード

紹介する


手にnanopiがあり、上に書いたドライバをテストしたいのですが、開発環境はホスト上にあり、テストを容易にするためにNFSサーバーを使って開発ボードフォルダをホスト上にマウントする必要があります.このフォルダは共有フォルダに相当し、書いたドライバをそのフォルダにコピーするだけで、開発ボードにコピーされたファイルが見えます.注意:ここではnanopiにNFSサーバーを構築するのではなく、ホストに構築するのではなく、メリットは任意のホスト(NFSサーバーがインストールされていなくても)がnanopiのフォルダをマウントできることです.悪いところは、開発ボードが実行されているlinuxリリース版(私のnanopiがインストールされているUbuntu)でなければ、NFSサーバーを構築するのは容易なことではありません.ここでnanopiにNFSサーバーを構築することを選んだのは、私のホスト仮想マシンが開発ボードにpingできないのに、開発ボードがホストにpingできるからだ.

開発ボードにNFSサーバーを構築する


ここで開発ボードにインストールする必要があるのはリリース版Linuxです

1.インストール

$ sudo apt-get install nfs-kernel-server
$ sudo apt-get install nfs-common

2.構成/etc/exports


まず、ホストマウント用のディレクトリを作成します.ここでは、/home/pi/nfsを使用し、$ sudo vi /etc/exportsを実行し、テキストの末尾に追加します.
/home/pi/nfs *(insecure,rw,sync,no_root_squash,no_subtree_check)

(ここでinsecureの選択肢を追加したのは1024以上のポート番号の使用が許可されていることに注意)
次に$ chmod 777 -R /home/pi/nfsを実行してフォルダの権限を変更し、$ sudo exportfs -r更新/etc/exportsの変更を実行します.最後に$ sudo showmount localhost -eを実行して、本機でNFSのマウントが許可されているフォルダを表示します.この場合、(xxxは開発ボードのipアドレスです):
Export list for xxx.xxx.xxx.xxx
/home/pi/nfs *

以上が表示されていれば、$ sudo /etc/init.d/nfs-kernel-server restartを実行してNFSサーバを再起動することができます.

3.テストマウント


先のNFSフォルダを本機の/mntフォルダの下にマウントします.
$ sudo mount -t nfs -o nolock localhost:/home/pi/nfs /mnt

その後、/mntフォルダに入ると、/home/pi/nfsフォルダの下の内容が表示され、マウントに成功したことを示します.次のコマンドでマウント解除
$ sudo umount /mnt

開発ボードのNFSフォルダをホストにマウントする


まず、ホストが開発ボードにpingできることを保証する必要があります.
ping xxx.xxx.xxx.xxx

その後、$ sudo showmount xxx.xxx.xxx.xxx -eを実行して、対応するipアドレスの下でNFSのマウントを許可するフォルダを表示します.このとき、出力する必要があります.
Export list for xxx.xxx.xxx.xxx
/home/pi/nfs *

ホストが実行します
$ sudo mount -t nfs -o nolock xxx.xxx.xxx.xxx:/home/pi/nfs /mnt

開発ボードの/home/pi/nfsをホストの/mntフォルダの下にマウントできます.表示される場合:
mount.nfs: access denied by server while mounting xxx.xxx.xxx.xxx:/home/pi/nfs

開発ボードの/home/pi/nfsフォルダ権限が777に変更されていないか、/etc/exportsファイル構成にinssecureオプションが追加されていないことを示します.