Raspberry Pi Zero 2 Wで外付けHDDをNAS化

ラズパイでNAS化 DX化
ラズパイでNAS化

はじめに

仕事場を別棟に移動する予定なので、仕事場⇔外付けHDD⇔自宅という環境を作りたくて方法を調べていました。また、iPhoneからもアクセスしたいなぁなんて考えてもいたら、現状の外付けHDDという資源を生かしつつ比較的簡単にできる方法に、Raspberry Pi を使って外付けHDDをNAS化するという方法を実行してみる事にしました。

今回はその手順を紹介しますね。

必要なもの

NAS構築を始める前に、準備した機材とソフトウェアを紹介します。

ハードウェア

  • Raspberry Pi Zero 2 W(本体)
  • microSDカード(32GB以上推奨)
  • 外付けHDD(USB接続、容量は用途に応じて)
  • USB電源アダプター
  • PC(初期設定用)

ソフトウェア

  • Raspberry Pi Imager(公式サイトからダウンロード)

Raspberry Pi OSのインストール

まず、Raspberry PiにOSを作業PCにインストールする作業から始めます。この工程では、公式ツールのRaspberry Pi Imagerを使用することで、簡単かつ確実にOSを書き込むことができます。

Raspberry Pi Imagerのインストール

公式サイト(https://www.raspberrypi.com/software/)から、使用しているPC(Windows/Mac/Linux)に対応したRaspberry Pi Imagerをダウンロードし、インストールします。

OSの書き込み設定

microSDカードを作業用PCにセットして、Raspberry Pi Imagerで以下の設定を行います。

OS選択

  • 「Raspberry Pi OS(32-bit)」を選択します。

ストレージ選択

  • SDHC Card(microSDカード)を選択します。

詳細設定

以下の項目を設定します。

  • ホスト名: raspi-nas(任意の値)
  • ユーザー名: user(任意の値)
  • パスワード: 任意の安全なパスワード
  • ロケーション: Tokyo
  • SSHを有効化: 「パスワード認証を使用」にチェック
  • Raspberry Pi Connect: OFFのまま

設定完了後、「書き込む」をクリックしてOSをmicroSDカードに書き込みます。書き込みが完了したら、microSDカードをRaspberry Piに挿入します。

Raspberry Piの初期設定

起動確認

Raspberry Piに電源を接続し、起動を待ちます。数分後、PCのターミナル(コマンドプロンプト)から以下のコマンドで接続確認を行います。※この時はまだ外付けHDDは接続しません。

ping raspi-nas.local

応答があれば、正常に起動しています。

SSH接続

以下のコマンドでSSH接続します。Raspberry Pi Imagerで設定したユーザー名ホスト名で接続します。

ssh user@raspi-nas.local

初回接続時は接続確認のメッセージが表示されるため、yesと入力してEnterキーを押します。その後、設定したパスワードを入力してログインします。

システムのアップデート

セキュリティと安定性を確保するため、OSを最新状態にアップデートします。

sudo apt update
sudo apt upgrade -y

この作業には数分から数十分かかる場合があります。

外付けHDDの接続とフォーマット

システムの準備ができたら、NASのメインストレージとなる外付けHDDを設定します。

HDDの認識確認

外付けHDDをRaspberry PiのUSBポートに接続し、以下のコマンドで認識を確認します。

lsblk

sdasda1といったデバイスが表示されれば、HDDが正常に認識されています。

ファイルシステムの確認

次に、HDDの現在のファイルシステムを確認します。

lsblk -f

私の場合は以下のように表示されましたので、NTFSフォーマットであることがわかりました。

sda			
└─sda1      ntfs      3.6T     0% /media/user/disk			

NTFSなど、Linux以外のファイルシステムでフォーマットされている場合は、ext4に再フォーマットする必要があります。

ext4フォーマットの実行

NAS専用ストレージとして最適なext4ファイルシステムにフォーマットします。注意点として、この作業を行うとHDD内の全データが消去されます

ステップ1: HDDのアンマウント

sudo umount /dev/sda1

ステップ2: ext4でフォーマット

sudo mkfs.ext4 /dev/sda1

途中で確認メッセージが表示されたら、yを入力してEnterキーを押します。

ステップ3: マウント用ディレクトリの作成

sudo mkdir -p /mnt/nas

ステップ4: UUIDの確認

自動マウント設定に必要なUUIDを確認します。

lsblk -f

sda1の行に表示されるUUID(例: a1234567-60b1-43c2-d8bd-efg247hi0j00)をメモまたはコピーします。

ステップ5: 自動マウント設定

システム起動時に自動的にHDDをマウントするよう設定します。

sudo nano /etc/fstab

ファイルの最後に以下の行を追加します(UUIDは先ほど確認した値に置き換えてください)。

UUID= a1234567-60b1-43c2-d8bd-efg247hi0j00  /mnt/nas  ext4  defaults,nofail  0  2

保存はCtrl + OでEnterキー、終了はCtrl + Xです。

ステップ6: マウントの確認

設定が正しく行われたか確認します。

sudo mount -a
df -h

/dev/sda1/mnt/nasにマウントされていれば成功です。

ステップ7: 所有権の変更

ユーザーがファイルを自由に読み書きできるよう、所有権を変更します。

sudo chown -R user:user /mnt/nas

確認コマンド:

ls -ld /mnt/nas

drwxr-xr-x user userと表示されればOKです。

Sambaのインストールと設定

HDDの準備が整ったら、Windowsやスマートフォンからアクセスできるよう、Sambaをインストールします。

Sambaのインストール

Sambaは、LinuxシステムをWindowsのネットワークドライブとして使用可能にするソフトウェアです。

sudo apt update
sudo apt install -y samba samba-common-bin

インストール確認:

smbd --version

バージョン情報が表示されれば、正常にインストールされています。

Samba設定ファイルの編集

Sambaの動作を定義する設定ファイルを編集します。

sudo nano /etc/samba/smb.conf

ファイルの最後に以下の内容を追加します。

[nas]
path = /mnt/nas
browseable = yes
writable = yes
guest ok = no
create mask = 0664
directory mask = 0775

各項目の意味は以下の通りです。

  • path: 共有するディレクトリのパス
  • browseable: ネットワーク上で表示するか
  • writable: 書き込み可能にするか
  • guest ok: ゲストアクセスを許可するか(noで認証必須)
  • create mask: 新規ファイルの権限
  • directory mask: 新規ディレクトリの権限

保存して終了します。

Sambaユーザーの追加

Sambaにアクセスするためのユーザーを登録します。※PCやiPhoneからアクセスするときに使用するユーザとパスワードです。

sudo smbpasswd -a user

パスワードを2回入力します(Windows等からアクセスする際に使用します)。

ユーザーを有効化します。

sudo smbpasswd -e user

Sambaの起動と有効化

Sambaサービスを再起動し、システム起動時に自動起動するよう設定します。

sudo systemctl restart smbd
sudo systemctl enable smbd

動作確認:

sudo systemctl status smbd

active (running)と表示されれば、正常に動作しています。

ネットワークからのアクセス方法

Sambaの設定が完了したら、実際に各デバイスからアクセスしてみましょう。

Raspberry PiのIPアドレス確認

接続に必要なIPアドレスを確認します。

ip -4 addr show wlan0

inetの後に表示される数値(例: 192.168.10.123)がIPアドレスです。

Windowsからのアクセス

Windowsのエクスプローラーを開き、アドレスバーに以下のように入力します。

\\192.168.10.123

ユーザー名とパスワードの入力を求められたら、Sambaユーザーとして設定した認証情報を入力します。

iPhoneからのアクセス

iPhoneの「ファイル」アプリからもアクセス可能です。

  1. 「ファイル」アプリを開く
  2. 右上の「︙」→「サーバへ接続」を選択
  3. サーバ名に以下を入力
smb://192.168.10.123
  1. ユーザー名とパスワードを入力

これで、スマートフォンからもファイルのアップロード・ダウンロードが可能になります。

運用上の注意点

NASの構築は完了しましたが、長期運用において重要な注意点があります。

HDDの連続回転問題

実運用で確認したところ、Raspberry Pi Zero 2 Wは常にUSBポーリングを行うため、接続されたHDDが回転し続ける現象が発生しました。

これは、Raspberry Piがデバイス存在確認(Keep Alive)信号を継続的に送信し、USB-SATAチップがこれを「アクセスがある」と誤認識するためです。

対策と運用方法

HDDの寿命を考慮すると、使用しないときは電源を切る暫定運用としました。

使用しないときはシステムを停止する

sudo shutdown now

このコマンドでRaspberry Piをシャットダウンすると、HDDの回転も停止。必要なときだけ電源を入れて使用することで、HDDの寿命を延ばすことができます。

まとめ

Raspberry Pi Zero 2 Wを使用した外付けHDDのNAS化手順を紹介しました。低コストで実用的なNASを構築できる一方、HDDの連続回転という運用上の課題が残る結果となりました。今後、何らかの対応を考えたいと思います。