0
0

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のmicroSDを内蔵NVMe SSDへクローンして信頼性を高める手順

0
Last updated at Posted at 2026-01-22

公開日:2026年1月21日
著者:川上勝行

microSDカードの耐久性問題を解決し、Raspberry Pi 5を高速・安定稼働させるために、内蔵NVMe SSDへの移行は必須です。
特に災害時のポータブル通信システム(E-Post Mail Server搭載)では、SSDブートでデータ損失リスクを減らし、長時間運用が可能になります。
この記事では、スクリプト付きの手順を詳しく解説。
初心者でも実行可能です。
※本プロジェクト名は比喩的なものであり、有事に最低限の機能を残す設計思想を表しています。

1. 注意事項と前提

この手順はRaspberry Pi 5 + NVMe SSDを想定。SSDの内容はすべて消去されるので、バックアップを取ってください。microSDからUbuntu Serverが起動済みであることが前提です。

  • SSD: 内蔵HAT+M.2 NVMe(例: 128GB)
    今回使ったSSDは、amazonで販売されている者を使いました。
    Freenove 型番 FNK0098KLM 価格 3,213 (2026.01.29時点) M.2 HATアドオンボード、ソリッドステートドライブのセット品。
    他社製品だと物によってはRasberry Pi5 では認識しないものがあるので注意が必要です。
  • ツール: rsync, parted, blkidなど(Ubuntu標準)
  • リスク: 操作ミスでデータ損失の可能性あり。スクリプト推奨

2. スクリプトによる簡単移行

以下のスクリプトを実行すれば完了。/dev/nvme0n1を初期化するので注意。

#!/bin/bash
set -e
echo "⚠ このスクリプトは /dev/nvme0n1 を完全に初期化します。"
read -p "続行してよろしいですか? (yes/no): " confirm
if [ "$confirm" != "yes" ]; then
  echo "中止しました。"
  exit 1
fi
echo "✓ パーティションを作成中..."
sudo parted /dev/nvme0n1 --script mklabel gpt
sudo parted /dev/nvme0n1 --script mkpart primary fat32 1MiB 256MiB
sudo parted /dev/nvme0n1 --script set 1 boot on
sudo parted /dev/nvme0n1 --script mkpart primary ext4 256MiB 100%
echo "✓ パーティションをフォーマット中..."
sudo mkfs.vfat -F32 /dev/nvme0n1p1
sudo mkfs.ext4 -F /dev/nvme0n1p2
echo "☐ マウントポイントを作成..."
sudo mkdir -p /mnt/ssd
sudo mount /dev/nvme0n1p2 /mnt/ssd
sudo mkdir -p /mnt/ssd/boot/firmware
sudo mount /dev/nvme0n1p1 /mnt/ssd/boot/firmware
echo "☐ ファイルをコピー中 (時間がかかります)..."
sudo rsync -aAXv / /mnt/ssd --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}
echo "☑ UUIDを取得中..."
UUID_ROOT=$(sudo blkid -s UUID -o value /dev/nvme0n1p2)
UUID_BOOT=$(sudo blkid -s UUID -o value /dev/nvme0n1p1)
echo "☑ cmdline.txt を編集中..."
sudo sed -i "s|root=[^ ]*|root=UUID=$UUID_ROOT|" /mnt/ssd/boot/firmware/cmdline.txt
echo "☑ fstab を書き換え中..."
sudo bash -c "cat > /mnt/ssd/etc/fstab <<EOF
UUID=$UUID_ROOT / ext4 defaults 0 1
UUID=$UUID_BOOT /boot/firmware vfat defaults 0 1
EOF"
echo "✓ 完了しました!"
echo "次の手順..."
echo "1: sudo shutdown now で電源を切る"
echo "2: microSDカードを抜く"
echo "3: 電源を入れてSSDから起動する"

実行: sudo ./clone_to_ssd.sh

3. 手動での詳細手順

① SSDのパーティション作成

sudo parted /dev/nvme0n1
(parted) mklabel gpt
(parted) mkpart primary fat32 1MiB 256MiB
(parted) set 1 boot on
(parted) mkpart primary ext4 256MiB 100%
(parted) quit

② パーティションのフォーマット

sudo mkfs.vfat -F32 /dev/nvme0n1p1
sudo mkfs.ext4 /dev/nvme0n1p2

③ SSDをマウント

sudo mkdir -p /mnt/ssd
sudo mount /dev/nvme0n1p2 /mnt/ssd
sudo mkdir -p /mnt/ssd/boot/firmware
sudo mount /dev/nvme0n1p1 /mnt/ssd/boot/firmware
④ microSDの内容をSSDにコピー
sudo rsync -aAXv / /mnt/ssd --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"}

⑤ cmdline.txt の編集

sudo nano /mnt/ssd/boot/firmware/cmdline.txt

内容例:

console=serial0,115200 multipath=off dwc_otg.lpm_enable=0 console=tty1 root=/dev/nvme0n1p2 rootwait fixrtc cfg80211.ieee80211_regdom=JP

⑥ fstab の編集

sudo blkid

UUIDを確認後:

sudo nano /mnt/ssd/etc/fstab
内容例: UUID=ZZZZ-AAAA-BBBB / ext4 defaults 0 1
UUID=XXXX-YYYY /boot/firmware vfat defaults 0 1

⑦ 起動テスト

sudo shutdown now

で電源オフ後、microSD抜き→電源オン、lsblkでnvme0n1確認

6. 実用性と今後の活用

SSDブートでRPi5の性能を最大化。
E-Post Mail Server搭載のポータブルシステムとして、災害時通信に最適。
microSDの短寿命を回避し、耐久性向上。

防災DXに興味ある方やデジタル田園都市構想に興味のある方、自治体関係者の方など、ぜひお試しを。

このシリーズを「箱舟プロジェクト」と名付けました。
- 箱舟プロジェクト【防災通信】地域防災を支える「手のひらサイズ」ローカル通信システムの可能性
- 箱舟プロジェクト【防災通信】災害時メッシュWi‑FiとE‑Postで作るポータブル通信システム
- 箱舟プロジェクト【防災通信】Raspberry Pi 5で作る災害時ポータブル通信システム:セットアップ手順まとめ
- 箱舟プロジェクト【防災通信】Raspberry Pi 5ポータブル通信システムをStarlinkと連携させる手順
- 箱舟プロジェクト【防災通信】TinyBox(仮):Raspberry Pi 5で構築するE‑Post × DeltaChatの災害時通信システム
- 箱舟プロジェクト【防災通信】× IEEE802.11ah(Wi‑Fi HaLow)構成まとめ

※この記事は、災害対策技術の実験研究を目的として執筆しました。
 実際の運用にあたっては、各自治体や専門家の指導のもとで導入をご検討ください。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?