Linuxマシン間でファイルを共有するため、NFSサーバーの設定をした。

サーバー側(Arch Linux)

パッケージをインストール。

1
$ sudo pacman -S nfs-utils

/mnt/vol/ShareをLAN内で共有するよう、/etc/exportsを編集。

/etc/exports
1
/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のマウントに失敗します

表示   このエントリーをはてなブックマークに追加

Comments

2016年12月13日