| 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 を入力します。

Access NFS

フォルダー名を変えたいなどの理由があれば、コマンドラインでも接続できます。

# 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/

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.