BeagleBoneGreenのfile server化
fileserveをなぜつくるか
前記事 BeagleBoneGreenのdebian versionup と wireguard client設定 で更新したBBGをfile serverにします。
これはDropbox脱出計画でして、いままでつかっていた3TBのDropboxProfessional契約を近々解約して、複数拠点間のファイルストレージを、VPNセグメント内で扱えるようにするためです。
なぜ脱出するのかは、いろいろ理由がありますが、それは別記事で。
BBGのファイルストレージ環境
BBGで外部HDDを扱うとすれば、USB接続となります。 USB 2.0なのでファイル転送速度はたいしたことありませんが、 いままでローカルHDD作業したものを、結局同期が遅いDropboxで共有して作業していたので、 かわったからといって、拠点間の作業ストレスはないだろうという判断です。
電流負荷による動作不安定を回避するために、セルフパワーのUSBハブは必須となります。
まずは下のような一種のバラックで動作させます。
写真の右側にあるのが2.5HDDです。
lsblk -o NAME,MODEL,VENDOR,SERIAL,TRAN,SIZE
NAME MODEL VENDOR SERIAL TRAN SIZE
sda ST2000LM015-2E8174 ST2000LM WY2051CX usb 1.8T
└─sda1 1.8T
まあ、以前つかっていた2TBを差し込んでこうなってるのだけれど、 フォーマットをしなおす必要があります。
HDDフォーマットとマウント
フォーマット
OS依存なしに見られるように、exfatにしておく。
sudo mkfs.exfat -n ラベル名 /dev/sda1
sudo blkid /dev/sda1
[sudo] debian のパスワード:
/dev/sda1: LABEL="ラベル名" UUID="FBE7-EC77" BLOCK_SIZE="512" TYPE="exfat" PARTUUID="0a4975b9-01"
HDDチェック
udo fsck.exfat -v /dev/sda1
exfatprogs version : 1.2.9
label: ラベル名
sector size: 512.00 B
cluster size: 128.00 KB
volume size: 3.01 GB
/dev/sda1: clean. directories 353, files 11995
debian@BeagleBoneGreen:~$ sudo dd if=/dev/sda1 of=/dev/null bs=1M count=1024 status=progress
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 156 s, 6.9 MB/s
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 156.432 s, 6.9 MB/s
- fsck.exfat:clean
- dd:1GB を 6.9 MB/s で読めている(USB2 ならこの速度は普通)
- セクターエラー無し
マウントポイントをつくる
sambaで共有するので、debianユーザ(なんでもいいけど、とりあえずはデフォルトユーザ)
sudo mkdir -p /mnt/マウントパス
sudo chmod 777 /mnt/マウントパス
id debian
uid=1000(debian) gid=1000(debian) groups=1000(debian),
sudo mount -t exfat -o uid=1000,gid=1000,umask=0022 /dev/sda1 /mnt/マウントパス
これで ls -ld /mnt/マウントパス が debian:debian で drwxr-xr-x になる。
fstab マウント
fstabに
/dev/sda1 /mnt/マウントパス exfat uid=1000,gid=1000,umask=0022,nofail 0 0
を書き込んで、 とりあえずリブート。
ログイン後/mnt/マウントパスにマウントされていればOK
samba設定
sudo apt install samba で、インストール。
cat /etc/smb/samba.conf
[global]
workgroup = WORKGROUP
server string = BBG File Server
security = user
map to guest = Bad User
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
server min protocol = SMB2
server max protocol = SMB3
client min protocol = SMB2
socket options = TCP_NODELAY IPTOS_LOWDELAY
read raw = yes
write raw = yes
max xmit = 65535
dead time = 15
getwd cache = yes
[共有名前ーなんでもいい]
path = /mnt/マウントパス
browseable = yes
read only = no
guest ok = yes
force user = debian
force group = debian
create mask = 0664
directory mask = 0775
NetBIOSによる名前解決はしないので、
systemctl list-unit-files --type=service --state=enabled
で、nmbd.serviceがあるなら、これは停止します(sudo sytemctl disable nmbd)。
smbdが起動していないなら、もちろんsudo systemctl start smbd
まず、LAN内で接続できるかどうかチェック。
クライアントOSによりますが、Macなら、finder->移動->サーバーへ接続で、 smb://IPアドレス だけで、接続できるはず(smb.confで、guest OKとしているので)。
実際に利用にあたっては、ユーザ管理なども考えるがとりあえず、この状態で フォルダができたりファイルをいじれるなら、とりあえずOKとしておきます。
VPNセグメントでのfile server利用については、別記事にて。