ラズパイZEROによるNASの設定
普通のやり方で、HDDをフォーマット(今回はext4)した後/etc/fstabにHDDを追記する。
その後マウントし、さらにSAMBAの/etc/samba/smb.confに公開するディレクトリーを追記し再起動する。
pi@raspberrypi:~ $ cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
PARTUUID=89270e81-02 / ext4 defaults,noatime 0 1
PARTUUID=7ee80803-01 /mnt/hdd ext4 rw,user 0 0
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
しかし、これではマウントした/mnt/hddのパーミッションがrootのままでwimdowsからは読めても書き込みが所有権がありませんと叱られる。
マウント前のパーミッションを所有者pi パーミッション777にしておいてもマウントすると元に戻ってrootになってしまい、書き込めない。
ネットを探していくと、/mnt/hddの下にもう一つディレクトリーを作り、今回はshare としたがそのディレクトリーの所有者をpi パーミッションを777とすることでアクセスが可能となるとの記述を見つけ、その方法で解決した。
マウントポイントの所有権をroot以外にすることは出来ないようである。
わかってしまえばなんてことは無いが、簡単なことで苦労するものである。
pi@raspberrypi:/ $ cd /mnt/hdd
pi@raspberrypi:/mnt/hdd $ sudo mkdir share
pi@raspberrypi:/mnt/hdd $ sudo chown pi share
pi@raspberrypi:/mnt/hdd $ sudo chgrp pi share
pi@raspberrypi:/mnt/hdd $ ls -l
合計 24
drwx------ 2 root root 16384 3月 25 11:34 lost+found
drwxr-xr-x 2 pi pi 4096 3月 25 12:31 share
-rw-r--r-- 1 root root 72 3月 25 11:40 test.txt
これで問題は解決し手動ではSAMBAの設定も出来、windowsからアクセス出来たのではあるが、次にはまったのはfstabである。
HDDをマウントする記述を追加したのであるが、それで起動するとSSHでの接続、つまりネットワークが生きていない。ディスプレイを繋いでいないのでお手上げである。
原因が分からず、起動用のSDを別のラズパイにさしてfstabに追加した部分をコメントにすると正常に起動する。
何が悪いのかわからない。TABを使ったのがいけなかったのであろうかとも思うが、元々のfstabはTABを使っていない。
方法が分からなかったので、別に試していたHDDマウントが上手くいったSDのfstabをコピーした。
するとどうであろう正常に起動し、NASとして使えるようになった。
現在のfstab
pi@wp-test:~ $ cat /etc/fstab
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat defaults 0 2
PARTUUID=6e51d86f-02 / ext4 defaults,noatime 0 1
PARTUUID=7ee80803-01 /mnt/hdd ext4 rw,user 0 0
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
smb.confの追加内容
[NAS]
path = /mnt/hdd/share
read only = no
guest ok = yes
force user = pi
fstabが不調だった原因は不明であるが、記述を追加した時に何か文字でない画面に出ない制御文字が入ったのであろうか。ダメな時は正常に動いているシステムのfstabをコピーして修正するのがよさそうである。
SDメモリだったので簡単に抜き差しできたが、これが内蔵のHDDなんかだと起動できなくて大慌てであっただろうと思うとぞっとする。fstabの操作には気を付けるべしである。
今大きめのファイルを別のラズパイのSSDから転送しているが、速度はかなり遅そうである。
使えるのは小さなファイルの置き場所になるかもしれない。
〇令和3年4月9日追記
さる事情でラズパイゼロから別のマシンにへの移行をせざるを得ない事情が発生したので、そのマシンでのSAMBAの設定をしていて上記方法では解決しないことが判明。
マウントポイントのユーザーをpiとするためにはマウント時のユーザーを1000:1000とする必要があることを発見した。
手動の場合
$ sudo mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/hdd
/etc/fstabに記入し立ち上げ時にマウントする場合
UUID=EB7F-0656 /mnt/hdd vfat uid=1000,gid=1000,iocharset=utf8 0
これで事前のownerとかgroupの設定に関係なくpiでマウントできWindowsからの書き込みも問題なくできている。