sambaサーバにFAT32のUSBメモリをマウント
さて、スロットに刺さったマイクロSDカードをsambaにして使う方法はわかったが、次にやりたいのはUSBポートに刺さった外付けメモリやHDDをsambaのデータ蓄積場所にしたい。これはちょっと手間取った。
https://qiita.com/hoshinom78/items/a6552e85423a52b21a2f
https://qiita.com/hoshinom78/items/a6552e85423a52b21a2f
USBメモリを用意
本当にやりたいのは128GB程度で小型のUSBメモリをデータ置き場にしたいが、手持ちにないのと32GB以上はFAT32でフォーマットできない(たぶん)なので、まずは手持ちの32GBのUSBメモリを使ってみた。
FAT32でフォーマット
これはやり方はいろいろあるが、せっかくなのでRaspberry piのデスクトップでgpartedを使った。ラズパイ3にはなかったのでインストールした。そして32GBのUSBメモリをFAT32でフォーマットした。
FAT32にしたい理由は、外してWindowsマシンで直接読み書きできるようにしたかったから。linuxだからext4なんかが無難なんだろうが、以前NASを飛ばした時にデータのサルベージにえらい苦労をしたので懲りた。
マウントポイントの作成とsmb.confの編集
USBメモリをマウントするマウントポイントをまず作成する。
$ mkdir /media/fat32_32GB $ sudo chown pi:pi /media/fat32_32GB $ ls -la /media 合計 16 drwxr-xr-x 4 root root 4096 3月 11 16:46 . drwxr-xr-x 21 root root 4096 3月 2 16:50 .. drwxr-xr-x 2 pi pi 4096 3月 11 19:16 fat32_32GB drwxr-x---+ 2 root root 4096 3月 11 18:23 pi
このようにユーザとグループが"pi"のディレクトリを作成する。
次にsmb.confに次の行を加える。
[fat32_32GB] comment = fat32_32GB path = /media/fat32_32GB public = yes read only = no browsable = yes force user = pi
USBメモリのマウント
mountコマンドでマウントしてみる。
$ sudo mount -t vfat -o codepage=932,iocharset=utf8,uid=1000,gid=1000 /dev/sda1 /media/fat32_32GB/
このパラメータはややこしい。uid、gidの1000は"pi"のユーザID、グループIDの数字である。これは/etc/passwrdに書かれている。
$ cat /etc/passwd | grep pi pi:x:1000:1000:,,,:/home/pi:/bin/bash
こうなる。codepage=932,iocharset=utf8はWindowsマシンから日本語名のファイルを扱う時のおまじないか。これを最初加えなかったら、日本語が含まれるファイルがコピーできなかった。
ここまでで試しにWindowsマシンから接続してみる。ファイルの読み書きができるか確認する。
fstabを編集
上の方法は一時的にUSBメモリをマウントしただけなので、起動時に自動でマウントするように/etc/fstabを編集する。
USBポートに差したメモリはまあだいたい、/dev/sda1とかになっている。dfで確認すればよいが、そこはとばして、そのメモリのUUIDをまず調べる。
$ blkid /dev/sda1 /dev/sda1: UUID="1CDD-971D" TYPE="vfat" PARTUUID="f550f582-01"
こうなった。UUIDは1CDD-971Dである。これはメモリをフォーマットすると変わるので注意。そして次に/etc/fstabに次の行を追記する。
UUID=1CDD-971D /media/fat32_32GB vfat codepage=932,iocharset=utf8,uid=1000,gid=1000 0 0