Raspberry PiでNASをマウントして共有フォルダにアクセスする方法
Raspberry PiのストレージはmicroSDカードで容量が少ないので、NASをマウントして使う方法のメモ。これで容量も気にしなくていいし、ファイルの共有もしやすくなるので便利〜。
目次
マウントの準備(NAS)
Raspberry PiからNASをマウントするためには、NAS側のNFSを許可しないといけない。ほとんどのNASが対応してると思うのでまずはこれを設定する。
QNAP
https://docs.qnap.com/nas/4.2/SMB/jp/index.html?win_mac_nfs.htm
Synology
https://www.synology.com/ja-jp/knowledgebase/DSM/help/DSM/AdminCenter/file_share_privilege_nfs
BUFFALO
https://www.buffalo.jp/support/faq/detail/14311.html
自宅で使ってるNASがQNAPなので、QNAPの手順で紹介。
まず、NFSサービスが有効になっているか確認する。NASにログインして、「コントロールパネル」 > 「ネットワークサービスとファイルサービス」 > 「Win/Mac/NFS」を開く。「NFSサービス」のタブを開き、サービスを有効にする。

次に、NFSアクセス権を設定する。「ここをクリックすると、ネットワーク共有のNFSアクセス権を設定できます。」というリンクをクリックし、設定したフォルダ(今回は「raspberypi4」フォルダ)の右側にあるアクションの「共有フォルダ権限の編集」ボタンをクリックする。

共有フォルダー権限の編集ウインドウが開いたら、編集したいフォルダの権限タイプの選択を「NFSホストのアクセス」に変更する。

アクセス権にチェックが入っていることを確認し、アクセス権を設定する。ホスト/IP/ネットワークは、特に制限しないのであれば「*」で。権限は「読み取り/書き込み」に変更する。

これでNASの方は準備完了。
Raspberry Piからマウント
まずマウントするディレクトリ(今回はmntの中にraspberrypi4)を作成し、パーミッションを設定する。LXTerminal、もしくはSSHでログインして下記を実行する。
sudo mkdir -p /mnt/raspberrypi4
sudo chown pi /mnt/raspberrypi4/
ディレクトリを作成したら、Raspberry Piからマウント出来るかを確認する。「192.168.XXX.XXX」のところはNASのIPアドレスで。
sudo mount -t nfs 192.168.XXX.XXX:/raspberrypi4 /mnt/raspberrypi4
これでマウントできているはず。これで、Raspberry Piの「/mnt/raspberrypi4」ディレクトリにファイルを書き込んでNASに保存されているかどうか確認。
起動時に自動マウントさせる
今のままだと再起動したらマウントが解除されるので、起動時に自動的にマウントするように設定を変更する。自動マウントさせるには、/etc/fstabのファイルを変更する。
sudo vi /etc/fstab
proc /proc proc defaults 0 0 /dev/mmcblk0p6 /boot vfat defaults 0 2 /dev/mmcblk0p7 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that
viで開くと、上のようなファイルになっているので、設定を追記する。マウントするデバイス、マウントポイント、ファイルシステム、オプション等をここ(https://linuc.org/study/knowledge/505/)や、ここ(http://manpages.ubuntu.com/manpages/bionic/ja/man5/nfs.5.html)を参考に書いていく。
proc /proc proc defaults 0 0 /dev/mmcblk0p6 /boot vfat defaults 0 2 /dev/mmcblk0p7 / ext4 defaults,noatime 0 1 # a swapfile is not a swap partition, no line here # use dphys-swapfile swap[on|off] for that 192.168.XXX.XXX:/raspberrypi4 /mnt/raspberrypi4 nfs rsize=8192,wsize=8192,timeo=14,intr 0 0
追記して保存したら、次にブートオプションを変更する。ここを設定しないと自動マウントできないので注意!!
コマンドラインから下記を実行する。
sudo raspi-config
メニューが出るので、「3 Boot Options」を選ぶ。

次に「B2 Wait for Network at Boot」を選ぶ。

ネットワーク接続を確立するまでブートを待つか聞かれるので「はい」を選ぶ。

raspi-configを終了して、Raspberry Piを再起動して自動マウントされているか確認する。
まとめ
ちょっと面倒だけど、一度設定すればあとは自動でマウントしてくれるので楽。SDカードの容量も気にしなくていいし、書き換えが減るのでSDカードの寿命にもいいはず。