Linuxマシン間でファイルを共有するため、NFSサーバーの設定をした。
サーバー側(Arch Linux)
パッケージをインストール。
1
| $ sudo pacman -S nfs-utils
|
/mnt/vol/ShareをLAN内で共有するよう、/etc/exportsを編集。
/etc/exports1
| /mnt/vol/Share 192.168.11.0/24(rw,fsid=root,no_subtree_check)
|
ちなみに、PCのIPアドレスはそれぞれ固定してある。
それからArchWikiによると、たとえばサーバー側の/mnt/musicを共有したい場合、サーバー側で/mnt/musicをいったん/srv/nfs4/music等にマウントし、これをクライアント側からマウントするというのが正しい作法のよう。だが面倒なので。
nfs-server.serviceを有効化し起動。
1 2
| $ sudo systemctl enable nfs-server $ sudo systemctl restart nfs-server
|
クライアント側(Xubuntu 16.04.1)
1 2 3 4 5 6 7 8 9
| $ sudo apt install nfs-common $ sudo systemctl enable rpcbind.service $ sudo systemctl enable nfs-client.target $ sudo systemctl enable remote-fs.target $ sudo systemctl start rpcbind.service $ sudo systemctl start nfs-client.target $ sudo systemctl start remote-fs.target
|
共有ディレクトリのマウント
クライアントPCから共有ディレクトリをマウント。
1 2
| $ sudo mount -t nfs 192.168.11.3:/mnt/vol/Share /mnt/dyna mount.nfs: Connection timed out
|
タイムアウトとなり、マウント出来ない。
サーバー側のファイアウォールをoffにするとマウント出来るので、ファイアウォールで弾かれているらしい。
tcp、udpとも、ポート20048,2049,111でNFSを許可するよう、Gufwで設定。
マウント出来るようになった。
(マウントする際のファイルタイプの指定-t nfs
は省略しても大丈夫だった。)
普段はあまり使わないので、クライアント側からはその都度マウントすることとし、fstabによる自動マウントは行わないことにした。
(サーバーが起動していない状態でクライアントPCを起動した際、タイムアウトするまでしばらくマウント作業を待つことになりそうなのが嫌なので。)
(注)「リムーバルメディアやネットワーク共有などが接続されたりアクセスされたときに自動でマウント」してくれるAutofsというのもあるようなので、また今度チャレンジしてみようと思う。
ーー
(追記)
この後、Xubuntu 16.04.1にもnfs-kernel-serverをインストールし、上記と同様にサーバーの設定をしたが、ファイアウォールで弾かれる。
rpcinfo -p
で確認すると、mountdのポートがランダム割り当てられているのが原因だった。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| $ rpcinfo -p program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100005 1 udp 46339 mountd 100005 1 tcp 44608 mountd 100005 2 udp 40944 mountd 100005 2 tcp 35868 mountd 100005 3 udp 52578 mountd 100005 3 tcp 41244 mountd 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 100227 3 tcp 2049 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 100227 3 udp 2049 100021 1 udp 44301 nlockmgr 100021 3 udp 44301 nlockmgr 100021 4 udp 44301 nlockmgr 100021 1 tcp 37763 nlockmgr 100021 3 tcp 37763 nlockmgr 100021 4 tcp 37763 nlockmgr
|
/etc/default/nfs-kernel-serverの12行目RPCMOUNTDOPTS="--manage-gids"
をRPCMOUNTDOPTS="-p 20048"
とし固定したところ、マウント出来るようになった。
これまでPC間でファイルをやり取りする際、USBメモリを刺して抜いてまた刺して、とやっていたが、これで少し便利になった。
ーー
(参照記事)
NFS - ArchWiki
Ubuntu日本語フォーラム / nfsのマウントに失敗します