Raspberry Pi 5 を NVMe 起動の常時稼働ノードにする|SSD・HAT・microSD を役割から選んだ判断と初回起動のつまずき
Raspberry Pi 5 16GB を、Pimoroni の NVMe Base に載せた NVMe SSD から起動させ、24 時間動かす収集・制御ノードにした。推論はさせない。負荷は軽いが、毎日確実に動くことが求められる。
結論は 2 つある。部材は役割を先に決めると比べる軸が 2〜3 個に減り、SSD は耐久と給電、microSD は起動の足場という基準で決まった。初回起動で不具合に見えた 2 つの症状(Imager に NVMe が出ない、ファンが回らない)のうち、ファンは仕様どおりの動作で、Imager の件も表示の絞り込みで説明がつく見込みが高い。
構築は 2026 年 8 月である。本文のコマンドは、構築時に実行した NVMe への書き込みを除いて状態を読むだけのもので、出力は 2026 年 11 月に稼働中の同じ機体で実行した結果であり、構築時の記録ではない。構成は次のとおりで、部材 8 点の総額は税込で約 9 万円(2026 年 8 月の購入時)だった。部材ごとの価格と購入先は扱わない。
| 役割 | 型番 |
|---|---|
| 本体 | Raspberry Pi 5 16GB |
| NVMe アダプタ | Pimoroni NVMe Base(PIM699) |
| SSD | Lexar NM620 512GB(LNM620X512G-RNNNG) |
| ケース | Pimoroni NVMe Base 対応アルミケース(PIM771) |
| 冷却・電源 | 公式アクティブクーラー、公式 27W USB-C 電源 |
| microSD | 共立プロダクツ RSWD70(Raspberry Pi OS インストール済み 32GB) |
| ケーブル | 公式 Micro-HDMI–HDMI ケーブル(初回の設定でモニタにつなぐ) |

1. NAS のコンテナではなく Pi を足す
載せる予定の仕事は、開示情報のポーリングと raw の保全、オープンデータの定期取得、Windows で動かしてきた Web 監視スクリプト、バッチの定期実行である。重い処理は LLM ゲートウェイ経由で外へ出す。手元には Synology NAS のコンテナで動くゲートウェイと、推論を担う EdgeXpert GB10 があり(設計と運用は別稿)、収集ノードはそこに足す 1 台になる。
NAS の Container Manager に置けば機材は要らないが、DSM の更新や再起動で NAS ごと止まる。NAS の停止中も取得を続けるのが収集ノードの役目なので、止まる理由を共有する同居は避けた。Pi は NAS とは別の理由で止まる。この分離に価値を見ないなら NAS で足りる、と筆者は考えている。Windows 端末を常時起動しておく案よりも健全だと見た。
Pi は稼働しているが、収集バッチの移設はこれからである。
2. HAT は 2280 を受けるものを選ぶ
公式の M.2 HAT+ は M.2 デバイスへ最大 3A を供給できるが、受けるのは 2230 と 2242(Compact 版は 2230)だけである。市販品に多い 2280 が使えず、候補が細り、耐久の高い 2280 へ載せ替える道も閉じる。
それで 2230〜2280 を受ける NVMe Base を採った。本体の下に付け、FFC(フラットケーブル)で PCIe コネクタにつなぐ。代償は給電で、Raspberry Pi の PCIe コネクタ規格書(RP-008298)では 5V はピン 1・2 で各 500mA、計 1A(約 5W)である。Pi 5 では速度を生かせない大電力の Gen4 x4 品は、ここで候補から落とした。

3. SSD は速度でなく耐久とコントローラで選ぶ
公式ドキュメントでは Pi 5 の PCIe は Gen 2.0 の 1 レーンで、Gen 3.0 は設定で有効にできるが認証外とされる。帯域はここで頭打ちなので速度は評価から外し、認識と起動、給電の枠、書き込み耐久(TBW)を見た。QLC 品は連続書き込みで失速しやすいので、筆者は TLC を条件にした。
認識と起動の手がかりは、NVMe Base の商品ページの「Drive compatibility」の表(2026 年 11 月時点)である。通常 1 ロット 1 台を試した結果で網羅的な認定ではない、と断り書きがある。上に挙がっていない WD の Green・Blue・Red・Black は Avoid とされ、SN350 と SN570 は起動を妨げたとある。250〜256GB 品は Maybe と Avoid に多い。ここから筆者は、結果を左右するのは NAND よりコントローラとファームウェアで、小容量品に問題が寄る、と読んだ。これは筆者の読みで、Pimoroni の結論ではない。
表に載る品から残したのは KIOXIA EXCERIA G2 1TB(公式の TBW 400TB)、Lexar NM710 1TB、NM620 で、選んだのは NM620 512GB である。Lexar の公式仕様は Gen3 x4・3D TLC・TBW 250TB・保証 5 年。DRAM を持たず HMB(ホストのメモリを借りる方式)を使うことは、2021 年のレビューに書かれている(公式仕様には無い)。Gen3 品なので給電の枠にも収めやすいと見た。
ただし同じ型番でも中身は変わりうる。そのレビューの個体のコントローラは Innogrit IG5216 だった。手元の個体が何を名乗るかを確かめた。
cat /sys/class/nvme/nvme0/model /sys/class/nvme/nvme0/firmware_rev
lspci -nn | grep -i non-volatile
Lexar SSD NM620 512GB
SN15098
0001:01:00.0 Non-Volatile memory controller [0108]: Shenzhen Longsys Electronics Co., Ltd. Lexar NM610 PRO NVME SSD (DRAM-less) [1d97:1202] (rev 01)
SSD 自身は NM620 512GB(ファームウェア SN15098)を名乗るが、lspci は別製品の名前を出す。lspci の名前は ID の表(pci.ids)から引いたもので、手元の 1d97:1202 には「Lexar NM610 PRO」が、NM620 の名前は 1d97:1d97 など別の ID に付いている。ID が pci.ids の NM620 の ID と違うので、pci.ids に NM620 として載っている品と中身の構成が違う可能性がある、と筆者は見ている。コントローラ名は確かめていない。表に型番が載っていても、試された個体と同じ構成とは限らない。
4. 容量の前提を役割から見直す
当初は 1TB を前提にしていた。NM620 でも、Lexar の公式仕様で TBW は 512GB の 250TB に対し 1TB は 500TB で、空きが多いほど書き込みにも余裕が出る。ところが 2026 年 8 月の筆者の購入時の価格では、1TB と 512GB の差が見込みよりずっと大きかった。
そこで Pi に何を置くかから引き直した。長期の raw は NAS に置く設計で、Pi に要るのは OS とコンテナ、作業領域、直近の取得分、DuckDB の一時領域くらいである。512GB で収まり、足りなければ NAS へ寄せればよい。1TB の利点は耐久の余裕だけになった。その耐久も、仮に毎日 50GB 書くと 250TB ÷ 50GB/日 ≒ 5,000 日、約 13.7 年である(計算であって実測ではない)。
5. microSD は起動の足場として選ぶ
root が NVMe なら、microSD を使うのは初回起動、NVMe へ OS を書くときの足場、ブートローダ(EEPROM)の書き直しだけである。ブートローダの公式の基本的な復旧手順は、Imager の Bootloader イメージを microSD に書いて起動するものだ。要るのは性能や耐久より、確実に読めることと手間の少なさになる。
公式カードは国内で入手しにくく、ロット管理された産業用カードは販売サイトが開けなかった。民生の高耐久カードも 6 製品比べたが、筆者が見た範囲ではどれも車載カメラや監視カメラの連続記録向けで、A1・A2 の表示が無かった。SD で OS を常用しない今回の役割には、高耐久は効かない。
決めたのは比較に入れていなかった Raspberry Pi OS インストール済みカード(RSWD70)で、PC でイメージを書く手間が無く、店頭で買えた。中身は KLEVV NEO 32GB(UHS-I U1)の汎用品だったが、挿せばデスクトップ版が起動し、NVMe への書き込みまで務めた。今は復旧用に保管している。
6. 組み付けは仮組みしてから締める
NVMe Base が下に付くぶん、収まるケースは限られ、Pimoroni の対応ケース(PIM771)にした。アルミ製でクーラーの空間があり、microSD は蓋を開けないと触れない。


組み立てで最も手間取ったのはケースへの組み付けである。付属の紙の説明書は無かった。英語の写真付き手順(Assembling the NVMe Base Case)は Pimoroni の Learn にあるが、筆者は組み立て時に見つけられず、ボルトの向きとスタンドオフの段を 1 つずつ試した。ケース・NVMe Base・本体を長さの違うスタンドオフで重ねる 3 層構造で、順を誤ると分解し直しになる。本締めの前に仮組みし、FFC の取り回しと蓋の閉まりを確かめてから締めるとよい。


電源は公式が Pi 5 に推奨する 27W のものにした。公式は、低品質な電源がストレージの中身を壊しうると注意している。


7. 初回起動のつまずきは仕様から疑う
Imager に NVMe が出ない
microSD で起動したデスクトップで Raspberry Pi Imager を開くと、書き込み先に SSD が無かった。M.2 の規格違い(SATA)を疑いかけたが、NVMe Base も NM620 も PCIe・NVMe である。カーネルが列挙できていれば lsblk に nvme0n1 が出るので、ハードと画面のどちらの問題かはここで分かれる。
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT
NAME SIZE FSTYPE MOUNTPOINT
loop0 2G swap
zram0 2G swap [SWAP]
nvme0n1 476.9G
├─nvme0n1p1 512M vfat /boot/firmware
└─nvme0n1p2 476.4G ext4 /
2026 年 11 月の稼働中(NVMe から起動し、microSD は抜いてある)の出力なので、パーティションと root が並ぶ。見るのは nvme0n1 の行の有無である。
原因として最も考えられるのは Imager の絞り込みである。rpi-imager の PR #969(2024 年 12 月マージ。リリースでは v1.9.4 から)で、システムと判定したドライブを一覧から外すチェックボックス「Exclude System Drives」が画面に入り、既定でオンになった。Pi 5 の M.2 HAT+ の NVMe がシステムドライブとして外される件は、issue #1420 で開発者が答えている。ただしその報告者はチェックを外しても NVMe が出なかったと書いており、外せば必ず出るとは言えない。筆者は当時この項目を知らず、試してもいない。使った Imager の版も記録していない。原因は確かめられていない。
筆者は Imager を使わず、Pi 上でコマンドを使って公式の Lite イメージを NVMe に直接書き込んだ。常時稼働が前提なので、NVMe にはデスクトップ版でなく Lite 版を選んだ。GUI を持たないぶん軽く、攻撃面も小さいと考えたからである。実行したのは次のコマンドで、公式の最新の Lite(64bit)イメージを取得しながら展開し、そのまま NVMe に書く。イメージを microSD に保存しないので、足場の SD には書き込みが起きない。
sudo apt install -y xz-utils
curl -L https://downloads.raspberrypi.com/raspios_lite_arm64_latest \
| xzcat | sudo dd of=/dev/nvme0n1 bs=4M conv=fsync status=progress
sudo partprobe /dev/nvme0n1
lsblk -o NAME,SIZE,FSTYPE /dev/nvme0n1
dd は SSD の中身をすべて消す。of= を誤れば起動中の microSD を消すので、書く前に lsblk で nvme0n1 を確かめる。raspios_lite_arm64_latest はその時点の最新版へ転送される URL で、2026 年 11 月の確認では trixie の Lite(2026-10-06 版)を指していた。書き込んだ後は電源を切って SD を抜き、NVMe から起動した(前掲の lsblk と次の findmnt の出力のとおり)。
BOOT_ORDER は右の桁から読む
vcgencmd bootloader_config | grep BOOT_ORDER
findmnt -no SOURCE /
BOOT_ORDER=0xf461
/dev/nvme0n1p2
BOOT_ORDER は右の桁から試し、1 は SD、6 は NVMe、4 は USB、f は先頭に戻る。0xf461 は SD → NVMe → USB の順で、SD を抜けば NVMe から起動する(findmnt のとおり root は nvme0n1p2)。筆者は SD を抜いて運用するので変えていない(SD を挿したまま NVMe を先にするなら 0xf416)。
ファンが回らない
公式ドキュメントでは、Pi 5 のファンは 50℃ 未満で止まり、50・60・67.5・75℃ で 1 段ずつ上がり、下がるときは各しきい値の 5℃ 下で落ちる。アイドルで止まっていたのは仕様どおりである。

vcgencmd measure_temp
for d in /sys/class/thermal/cooling_device*; do echo "$d $(cat $d/type) $(cat $d/cur_state)/$(cat $d/max_state)"; done
temp=47.2'C
/sys/class/thermal/cooling_device0 pwm-fan 1/4
47.2℃ で段階 1/4 なのは、一度 50℃ を超えて回り出し、まだ 45℃ まで下がっていない状態と読める。止まった瞬間の出力ではない。cooling device の番号は登録順でファンが 0 番とは限らないので、type が pwm-fan のものを読む。
SSH に移る
直結のコンソールでは、PC のブラウザで調べたコマンドを貼れず手が止まった。Windows Terminal から SSH で入れば貼れるので、ここで SSH に移った。Lite 版なので既定の起動先は CUI の multi-user.target で、ssh は有効にしてある。今はモニタもキーボードも外している。
systemctl get-default
systemctl is-enabled ssh
multi-user.target
enabled
まとめ
部材選びの迷いは、部材ごとの役割を決めていなかったことから来ていた。SSD は耐久と給電、microSD は起動の足場と決めると軸が絞れ、1TB の前提も購入時の価格と置くものから引き直して 512GB になった。初回起動の症状のうちファンは仕様どおりの動作で、Imager の件は表示の絞り込みで説明がつく見込みが高い。lsblk で SSD が見えるかを確かめれば、ハードと画面のどちらの問題かを分けられる。
これからは Gen 3.0 での安定性の検証、TRIM の定期実行、SMART 情報の定期確認、NAS へのバックアップ、収集バッチの移設を進める。
--- 参照: Raspberry Pi 公式ドキュメント(PCIe・BOOT_ORDER・ファン・電源・ブートローダの書き直し): https://www.raspberrypi.com/documentation/computers/raspberry-pi.html / M.2 HAT+: https://www.raspberrypi.com/documentation/accessories/m2-hat-plus.html / PCIe コネクタ規格書 RP-008298: https://datasheets.raspberrypi.com/pcie/pcie-connector-standard.pdf / rpi-imager PR #969: https://github.com/raspberrypi/rpi-imager/pull/969 / 同 issue #1420: https://github.com/raspberrypi/rpi-imager/issues/1420 / Lexar NM620: https://www.lexar.com/global/products/Lexar-NM620-M-2-2280-NVMe-SSD/ / LegitReviews の NM620 レビュー(2021): https://www.legitreviews.com/lexar-nm620-1tb-nvme-ssd-review_226976 / KIOXIA EXCERIA G2: https://www.kioxia.com/ja-jp/personal/ssd/exceria-g2.html / pci.ids: https://pci-ids.ucw.cz/ / Pimoroni Learn: https://learn.pimoroni.com/article/assembling-nvme-case / Pimoroni NVMe Base の商品ページ: https://shop.pimoroni.com/products/nvme-base (いずれも 2026-11-06 確認)