最近作った自作PCのデータ保存容量を増やそう思い内蔵HDDを購入しました。ですが「組んだPCをまた開けてHDDを増設するのが面倒だし、他のPCと共通で使えるようにしたい」と考え何か良い方法はないかと思っていたところ「NAS(Network Attached Storage)」というものがあると知りました。NASは簡単に言うと同じネットワーク内で接続できるファイルサーバみたいなものです。特に自宅などのWi-Fiネットワーク内にNASを構築すれば、無線でファイルサーバにアクセスできるのでケーブル要らずで便利です。さらに調べていくとRaspberry Piで簡単にNASを作れるということもわかりました。
前置きが長々となりましたが、そんな理由で今回はRaspberry Piを使ってNASを作ってみた備忘録になります。
では、始めます。
0:Raspberry PiとHDDの準備
Raspberry Piを普通に使うためにSDカードにOSを書き込んで最低限の環境を構築しておきます。以下の記事の内容を行っている前提で進めていきます。
またIPアドレスを固定していた方が何かと便利なので、以下の記事に沿ってIPアドレスを固定しておきます。
Raspberry Piに繋げるHDDはexFATでフォーマットしたいので、以下の記事に沿ってexFATでフォーマットしておきます。
1:マウント用ディレクトリの作成とHDDの認識確認
最初にHDDのマウント用ディレクトリを作成しておきます。
「/mnt」ディレクトリ配下であればなんでもよいと思いますが、自分の場合は「hdd01」というディレクトリ名にして作成しました。
$ mkdir /mnt/hdd01
以降は「/mnt/hdd01」に外付けHDDをマウントするという前提で進めます。
次にHDDをUSBケーブルでRaspberry Piに接続した状態で以下のコマンドを実行します。
$ sudo fdisk -l
このコマンドを実行すると色々出てきますが「/dev/sda1」や「/dev/sda2」と書かれているものが認識されているHDDになります。
以降は「/dev/sda1」のHDDをファイルサーバにするという前提で進めていきます。
2:exFATのHDDをマウントする
Raspberry PiでマウントさせたいHDDがexFATでフォーマットされたもの場合、そのままマウントコマンドを実行してもエラーになります。なので以下のコマンドを実行してexFATをマウントできるようにします。
$ sudo apt-get install exfat-fuse exfat-utils
上記コマンド実行後に以下のマウントコマンドを実行するとエラーなくマウントされます。
$ sudo mount /dev/sda1 /mnt/hdd01
これで「/mnt/hdd01」ディレクトリ配下にファイルを作成するとHDDに保存されるようになります。
HDDをラズパイから取り外したいときは、以下のコマンドでアンマウントさせてから取り外します。
$ sudo umount /mnt/hdd01
3:Sambaのインストール
いよいよ本題のファイルサーバの準備に入ります。
ファイルサーバにするために、今回はSambaをインストールします。
Sambaのインストールは以下のコマンドを実行します。
$ sudo apt install samba samba-common-bin
インストール途中で以下のような画面が出てきますが「いいえ」を選択します(参考ページより引用)。
これでSambaのインストールは完了です。
4:Sambaの設定ファイルの編集
最初に以下のコマンドでデフォルトのSamba設定ファイルのバックアップを取っておきます。
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
エディタはなんでもいいですが、今回はnanoを使って設定ファイルを編集していきます。
$ sudo nano /etc/samba/smb.conf
以下の記述をファイルの最後に追記します。
[nas_hdd1] comment = nas path = /mnt/hdd01 public = no read only = no browsable = yes force user = pi
少し解説しておくと、各項目は以下のような意味になっています。
・[nas_hdd1]:外部からアクセスした時に表示されるディレクトリ名。括弧の中の文字列は任意。
・comment:アクセスした時に表示されるディレクトリ名にマウスカーソルを合わせた時に出てくる説明。
・path:ファイルサーバにするディレクトリパス。
・public:yesだとパスワードなしのゲストユーザでも利用可能。
・read only:yesだと読み込みのみ。noだと書き込み可能。
・browsable:yesだと利用可能な共有の一覧に表示。noだと非表示。
・force user:ファイル操作をする時のUNIX上でのユーザ。
詳しい説明は以下のページを参照してください。
編集が完了したらファイルを上書き保存してエディタを終了させます。
次に以下のコマンドでSambaを再起動させ、更新した設定ファイルを有効にします。
$ sudo systemctl restart smbd
5:Sambaのユーザとパスワード設定
Samba用のユーザとパスワードを設定します。
「pi」という名前のユーザでSambaのパスワードを設定するコマンドは以下の通りです。これはSamba用のユーザとパスワードなのでRaspberry Piのユーザとパスワードとは関係ありません。なので別のパスワードにしておくのが良いです。
$ sudo smbpasswd -a pi
パスワードを設定したらSambaを再起動させます。
$ sudo systemctl restart smbd
パスワードが設定されているユーザ一覧は以下のコマンドで確認できます。今回であれば「pi:1000:」というように表示されるはずです。
$ sudo pdbedit -L
これでSambaの設定は全て終了です。
ちなみにRaspberry Piが起動すると自動的にSambaも起動されます。
Sambaが起動しているかどうかは以下のコマンドで確認できます。
$ ps aux | grep smbd root 679 7.3 3.8 44888 16824 ? Ss 07:17 0:01 /usr/sbin/smbd --foreground --no-process-group root 724 0.0 1.2 41964 5720 ? S 07:17 0:00 /usr/sbin/smbd --foreground --no-process-group root 726 0.0 1.1 41956 5272 ? S 07:17 0:00 /usr/sbin/smbd --foreground --no-process-group root 739 0.0 1.3 44888 6016 ? S 07:17 0:00 /usr/sbin/smbd --foreground --no-process-group pi 814 0.0 0.4 3900 2096 pts/0 S+ 07:17 0:00 grep --color=auto smbd
ちなみにSambaを止めるコマンドは以下の通りです。
$ sudo systemctl stop smbd
6:Macからのアクセス
まずSambaを起動させた状態のRaspberry Piと同じWi-FiにMacのPCを接続します。
その後Finderを立ち上げて「移動」→「サーバへ接続」を選択します。
「サーバへ接続」のウインドウが表示されるので「smb://IPアドレス」を入力して「接続」ボタンをクリックします。
ユーザ名とパスワードを要求されるので「Samba用のユーザとパスワード」を入力して「接続」ボタンをクリックします。ちなみにSambaの設定ファイルで「public = no」と設定しているのでゲストユーザでの接続はできません。
ボリューム一覧が表示されるので、今回設定した「nas_hdd1」を選択してOKをクリックします。
これでMacから普通のフォルダのようにアクセスできるようになります。
7:Windowsからのアクセス
まずSambaを起動させた状態のRaspberry Piと同じWi-FiにWindowsのPCを接続します。
エクスプローラーを開いてネットワークをクリックします。
初めてネットワークを開くと以下のように表示されますが「OK」をクリックします。
するとエクスプローラーの上の方に赤枠で囲ったメッセージが表示されるので、この部分をクリックします。
「ネットワーク探索とファイル共有の有効化」をクリックします。
以下の表示が出るので「はい」の方を選択します。
エクスプローラーの右上にある更新ボタンをクリックすると現在のネットワーク上から見える機器が表示されるので、その中にある「RASPBERRYPI」をダブルクリックします。
Macの時と同じようにユーザ名とパスワードを要求されるので「Samba用のユーザとパスワード」を入力して「OK」ボタンをクリックします。
アクセスできるフォルダ一覧が出てくるので、今回設定した「nas_hdd1」をダブルクリックすれば普通のフォルダと同じように使うことができます。
以上がRaspberry PiにSambaを入れてNASにする方法です。
割と長い内容になってしまいましたが、基本的には「Sambaを入れて、ファイルサーバにするディレクトリの設定をして、ユーザを作成して、Sambaを起動させる」だけです。
初めてSambaを触ったので戸惑った部分もありますが、コマンドを叩ける程度の知識の自分でも簡単にNASを構築できました。
自分はRaspberry Pi Zero Wを使っており、上りは1.5MB/s、下りは4MB/sぐらいなのでちょっと遅い気もしますが、そんなに重くないファイルであれば問題なく使えます。
もう少し速度にこだわりたいならRaspberry Pi 4を使用するのもいいかもしれません。
・参考資料