↓ メインコンテンツへスキップ

ラズパイ&Samba でファイルサーバーを作ろう!exFAT編

·2765 文字·6 分
わて
著者
わて

この記事ではラズパイと samba を使ってNAS を作成し、Android, iOS, Windows からアクセスできるようにします。

自宅でNAS を構築すればスマホから簡単に外付けSSD に写真などのデータを保存できるようになります!

尚、書き込み速度はあまり早くないので、その辺はご了承ください。

また、今回使用するディスクのファイル形式はexFAT です。
先に結論を書くと、exFAT の場合、Linux 特有の所有者や権限が変更できません。
なので共有するために使うにはそもそもマウント時に工夫が必要です。その辺は作り方の項目で触れてます。

この記事で紹介するNAS は同じWi-Fi 内なら誰でもアクセスできるガバガバ設定です。
使用する際は自己責任でお願いします。

先にまとめ
#

  • Samba とはLinux からWindows のネットワークに接続するソフトウェアで、比較的簡単に実装できる。

  • exFATをLinux で使う際は、マウント時に所有者を設定する必要がある。誰でもアクセスできるようにマウントする場合は、以下のようにfstabを編集する。

UUID="XXXX-XXXX" /XXX exfat-fuse async,auto,dev,exec,gid=65534,rw,uid=65534,umask=000 0 0

使ったもの & 作り方
#

  • ラズパイ4(メモリ 4GB モデル)
  • 外付けSSD (HD-PCG2.0U3-GBA) ファイル形式 → exFAT
  • Owlfiles (Android版, iOS版)

OS はUbuntu server 26.04 を使いました ↓

~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 26.04 LTS"
NAME="Ubuntu"
VERSION_ID="26.04"
VERSION="26.04 (Resolute Raccoon)"
VERSION_CODENAME=resolute
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=resolute
LOGO=ubuntu-logo

Smaba とは?なぜ使う?
#

Samba とは
#

Samba とは、Linux からWindows のネットワークに参加させてファイルの共有やプリンター共有をできるようにするソフトウェアです。

超ざっくり言うとLinux とWindows でファイルとかを共有できるよ。ついでに、スマホともできるよ。というものです。なので、ラズパイと同じネットワークにいれば、パソコンやスマホ、他のラズパイともファイルを共有できるということです。

このときのネットワークとは、簡単に言うと、同じWi-Fi接続してる、同じLANのエリアにいるという意味です。

access via Wi-Fi

Samba を使う理由
#

Linux での共有といえばNFS が有名です。NFS はLinux 同士の共有に優れています。しかし、今回は二つの理由でNFS ではなくSamba(厳密な対比はSMB)を使います。

一つ目は、共有相手にLinux 以外のOS が複数あることです。今回は家庭用としての運用を想定しているので、Linux 同士の通信だけでなく、Android、iOS、Windows などもアクセスする予定だからです。

二つ目は外付けSSD のファイル形式がexFAT だからです。exFAT はNFS での共有ができません。ext4 とかにフォーマットすれば良いのですが、もともと入ってるデータとかもあるので、フォーマットはせず、exFAT のままで使います。

これらの理由からSamba を使います。

作り方
#

作業の流れはこんな感じです ↓

  1. exFAT でも共有できるようにマウント
  2. samba の設定
  3. パソコンやスマホからアクセス

ディスクの権限とマウント
#

exFAT はもともとWindows 用に開発されたので、Linux で扱う際に、権限などの操作ができなかったりします。なので、以下のような手順が必要です。

  1. exFAT を使用できるようにするライブラリを入れる
  2. ディスクのマウントと同時に所有者や権限を設定

先にライブラリのインストールやfstab に設定するコマンドを示します ↓

sudo apt install exfat-fuse

インストールができたら、マウントをします。

永続マウントを想定しているのでblkidでディスクのUUIDを調べて、fstabを編集します。このとき、以下のように所有者を指定します。

上で書いたように、exFAT はLinux 特有の色々ができません。なのでマウント時にユーザーなどを指定してしまいます。

/ext/fstab
UUID="XXXX-XXXX" /XXX exfat-fuse async,auto,dev,exec,gid=65534,rw,uid=65534,umask=000 0 0

gid もuid も65534 と指定し、所有者をnobody/ nogroup にしてます。また、umask=000 ではアクセス権限のマスクを「なし」にし、すべてのファイルとディレクトリが 777 の状態にします。

要するに、「誰でもアクセスできて読み書きも可能」な状態にしています。
完全に家用の設定です。

Samba の設定とファイアーウォール
#

次に、Samba をインストールしていきます。

sudo apt install -y samba

samba は/etc/samba/smb.confファイルを編集することで設定できます。今回は Share という名前で公開されるようにしました。

/etc/samba/smb.conf
[Share]                             # 公開名
   path = /PATH/TO/SHARE            # 公開したいパス
   public = yes                     # 以下、権限
   guest only = yes
   writable = yes
   force create mode = 0666
   force directory mode = 0777
   browsable = yes
   follow symlinks = yes            # 以下、シンボリックリンクを許可
   wide links = yes
   allow insecure wide links = yes

設定の反映

sudo systemctl restart smbd

むりやり図示するとこんな感じです↓
このように、smb.confで [ ] の中の名前が、公開するときのアドレスになります。また、このような設定を複数の行い公開することもできます。

samba設定の概要

ファイアーウォールも設定します。

sudo ufw allow Samba 

ここまででsamba の設定は完了です。
テストとしてエクスプローラーを開いてファイルの読み書きができるかをテストしてみてください。
\\ラズパイのIP\Shareと打つとアクセスできます。

エクスプローラーでテスト

ユーザー名とパスワードが求められますが、ディレクトリの権限がnobodyなのでユーザーが間違ってたりパスワードなしでも入れちゃったりします。

もし入れなければ、ラズパイで使ってるユーザー名とそのパスワードを入れてみてください。

適当にファイルを作ったり消したりしてテストしてみましょう。

スマホからアクセス Owlfiles
#

Windows でアクセスできてたら、おそらくスマホからでも可能です。
しかし、iPhone の場合、標準の files アプリからだとアクセスできないという不具合が出ていて、実際に筆者もうまくいきませんでした。

Owlfiles なら可能でだったので、使い方を紹介します。
筆者自身、他のアプリも試したのですが、Owlfiles の方が直感的な操作ができて便利でした。

紹介に使う画像はAndroid のものですが、iPhone でも同じ操作が可能です。

ここからインストール → (Android版, iOS版)

以下の順番にタップと入力を行います。

  1. 接続
  2. 右上の電気マーク
  3. 新しい接続
  4. NAS(Linux でもいけるかも)
  5. 表示名、ホスト名/IPアドレス、ユーザー名、パスワードを入力して保存マークをタップ

Explorer のテストでも述べましたが、ユーザー名とパスワードはがばがばなので、適当にユーザー名を「a」とかで、パスワードなしでも入れちゃいます。

Owlfilesで接続

入れたら成功です。

スマホの中の写真をNAS に保存したいときは、「私のファイル」から選び、「 ⋮ 」で「にコピー」を選び、コピー先を指定する際に、先ほど接続したディレクトリを選択すればOKです。

ちょこちょこ日本語が変なのですが、そこは御愛嬌で、

とりあえずこれでNAS の完成です。
スマホにある写真とか動画もWi-Fi 経由でSSD に入れられ、楽に管理ができます。

やったね