Raspberry Pi OS (32-bit) with desktop NFS Samba Server

当サイトのメインのデスクトップは相変わらずRaspberry Pi3ですがvncserverのRaspberry Pi4を導入、動画の視聴を含めてその他できることは極力Pi4で実行することでPi3の負担はかなり軽減することができました。
Pi4にはUSB3.0が搭載されていることからNFS Samba Serverとしても有効な使い方ができると思います。

現在Raspberry Pi4は開発途上ということもありSSD(sda3)はユーザーディレクトリだけマウントしてカードはいつでも書き換えできるようマイクロSDで運用しています。

NFSサーバー

Unix系のOSではNFSが標準になると思います。
SSD(sda4)を使って試して見ることにします。

$ lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 111.8G  0 disk
├─sda1        8:1    0   256M  0 part
├─sda2        8:2    0  29.3G  0 part
├─sda3        8:3    0  58.6G  0 part /home/pi
└─sda4        8:4    0  23.7G  0 part
mmcblk0     179:0    0  28.9G  0 disk
├─mmcblk0p1 179:1    0   256M  0 part /boot
└─mmcblk0p2 179:2    0  28.7G  0 part /

マウント
マウントは/home/nfsとします。

# mkdir /home/nfs

# blkid /dev/sda4
/dev/sda4: LABEL="data2" UUID="f6f604ff-5a15-4fa7-a812-f51ad8fcdb4f" TYPE="ext4" PARTUUID="d9b3f436-04"

/etc/fstab
PARTUUID=d9b3f436-04  /home/nfs       ext4    defaults,noatime   0 1

# mount -a

インストール

# apt install nfs-kernel-server

/etc/exports(もっと適正なマウントオプションがあるかもしれません)

/home/nfs   192.168.0.0/24(rw,async,crossmnt,no_root_squash,no_subtree_check)

nfs-server再スタート

# systemctl restart nfs-server

NFSクライアント

クライアントにはnfs-common rpcbindがインストールしてあればいいと思います。
Raspberry Osではインストール済と思うので設定だけでいけるはずです。
NFSは活きているようです。(Raspberry Pi4の/etc/hostname /etc/hostsはpi4にしています)

$ showmount -e pi4
Export list for pi4:
/home/nfs 192.168.0.0/24

オートマウント
実用にはオートマウントが便利です。

# apt install autofs

いくつか/etc/auto*がインストールされます。
ディレクトリ/etc/auto.master.dに設定ファイル作成(auto.orangepi3) # 適当に
当サイトのファイルサーバー(orangepi3)はすでに稼働しているのでこのファイルに追記します。
/etc/auto.master.d/auto.orangepi3

/home/hda   -fstype=nfs,rw,defaults  orangepi3:/home/hda
/home/nfs   -fstype=nfs,rw,defaults  pi4:/home/nfs

クライアントのマウントポイント(/home/nfs)はautofsが自動で作成します。

/etc/auto.master 末尾近くに記載

/- /etc/auto.master.d/auto.orangepi3  --timeout=600

+auto.master

autofs restart

# systemctl restart autofs


クライアントの/home以下にnfsが見えてきます。サイドバーのnfsはブックマーク
現在の/home/nfsはroot所有になっています。ユーザー権限で読み書きするにはオーナーやパーミッションを運用、セキュリティに留意して変更します。Pi4からroot権限で実行


取り敢えず/home/nfsをユーザー所有にしてテスト

Sambaサーバー

WindowsやAndoroid端末用にSambaサーバーを構築

# apt install samba


デフォルトのいいえを選択

デフォルトのsmb.confはバックアップして簡単に設定ファイル作成
同じく/home/nfsを公開します。
/etc/samba/smb.conf

[global]
    server string = Raspberry Pi 4 SMB Server
    security = USER
    map to guest = Bad User
    guest account = root
    log level = 0
    syslog = 0
    load printers = No
    printcap name = /dev/null
    disable spoolss = Yes
    preferred master = No
    local master = No
    domain master = No
    dns proxy = No
    create mask = 0775
    directory mask = 0775
    printing = bsd
    browseable = Yes

[NFS]
    path = /home/nfs
    force user = pi
    force group = pi
    create mode = 0664
    directory mode = 0755
    public = No
    browseable = yes
    writable = yes
    guest ok = yes

Samba Restart

# systemctl restart smbd nmbd


SambaサーバーはPi3のネットワークから見えてきます。


/home/nfsをクリックすると認証画面が出ます。
接続するをクリック
接続は可能ですが別途smbパスワードの設定が必要のようです。
毎回認証画面が出ます。


接続、読み書きはOKです。
通常はNFSを使うのでいいことにします。


Windowsはほとんど起動することのないASUS X200MAがあります。
Windowsから接続
認証画面が出ます。こちらはWindowsに設定しているパスワードが通ります。