1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi 5でNASを自作する方法 - SSD起動+Tailscaleで外出先からもアクセスできる構成を構築

1
Posted at

Google DriveやiCloudの容量が足りない。市販NASは外部アクセスに制限がある。
pCloudはファイルの競合で大事なデータが消えた——。

そんな不満を解消すべく、Raspberry Pi 5(8GB)NVMe SSD 1TB で自宅NASを構築しました。Tailscaleを使えば、外出先のMacやスマホからも自宅のファイルにアクセスできます。

この記事では、パーツ選定からセットアップ完了まで、実際のコマンドを交えて解説します。


なぜRaspberry Pi NASなのか

市販NAS・クラウドストレージの限界

筆者はこれまで、Buffalo LS510DシリーズのNASと、クラウドストレージのpCloudを使ってきましたが、どちらも実用上の問題がありました。

BuffaloNAS.comの制限:

  • 外部アクセスはBuffaloNAS.com経由のみで、速度が遅い
  • Finderにディレクトリを表示できない
  • FTPでも接続できない
  • ドラッグ&ドロップでのアップロード・ダウンロード不可
  • 1ファイルずつしかアップロード・ダウンロードできない
  • Windows/Mac間のファイル共有として機能しなかった

pCloudの問題:

  • [conflict] ファイルを大量に生成しすぎ
  • 同期の競合でファイルが消失しすぎ
  • なので、ブラウザからアップロードするバックアップ用途に限定されてしまい、同期フォルダとしては使えなかった。

Raspberry Pi NASのメリット

  • 制限なしなLAN内と同じ速度でフルアクセス
  • 月額料金ゼロな電気代は月100円程度
  • 拡張性なDocker、Nextcloud、APIサーバーなど自由に追加可能
  • プライバシーなデータはすべて自分の手元

購入パーツと費用

パーツ 製品 価格(税込)
本体 Raspberry Pi 5 / 8GB(SC1112) 23,375円
ストレージ Raspberry Pi 公式SSD 1TB(SC1984, 2230) 22,770円
ケース+HAT+冷却 GeeekPi メタルケースセット 4,601円
電源 USB電源アダプター 5V 5A Type C 2,420円
OS書き込み用 Apacer microSD 32GB 1,650円
合計 約54,816円

その他、USB microSDカードリーダー(100円ショップ)、LANケーブルが必要です。


パーツ選定のポイント

なぜ8GBモデルなのか

NAS用途(Samba + Tailscale)だけなら4GBで十分です。しかし、将来的にDockerで複数コンテナを動かしたい場合は8GBが必要になります。

たとえば、Puppeteer(ヘッドレスChromium)を使うCritical CSS生成APIをDockerで動かす場合、Chromiumだけで500MB〜1.5GBのメモリを消費します。4GBではNASと同時に動かすのが厳しくなります。

なぜ公式SSD(2230サイズ)なのか

Raspberry Pi 5のPCIeは2.0 x1(最大約450MB/s)なので、Gen4やGen5のSSDは性能過剰です。公式SSDはPCIe Gen3設計で消費電力が低く、RPi5のM.2 HAT+経由の5W電力制限にも最適化されています。

また、2026年2月時点ではNAND不足でGen3 SSDがほぼ終売・品薄状態でした。公式SSDは動作保証があり、相性問題もゼロです。

GeeekPiケースセットのコスパ

このセットには公式M.2 HAT+、アクティブクーラー、メタルケースが含まれています。バラ買い(HAT 2,200円 + クーラー 1,500円 + ケース 2,000円 = 5,700円)よりお得です。


組み立て

GeeekPiケースセットの組み立ては8ステップで、特に難しい点はありません。製品画像に手順が記載されています。

  1. アクティブクーラーをRaspberry Pi基板に取り付け
  2. FPCケーブルの向きを確認(✕印と✓印あり)
  3. FPCケーブルを接続
  4. スペーサーを取り付け
  5. M.2 HAT+にSSD(2230)を装着
  6. HAT+を基板の上に固定
  7. ケースに収める
  8. ネジで固定して完成

組み立て後のポートの位置確認:

  • USB-C Power INな電源アダプタ接続用
  • EthernetなLANケーブル接続用
  • TF card slotなmicroSD挿入口
  • USB 3.0 / 2.0な将来の拡張用(NAS構築時は使わない)

思ったより大きくない


OS書き込みと初期設定

必要なもの

  • PC(Windows / Mac)
  • USB microSDカードリーダー
  • microSDカード(32GB)

**補足:**PCにmicroSDスロットがない場合は、USB microSDカードリーダーが必要です(100均で購入可)。また、初回起動時にRaspberry PiとルーターをLANケーブルで有線接続します。NAS用途では常時有線がおすすめです。

Raspberry Pi Imagerのインストール

PCで https://www.raspberrypi.com/software/ にアクセスし、Raspberry Pi Imagerをダウンロード・インストールします。

書き込み設定

Imagerを起動し、以下の順に設定します。

1. デバイス選択

「Raspberry Pi 5」を選択。

2. OS選択

「Raspberry Pi OS (64-bit)」(Recommended)を選択。

3. ストレージ選択

microSDカードを選択。外付けHDDなど他のドライブを間違えないよう注意してください。

4. カスタマイズ設定

「次へ」を押すと「OSのカスタマイズをしますか?」と聞かれるので「設定を編集する」を選択。以下を設定します。

項目 設定値
ホスト名 naspi5(任意の名前)
Capital city Tokyo (Japan)
Time zone Asia/Tokyo
キーボードレイアウト jp
ユーザー名 任意
パスワード 任意(SSH接続に使用)
Wi-Fi SSID 自宅のSSID
Wi-Fiパスワード 自宅のWi-Fiパスワード
SSHを有効化する ON(重要!)
パスワード認証を使う 選択
Raspberry Pi Connect OFF(Tailscaleを使うため不要)

すべて設定したら書き込みを実行。数分で完了します。


NVMe SSDへのOS移行

初回起動とSSH接続

  1. 書き込み済みmicroSDをRaspberry Piに挿入
  2. LANケーブルでルーターと接続
  3. 電源アダプタを接続(自動起動)
  4. 2分ほど待ってから、PCのターミナルで接続
ssh [ユーザー名]@naspi5.local

初回接続時は「Are you sure you want to continue connecting?」と聞かれるので yes と入力。パスワードを入力してログインします。

**PCとRaspberry Piを直接USBで繋ぐ必要はありません。**PCとRaspberry Piが同じルーター配下(同じネットワーク)にあれば、PCからSSHでアクセスできます。PCはWi-Fi接続でも問題ありません。

SSDの認識確認

lsblk

以下のような出力が表示されればOKです。

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
mmcblk0     179:0    0  29.2G  0 disk
├─mmcblk0p1 179:1    0   512M  0 part /boot/firmware
└─mmcblk0p2 179:2    0  28.6G  0 part /
nvme0n1     259:0    0 953.9G  0 disk

nvme0n1 が表示されていれば、NVMe SSD(約1TB)が認識されています。

microSDからSSDへクローン

まずgitをインストールし、rpi-cloneを取得します。

sudo apt update && sudo apt install -y git
git clone https://github.com/billw2/rpi-clone.git
sudo cp rpi-clone/rpi-clone /usr/local/sbin/

rpi-cloneを実行します。

sudo rpi-clone nvme0n1

注意: NVMeデバイス名が数字で終わるため警告が出ますが、yes で続行してください。

ただし、rpi-cloneはNVMeのパーティション名(nvme0n1p1 形式)を正しく扱えずエラーになる場合があります。その場合は dd コマンドで直接クローンします。

sudo dd if=/dev/mmcblk0 of=/dev/nvme0n1 bs=4M status=progress

31GBのコピーに約5〜10分ほどかかります。途中で中断しないでください。

SSDパーティションの拡張

ddでコピーしただけでは、SSDの容量がmicroSD分(約29GB)しか使われていません。残りの領域を使えるようにします。

sudo parted /dev/nvme0n1 resizepart 2 100%

resize2fs を実行する前に、ファイルシステムのチェックが必要です。

sudo e2fsck -f /dev/nvme0n1p2
sudo resize2fs /dev/nvme0n1p2

これで953GB全体が使えるようになります。


SSDブートの設定

現在はまだmicroSDから起動しているので、SSDから起動するよう変更します。

sudo raspi-config

以下の順に操作します。

  1. 6 Advanced Options → Enter
  2. A4 Boot Order → Enter
  3. B2 NVMe/USB Boot → Enter
  4. EEPROMの更新確認 → Yes
  5. 「NVMe/USB is default boot device」と表示される → OK
  6. Finish → 再起動するか聞かれたら Yes

再起動後、SSH接続が切れますが、1〜2分後に再接続できます。

ssh [ユーザー名]@naspi5.local

SSDブートの確認

lsblk
nvme0n1     259:0    0 953.9G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part
└─nvme0n1p2 259:2    0 953.4G  0 part /     ← ここが / になっていれば成功

nvme0n1p2 のMOUNTPOINTSが / になっていれば、SSDから起動できています。


Sambaでファイル共有

インストール

sudo apt update && sudo apt upgrade -y
sudo apt install -y samba

**補足:**アップグレード中に master_preferences(Chromiumの設定ファイル)の更新を聞かれることがあります。NASとして使う場合は関係ないので、デフォルトの N(Enter)で進めてください。

共有フォルダの作成

sudo mkdir -p /srv/nas
sudo chown ユーザー名:[ユーザー名] /srv/nas

Samba設定

sudo nano /etc/samba/smb.conf

ファイルの一番下に以下を追加します。

[NAS]
   path = /srv/nas
   browseable = yes
   writable = yes
   valid users = [ユーザー名]
   create mask = 0644
   directory mask = 0755

Ctrl + O → Enter で保存、Ctrl + X で終了。

Sambaパスワードの設定

sudo smbpasswd -a [ユーザー名]

パスワードを設定します(SSH用と同じでもOK)。

サービス再起動

sudo systemctl restart smbd

Windowsからの接続テスト

エクスプローラーのアドレスバーに以下を入力。

\\naspi5\NAS

ユーザー名とSambaパスワードを入力すれば、共有フォルダが開きます。通常のフォルダと同じように、ドラッグ&ドロップでファイルの読み書きができます。


Tailscaleで外部アクセス

Tailscaleは無料のVPNサービスで、ポート開放不要・NAT越え自動で、外出先からも自宅NASにアクセスできるようにします。

Tailscaleの無料プラン(Personalプラン)では、1ユーザー・最大100デバイスまで利用できます。個人のNAS用途には十分です。

Raspberry Pi側

curl -fsSL https://tailscale.com/install.sh | sudo sh
sudo tailscale up

認証用のURLが表示されるので、PCのブラウザで開きます。Google / Microsoft / GitHubアカウントでログインすれば接続完了です。

TailscaleのIPアドレスを確認します。

tailscale ip -4

100.x.x.x 形式のIPアドレスが表示されます。これが外部からNASにアクセスするためのアドレスです。

PC側(Windows)

  1. https://tailscale.com/download からWindows版をダウンロード・インストール
  2. Raspberry Pi側と同じアカウントでログイン
  3. エクスプローラーで \\100.x.x.x\NAS にアクセス

MacやスマホからNASに接続

Macの場合

  1. Mac App StoreからTailscaleをインストール
  2. 同じアカウントでログイン
  3. Finderのメニューバーから 移動 → サーバへ接続(⌘+K)
  4. smb://100.x.x.x/NAS と入力して接続

iPhone / Androidの場合

  1. App Store / Google PlayからTailscaleアプリをインストール
  2. 同じアカウントでログイン
  3. ファイラーアプリ(iOSなら「ファイル」アプリ)からSMBサーバーに接続

Tailscaleの管理画面(https://login.tailscale.com/admin/machines)で、接続中のデバイス一覧を確認できます。


セキュリティ上の注意点

この構成をブログ等で公開する場合、以下の情報は隠すようにしてください。

必ず隠すべき情報

情報 理由
SSH / Sambaのパスワード 直接ログインされる
Wi-Fi SSIDとパスワード 自宅ネットワークに侵入される
Tailscale認証URL アカウント乗っ取りの可能性

できれば隠した方がいい情報

情報 理由
Tailscale IP(100.x.x.x) Tailscaleネットワーク内でしか到達できないが念のため
SSHフィンガープリント 中間者攻撃の判定に使われる可能性
MACアドレス・リンクローカルアドレス デバイス特定につながる

公開して問題ない情報

ユーザー名(GitHubで公開済みなら)、ホスト名、コマンド内容、lsblk の出力、パッケージインストール画面などは問題ありません。


今後の拡張

Raspberry Pi 5(8GB)ならではの拡張が可能です。

DockerでAPIサーバー

たとえば、Puppeteer(ヘッドレスChromium)を使ったCritical CSS生成APIをDockerで常時稼働させられます。Vercel HobbyプランのタイムアウT(10秒)に悩まされていた処理も、自前サーバーなら5分でも待てます。

# Dockerインストール
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER

既存のDockerfileはARM64(aarch64)環境でそのまま動作します。node:20-slim もChromiumもARM64版が自動的に使われます。

Nextcloud

自分だけのクラウドストレージ。WebUIでファイル管理やカレンダー、連絡先も扱えます。

Jellyfin

自宅メディアサーバー。動画や音楽をスマホやTVからストリーミング再生。

温度管理

NAS用途ではCPU負荷が低いため、GeeekPiのアクティブクーラーで十分です。気になる場合は以下のコマンドで温度確認できます。

vcgencmd measure_temp

50〜60℃台なら快適、70℃台でも正常です。


トラブルシューティング

rpi-cloneがエラーになる

rpi-cloneはNVMeデバイス(nvme0n1)のパーティション名形式を正しく扱えない既知の問題があります。mount: /mnt/clone: fsconfig() failed: /dev/nvme0n12: Can't lookup blockdev のようなエラーが出た場合は、rpi-cloneの代わりに dd コマンドでクローンしてください。

resize2fsで「Please run e2fsck first」と出る

dd でコピーした後は、ファイルシステムの整合性チェックが必要です。先に sudo e2fsck -f /dev/nvme0n1p2 を実行してから resize2fs を実行してください。

SSH接続で「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED」と出る

OSを再インストールするとSSHのホスト鍵が変わるため、以前接続したことのあるPCでこの警告が出ます。以下のコマンドで古い鍵を削除すれば接続できます。

ssh-keygen -R naspi5.local

まとめ

項目 結果
総費用 約54,000円(月額ゼロ)
ストレージ NVMe SSD 953GB
Windowsアクセス \\naspi5\NAS
Macアクセス smb://100.x.x.x/NAS
外部アクセス Tailscale経由でどこからでも
拡張性 Docker / Nextcloud / APIサーバー等

BuffaloNAS.comの制限(速度・ファイルサイズ・UIの制限)も、pCloudの同期競合問題も、すべて解消されました。

Raspberry Pi 5 + NVMe SSD + Tailscaleの組み合わせは、個人NASとして非常にバランスが良い構成です。月額クラウド料金から解放されたい方、自宅サーバーに興味がある方は、試してみてください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?