Raspberry Pi3をsambaファイルサーバ化し、Linux/Mac/Winでファイル共有(外付けSSDを使用)

前書き

家庭内にLinux/Mac/Windows環境が存在する場合、各PCから写真などを閲覧する事が手間な場合があります。クラウドが一つの解決策ですが、写真はサイズが大きいため、クラウドを無料使用できる範囲を超えます(あと、クラウドは同期が遅い)。そこで、各PCでファイルを共有するため、Rapsberry Pi3をsambaファイルサーバ化します。sambaはUNIX系OS上でWindows互換のファイルサーバ・プリントサーバを立ち上げるOSSです。

本記事では、Raspberry Pi3上にファイルサーバを立ち上げるまでの手順4点を示します。ただし、Raspberry Pi3にRaspbian(OS)をインストール済み、かつネットワーク接続設定済みの状態と仮定しています。

手順
  • sambaパッケージのインストール
  • Raspberry Pi3を固定IP化
  • 外部ストレージの自動マウント設定
  • sambaの設定・立ち上げ

                                 

環境

項目 機器/Version 用途・備考
ボード Raspberry Pi3 Model B samba(Version 4.5.16-Debian)が動作する環境
OS用ストレージ MicroSDカード(Silicon Power、16GB、Class10) Class4以上かつ16GB以上の容量が必要。Raspbianが導入されている前提。
ファイルサーバ用ストレージ Transcend 外付けSSD 128GB USB3.0 MLC TS128GESD400K 用途に合わせて、サイズ・種類(HDD or SSD)を決め、変更して良い。
モニタ ASUS VZ249H

Raspberry Pi3用。SSHでRaspberry Pi3に接続する場合、およびファイルサーバ化の手順が終了した場合、不要。

電源(ターゲット) microUSB – USBケーブル、iPad mini2用のUSB充電器 特になし
映像/音声 HDMIケーブル(PS4付属品) ファイルサーバ化の手順が終了した場合、不要。
入出力装置 キーボード、マウス(USB接続) ファイルサーバ化の手順が終了した場合、不要。

                                     

sambaパッケージのインストール

exfat-fuse、cifs-utilsは、Windows側のファイルシステムをmountする場合に備えて、インストールします。autofsは、外部ストレージを自動でmount/unmoutするために導入します。

                                        

Raspberry Pi3を固定IP化

各PCはRaspberry PiのIPアドレスに対してアクセスする事もあるため、固定IP化します。IPの固定化方法は、以下の記事を参照してください。固定後のIPアドレスは、”192.168.10.108″と仮定します。

Raspberry Piに固定IPを割り当てる方法

                                                                         

外部ストレージの自動マウント設定

今回の例では、各PCはネットワーク経由で、外部ストレージ(SSD)にアクセスします。そのため、外部ストレージをmountし、適切なファイルシステムに変更する必要があります。今回は、OS起動時にmountを手動で行う手間を省くため、外部ストレージのUUID(一意な識別子)を用いて自動mountします。自動mountする場合は、外部ストレージ接続順で変動するPATH(例:/dev/sdb)より、UUID(固定値)を用いた方が好ましいです。

まず、外部ストレージをRaspberry Pi3にUSB接続します。dmesgで判別できない場合は、”sudo fdisk -l”でもストレージ情報が確認できます。

次に、外部ストレージ(/dev/sdb)のファイルシステムを消去し、exfat形式にフォーマットします。

最後に、自動mount設定をautofsによって実現します。自動mountは/etc/fstabを用いても実現できます。しかし、autofsの方がアクセス要求があった場合のみmountを行うため、システム負荷が低いです。また、fstabの場合、設定を失敗した場合(外部ストレージをmount出来なかった場合)、Raspberry Pi3が起動失敗し、Emergency Modeに移行します。その後の復旧作業が面倒なため、autofsを用います。

外部ストレージ(/dev/sdb)のUUIDを調べた後、”/etc/auto.master “および”/etc/auto.misc “に以下を追記します。

                            

sambaの設定・立ち上げ

smb.confを編集し、ネットワークに公開するディレクトリの設定を行います。Raspberry Pi上にnaoユーザが存在すると仮定し、以下の設定ファイルを記載しています。

上記の設定後、testparmコマンドでsmb.confの構文エラーチェックを行います。問題がなければsamba(および関連デーモン)を自動起動するように設定し、Raspberry Pi3を再起動します。

                                                                           

sambaアクセス権を設定する場合

sambaアクセス時にユーザパスワード認証を行いたい場合は、以下のように設定します。

次に、pdbeditコマンドを使って、Sambaユーザを登録します。登録するSambaユーザ名は、Raspberry Pi(Linux)のシステム上に存在し、かつsambaアクセスを許可したいユーザ名(smb.confのvalid usersに記載したユーザ名)にする必要があります。

今回の例では、naoユーザを新規作成します。

以上が終了した後、Raspberry Piを再起動すれば設定が反映されます。

                              

おすすめ