ラズパイのmicroSDが壊れる前に:書き込みを減らす設定とSSD起動への移行

Photo: Mathias Wouters / Pexels
先に結論です。24時間動かすラズパイは、microSD ではなく SSD から起動するのが一番確実な対策です。SD のまま使うなら、ログとスワップの書き込みをメモリ側に逃がし、電源を見直すところまでやっておくと、壊れるリスクをかなり下げられるとされています。
2025年10月に出た Raspberry Pi OS の現行版(Debian 13 ベースの Trixie)では、ログとスワップの書き込みを減らす設定が最初から入っています。古い Bookworm のまま使っているなら、SSD へ移るタイミングで Trixie を新しく入れ直すと、両方の対策がまとめて片付きます。
microSDが壊れる原因は「書き込みの多さ」と「電源」
microSD のフラッシュメモリは書き換えられる回数に上限があり、細かい書き込みが続くと傷みやすいとされています。自宅サーバーとして使うラズパイで書き込みが多いのは、次のようなものです。
- システムのログ(journald)
- メモリが足りないときのスワップ
- アプリのデータベースやログ(Home Assistant の履歴、AdGuard Home のクエリログ、Docker コンテナのログなど)
もう一つが電源です。書き込みの途中で電圧が下がったり電源が切れたりすると、ファイルシステムが壊れる原因になるとされています。電圧不足が起きていないかは次のコマンドで確認できます。
vcgencmd get_throttled
throttled=0x0 なら問題ありません。0x50000 のように 0 以外が出る場合は、起動後に電圧不足が起きた記録があります。Pi 5 は 5V/5A の電源を前提にしているので、スマホ用の充電器ではなく Raspberry Pi 27W USB-C 電源 を使うのが無難です。止めるときも、コンセントを抜く前に sudo poweroff で OS を止める習慣をつけておきます。
まず確認:Trixieならログとスワップは対策済み
使っている OS は cat /etc/os-release で確認できます。VERSION_CODENAME=trixie なら、次の2つが既定で入っています。
- ログはメモリ上に保存(journald が volatile 設定)。SD にログを書き続けません
- スワップは zram。メモリを圧縮してスワップ代わりに使う仕組みで、
rpi-swapというパッケージが設定しています。SD への細かい書き込みを避けてカードを長持ちさせるのが狙いと説明されています
swapon --show # /dev/zram0 が出れば zram が有効
ls /run/log/journal # ここにログがあればメモリ上に保存されている
注意点は、ログが再起動で消えることです。「夜中に落ちた原因を朝に調べたい」ときに困ります。ログを残したい場合は、sudo raspi-config の Advanced Options にある Logging で、ディスクに保存する方式に戻せます。SSD 起動にしたあとなら、戻しても書き込みの心配はほぼなくなります。
なお、Bookworm から Trixie への上位アップグレードは公式には推奨されておらず、新規インストールが勧められています。
SDのまま使うなら:書き込みを減らす3つの手
SSD を用意するまでの間や、小さな用途で SD のまま使う場合は、次の3つが効きます。
1. 書き込みの多いアプリのデータを外に出す、または減らす。 Home Assistant の履歴や Docker のボリュームは、USB 接続の SSD や NAS に置くだけで SD の負担が大きく下がります。AdGuard Home のクエリログのように保存期間を短くできるものは、短くしておきます。
2. 表示専用・センサー専用なら Overlay File System。 raspi-config の Performance Options → Overlay File System を有効にすると、SD を読み取り専用にして、書き込みはすべてメモリ上で扱います。そのかわり再起動で変更がすべて消えるので、データを貯めるサーバー用途には向きません。アップデートのたびに一度無効へ戻す手間もあります。
3. 高耐久の microSD カードを使う。 ドライブレコーダーや防犯カメラ向けの 高耐久microSDカード は、書き込みの多い用途を想定して作られています。どのカードでも、壊れたときに戻せるようバックアップイメージは取っておきます。
本命はSSD起動:Pi 4 / Pi 5での移行手順
Pi 4 と Pi 5 は、ブートローダーが新しければ SD カードなしで SSD から起動できます。Pi 5 なら Raspberry Pi M.2 HAT+ に 2230 / 2242 サイズの NVMe SSD を付ける形、Pi 4 なら USB 3.0 の ポータブルSSD をつなぐ形が一般的です。SATA SSD を USB 変換ケースでつなぐ場合、ラズパイとの相性問題が報告されている製品もあるので、動作報告のあるものを選ぶと安心です。
Pi 5 + M.2 HAT+ の場合、流れは次のとおりです。
- ブートローダーを更新する:
sudo apt update && sudo apt full-upgradeのあとsudo rpi-eeprom-update -aを実行して再起動 - SSD に OS を入れる:おすすめは新規インストールです。Raspberry Pi Imager で SSD に Raspberry Pi OS を書き込み、設定とデータをあとから移します。SD の中身を丸ごと移したいなら、デスクトップ版の「SD Card Copier」でコピーできます。このとき New Partition UUIDs にチェックを入れます。入れないと SD と SSD が同じ識別子になり、起動がおかしくなる原因になるとされています
- 起動順を変える:
sudo raspi-config→ Advanced Options → Boot Order で NVMe/USB を優先にします。sudo rpi-eeprom-config --editで直接書く場合、Pi 5 で NVMe を最優先にする値はBOOT_ORDER=0xf416(6 が NVMe、1 が SD、4 が USB)です - SD を抜いて確認する:再起動後に
findmnt /を実行し、/dev/nvme0n1p2(USB なら/dev/sda2)と出れば SSD から起動しています
抜いた SD カードは、移行がうまくいかなかったときの戻り先としてしばらく保管しておきます。
まとめ
- microSD が壊れる主な原因は、ログ・スワップ・アプリの細かい書き込みと電源の電圧不足
- まず
vcgencmd get_throttledで電源を確認し、Pi 5 は 27W の公式電源を使う - Raspberry Pi OS Trixie はログがメモリ上・スワップが zram で、最初から書き込みが少ない。代わりにログは再起動で消える
- SD のまま使うなら、アプリのデータを外に出し、高耐久カードを使う。表示専用なら Overlay File System
- 24時間動かすなら SSD 起動が本命。移行は新規インストールが確実
私は、家族が使うサービスを載せるラズパイほど、壊れてから直すより先に SSD へ移しておくほうが、結果的に手間が少ないと考えています。
運営者が作った Excel テンプレートを BOOTH で配布しています。IT 資産管理台帳(無料 Lite 版あり) / IT 資格の学習管理シート


