比較的お安く購入できて、いろいろ遊べるRaspberry Pi。
現在はTwitterのbot用と共にUSBで接続したHDDを接続してNASとしても利用している。
タブレットやスマートフォンを利用して手軽に家のどこでも動画が見れるとして家族にもウケが良いのでやってよかった。
今回はそのセットアップ周りに関する忘備録を。

やることは大きく分けると

  • HDDをexFATでフォーマット
  • HDDのマウントの設定
  • SAMBAの設定 の3つ。

HDDをexFATでフォーマット

  • 外付けHDDを用意して、exFATでフォーマット。
  • 手持ちのWin機のエクスプローラーからフォーマットを実行。

NTFS、FAT32など選択肢があるが、exFATを選ぶ理由は

  • Windows/Macどちらでも使える
  • ファイルサイズの制限が緩い ということ。NTFSはMacの環境下では参照はできても変更ができず、FAT32は4GB以上のサイズのファイルを扱えない、という短所がありその双方の弱点を克服しているのがexFAT。
    しかし、exFATにも弱点はあってWin XP SP2以降のOSでないとアクセスができない。
    通常の家庭であればそう大きな問題にはならないと思われる。

HDDのマウントの設定

まずはラズパイでexFATのファイルを扱うためにパッケージを導入、その後再起動。

 $ sudo apt install exfat-fuse exfat-utils
 $ sudo reboot

次に、マウントの設定に移る。起動の度に手動でさせるのは面倒なので自動化。

 # 1. マウント先のディレクトリを作る
 $ sudo mkdir {マウント先}
 
 # 2. HDDのUUIDを確認
 $ sudo blkid
 
 # 3. fstabを開く
 $ sudo nano /etc/fstab
 
 # 4. fstabに設定を追記
 UUID="{blkidで調べたUUID}"   {マウント先}   exfat-fuse   async,auto,dev,exec,gid=65534,rw,uid=65534,umask=007   0   0
 (この時のスペースはtabなので注意)

最後に反映、確認。
code:reboot

 # 1. 再起動
 $ sudo reboot
 
 # 2. 確認
 $ sudo df

以上でマウントの設定は終了。


SAMBAのセットアップ

まずはSAMBAのインストール

 $ sudo apt install samba -y

次にSAMBAの設定

 $ sudo nano /etc/samba/smb.conf

一番下までスクロールして、以下のものを追記、保存

 [{任意の共有フォルダの名前}]
    comment = {説明文}
    path= {マウント先}
    read only = no
    guest ok = yes
    force user = {任意のユーザー}(初期なら pi )

尚、{マウント先}の部分を「/」や「/home/{ユーザー名}」などにすることによって
外付けしたHDDだけでなくSDカード内の任意のディレクトリを参照させられるようになる。

最後に再起動(またはsambaのサービス再起動)

 $ sudo reboot
 
 # 起動
 $ sudo service smbd start
 # 再起動
 $ sudo service smbd start
 # ステータス確認
 $ sudo service smbd statues

以上でSAMBAのセットアップは終了。


Win機でアクセスしてみる

Win機の場合はエクスプローラーを起動して、アドレスバー?(フォルダの階層が表示されてる部分)にifconfigを利用するなどしてラズパイのIPアドレスを調べ

 \\WWW.XXX.YYY.ZZZ

といったように入力すると先ほどのSAMBAの設定で{任意の共有フォルダの名前}の部分に入力した名前のフォルダが出る。
そこで右クリックして「ネットワークドライブの割り当て」を選択して、ドライブ文字の割り当てをすると通常のHDDのように扱えるようになるので便利。


追記

使用を続けているとなぜかファイルの読み書きができなくなってしまう状況が発生した。
特に大きめのファイルや、大量のデータを書き込んだときに発生する模様。
1日に1度ほど再起動するとなくなったので使用することのないであろう深夜にcronなどを利用して再起動させることを推奨。