今回はRaspberry Piに定番のファイルサーバーであるSambaをインストールして、NASにする手順を解説します。なるべく少ない手順で簡単にできるようにしています。
Raspberry Pi OSはベースが、元々サーバーOSであるLinuxである関係上、ガチガチにセキュリティを固めることもできるのですが、自宅のLAN内で運用するのであれば、セキュリティにこだわる必要もないと思います。ググっていると作法にしたがってsamba用のユーザーを作って・・・とかの手順を紹介している記事もありますが、今回はそういった難しいことは省いて、できるだけ簡単に構築します。
Raspberry PiのNASで使用するUSB HDD
私がこれまでNASに使用していたHDDはWestern DigitalのWD Elements Desktopシリーズでした。
安心のWestern Degitalで、実際に7年間ノントラブルでしたし、一定時間アクセスがないと自律的にスリープする機能もあります。スリープ中の消費電力がほぼ0Wでしたので、予算に余裕があればおすすめなのですが、インフレや円安の影響で値段が高くなってしまっていました。
そこで、安いものを探すと大体はバッファローあたりの録画用という製品になるのですが、私が入手したタイミングでは、こちらのUSB HDDが6TBでは最安でした。
最近の安い外付けHDDは、なぜか録画用というものが多く、なにが違うかといえばシーケンシャルアクセスに性能を振っているようです。ランダムアクセス性能は低いのですが、データの倉庫として使用される外付けHDDは起動ディスクとは違いランダムアクセス性能は求められませんので問題はありません。
前準備
HDDまたはSSDはあらかじめフォーマットして、公開用にNASフォルダを作っておきます。
Sambaをセットアップする前に当然ながらRaspberry Pi OSがインストールされていて、HDDやSSDが認識されている必要があります。まだの場合には下記の投稿を参考にしてください。「Raspberry Pi 5」となっていますが、Raspberry Pi 4以前のモデルでも手順に違いはありません。
Sambaのインストールとセットアップ
まずは、いつものおまじないです。WindowsUpdateみたいなものです。更新するソフトがなければすぐ終わりますし、Raspberry Pi OSのセットアップ直後など、たくさん更新があれば数分かけてアップデートします
sudo apt update sudo apt upgrade -y
次にSambaをインストールします。
sudo apt install -y samba
インストールが終了したら、設定ファイルに公開するフォルダを指定します。下のコマンドでテキストエディタを起動します。nanoというのがRaspberry Pi OSにプリインストールされているテキストエディタです。/etc/samba/smb.confがsambaの設定ファイルです。
sudo nano /etc/samba/smb.conf
コマンドを入力すると、下のようにテキストエディタが開きます。
カーソルキーで一番下までスクロールさせて以下のように追記します。
[NAS] path = 「公開するフォルダのパス」 read only = no browseable = yes guest ok = yes guest only = yes force user = pi
pathには公開するフォルダのパスを指定します。今回は外付けのUSB HDDが上で紹介した記事のように自動マウントされている場合には「/media/pi/ボリュームラベル/NAS」です。今回の設定では外部からNASにアクセスする時に認証なしのゲストアクセスできるようにしています。
Ctrl + Xを押してエディタを終了させようとすると、保存するかを聞いてきますので「Y」を入力します。
保存するファイルを聞いてきます。上書きしますので、そのままenterキーを押してください。
テキストエディタが閉じますので、次のコマンドでSambaを再起動して完了です。
sudo systemctl restart smbd
WindowsからNASへのアクセス
Windowsのエクスプローラーの上部に「\\raspberrypi\nas」(Raspberry Pi Imagerで指定したホスト名と公開したフォルダ名。ホスト名にlocalはなくてOK)と入力するとアクセスできるはずなのですが、恐らく「ネットワーク資格情報の入力」というウインドウが表示されてユーザー名とパスワードを要求されます。raspberryのIDとパスワードを入力すればアクセスできるのですが、Sambaの設定に「guest ok = yes」と記述してゲストアクセス可能にしているはずなのにおかしいですよね?私もSambaの設定がまずいのかとかなり悩みましたが、実はSamba側の問題ではなくWindowsの仕様の問題ですので、この場合には下記の記事を参考に対応してください。
この設定を行ったか、もしくは「ネットワーク資格情報の入力」でIDとパスワードを入力した場合には下記のようにNASフォルダ内にアクセスできます。
あらかじめ入れておいた「見えるかい?.txt」も見えていますね。読み書きして動作確認してください。
NASに接続したHDDの自動スリープ(スピンダウン)
USB HDDが自律的にスリープ(スピンダウン)する製品ではない場合、そのまま放っておくとずっとHDDが回転し続けるため、無駄な電力を消費し、騒音を発し続けます。スピンダウンはそれ自体がHDDにダメージを与えるとされていますので、頻繁にアクセスする場合には回しっぱなしにしておくのが良いのですが、一般人が個人的に使用する場合には頻繁にはアクセスしないと思いますので、一定時間、例えば30分とかアクセスがなかったらスピンダウンするように設定しておくのが良いでしょう。下記の投稿にて詳しく解説しています。
この通り、外付けドライブがマウントされた状態からなら、Sambaのインストール、設定ファイルへの記述、再起動だけでNASが完成します。簡単です。Raspberry Piもだいぶ高価になってしまいましたが、それでも出来合いのNAS製品やミニPCなどに比べれば全然安価にできます。ただ、この手順自体は簡単なのですが、ひとたびトラブルが発生したらLinux初心者だと厳しいものがあると思います。それも込みでやってみたい!という人は是非チャレンジしてみてください。自分で構築したシステムが生活の役に立つのは満足度が高いですよ。逆に不安なく単にNASを運用したいだけであれば、既製品のNASやWindowsのミニPCなどを用意するのが良いでしょう。
このNASフォルダをネットワークドライブに割り当てておくととても便利です。Raspberry Pi 5ならちょっと遅めの外付けHDDくらいの速度でアクセスできますので、まるでローカルドライブのように使えますよ。