| tags:raspberry pi categories:server
NFS on Pi
パイとのファイル共有を行います。(とりあえず、マック・パイ) NFSの方がSAMBAより早いとの情報なので、NFSをインストール+設定をしました。
raspbianのデフォルトの状態ではNFSはインストールされていないので、
まずはインストール
sudo apt-get install nfs-kernel-server -y
します。
pi@raspberrypi:~ $ sudo -Es
root@raspberrypi:~ # apt install nfs-kernel-server -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
nfs-kernel-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 108 kB of archives.
After this operation, 272 kB of additional disk space will be used.
Get:1 http://mirror1.ku.ac.th/raspbian/raspbian stretch/main armhf nfs-kernel-server armhf 1:1.3.4-2.1 [108 kB]
Fetched 108 kB in 2s (37.5 kB/s)
Selecting previously unselected package nfs-kernel-server.
(Reading database ... 36620 files and directories currently installed.)
Preparing to unpack .../nfs-kernel-server_1%3a1.3.4-2.1_armhf.deb ...
Unpacking nfs-kernel-server (1:1.3.4-2.1) ...
Setting up nfs-kernel-server (1:1.3.4-2.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /lib/systemd/system/nfs-server.service.
Job for nfs-server.service failed because the control process exited with error code.
See "systemctl status nfs-server.service" and "journalctl -xe" for details.
nfs-server.service couldn't start.
Creating config file /etc/exports with new version
Creating config file /etc/default/nfs-kernel-server with new version
Processing triggers for systemd (232-25+deb9u11) ...
Processing triggers for man-db (2.7.6.1-2) ...
root@raspberrypi:~ #
設定
piユーザーのuidとgidの番号を調べます。
root@raspberrypi:~ $ id pi
uid=1000(pi) gid=1000(pi) groups=1000(pi),4(adm)......
シェアーするフォルダーを作り、アクセス権を設定します。
そしてNFSの設定ファイル/etc/exports
にシェアフォルダーの情報を書き込みます。
root@raspberrypi:~ $ mkdir /home/pi/share
root@raspberrypi:~ $ chmod -R 777 /home/pi/share
NFSサーバー設定ファイル/etc/exports
に書き込む書式は、
/home/pi/share(シェア・フォルダー) 10.0.0.0/16(受け付けるIP) (rw,sync)(設定)
になります。すべてのIPアドレスから受け付ける時はIPアドレスの所に*印をつけます。
- と ( の間にはスペースは入れませんのでお気をつけのほど。
/home/pi/share *(rw,sync)
そして、マックとの接続にはオプションのinsecure
が必要とのこと。そのた色々なオプションが付いてきます。
root@raspberrypi:~ $ vi /etc/exports
/home/pi 10.0.0.0/24(rw,all_squash,insecure,sync,no_subtree_check,anonuid=1000,anongid=1000)
Client on Mac
mac側でマウントするときはファインダーより
Go(移動)>Connect Server(サーバーに接続)
若しくはコマンド+Kで
Server Addressの欄に
nfs://<<SERVER IP>>/home/pi/share
を入力します。
フォルダー名を変えたいなどの理由があれば、コマンドラインでも接続できます。
# sudo mkdir /Volumes/share_nfs
# sudo mount_nfs -P <<SERVER IP>>:/home/pi/share /Volumes/share_nfs
さて、接続はすぐにできました。楽勝だなと思いましたが、全く使い物にならないほど転送速度が遅いです。 1KBに満たないテキストファイルのコピーも1分近く掛かりました。 しかも接続を何回か繰り返したら、ファインダーが落ちます、カーネルパニックは起こしませんが復帰しません。 結局再起動になります。
マックの環境がちょっと古いElCapitanなのが問題なのか、、パイ側なのか、、 Syncthingは良いスピードで動いているので、NFSの問題なのか??。
深追いせずに切り捨てます。SAMBAをためそ。
解決方法ご存知方がいらっしゃったら、ご教授のほど、、。
参照サイト
How to Setup Raspberry Pi NFS Server:https://pimylifeup.com/raspberry-pi-nfs/