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カードの寿命にもいいはず。

参考