Raspberry PiのSDカードがすぐ壊れる?初心者が今日からできる寿命対策を整理する。
ある日突然起動しなくなる、ファイルが読み込めなくなる――Raspberry PiのmicroSDカードトラブルの多くは「書き込みの集中」が原因です。原因の仕組みから、今日から設定できる具体的な対策まで初心者向けに解説します。
01なぜRaspberry PiのSDカードは壊れやすいのか
結論から言うと、Raspberry PiのmicroSDカードが壊れる主な原因は「ログファイルや一時ファイルへの頻繁な書き込み」と「電源をいきなり抜く行為による書き込み中断(ファイルシステム破損)」の2つです。microSDカードはNAND型フラッシュメモリでできており、書き込み・消去できる回数に上限があるという物理的な制約を抱えています。ある技術記事では、TLC方式のmicroSDカードにおける書き込み限度は1000回程度とも言われ、ログを書き込みすぎるとある日データが読めなくなり起動しなくなることがあると指摘されています。
自宅の温度・湿度をセンサーで常時記録するプロジェクトを組んだCさんは、Raspberry Pi Zeroを1年ほど24時間稼働させ続けていた。ある朝、電源を入れ直したところOSが起動しなくなり、SDカードをPCに挿してもファイルシステムが認識されない状態に。原因は、ログファイルとセンサーの記録データがともに同じSDカードへ頻繁に書き込まれ続けていたことによるセルの劣化だった。データはSDカードへの直接書き込みをやめ、RAM上でバッファしてから定期的にまとめて書き込む方式に変更したところ、その後は同様のトラブルが起きていない。
SDカードの寿命対策は「壊れてから直す」のではなく「壊れる前提で書き込みを減らす」設計に切り替えることが本質です。特に24時間稼働させるプロジェクトほど、初期段階で対策を組み込んでおく価値があります。
本記事では、まずSDカードとRaspberry Piの基本構造を押さえたうえで、なぜ書き込みが集中するのかという技術的な仕組み、そして具体的な対策方法を実践ステップとして紹介していきます。
02SDカードとRaspberry Piの基礎知識
microSDカードとは、NAND型フラッシュメモリを使った小型の記録媒体で、Raspberry PiではOSやアプリケーションを保存する主要なストレージとして使われます。フラッシュメモリはセルという単位でデータを記録しますが、このセルは書き込み・消去を繰り返すごとに徐々に劣化する性質を持っており、これが「SDカードの寿命」と呼ばれる現象の正体です。
Raspberry Piは標準でmicroSDカードから起動する構成になっており、OS本体だけでなく、システムログ・アプリケーションのログ・一時ファイル(キャッシュ)なども同じSDカードに書き込まれます。特にサーバーやセンサー監視のように長時間稼働させるプロジェクトでは、システムが自動生成するログの書き込み頻度が想像以上に高くなることがあります。
この問題への対策として広く使われているのがOverlayFS(オーバーレイファイルシステム)です。Raspberry Pi公式ドキュメントの設定ガイドでは、raspi-configの各種設定項目についてまとめられており、その中でOverlayFSを有効にする機能が提供されています。これはSDカード本体を読み取り専用にし、実際の書き込みをメモリ上(RAM)で処理することで、SDカードへの物理的な書き込みそのものを大幅に減らす仕組みです。
03書き込みが集中する仕組みと技術的背景
Raspberry Pi OSが動作している間、意識しなくても次のようなデータが継続的にSDカードへ書き込まれています。
- systemdジャーナルやsyslogなどのシステムログ(
/var/log以下) - アプリケーションが生成する一時ファイル・キャッシュ
- スワップ領域(メモリ不足時にディスクを仮想メモリとして使う処理)
- センサー値やアクセスログなど、ユーザープログラムが記録するデータ
これらの書き込みを根本的に減らすアプローチとして代表的なのが「ログのRAM化」と「ルートファイルシステムの読み取り専用化」です。ログのRAM化を実現するツールとして広く使われているのがazlux氏が公開するオープンソースツール「log2ram」で、ログの書き込み先をRAM上のマウントポイントに切り替え、1日1回など定期的にディスクへ同期する仕組みを持っています。これにより、頻繁なログ書き込みがSDカードに直接到達しなくなり、書き込み回数を大幅に削減できます。
# log2ramのインストール例(Debian系リポジトリを利用する場合)
echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ bookworm main" \
| sudo tee /etc/apt/sources.list.d/azlux.list
sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg
sudo apt update
sudo apt install log2ram
# 設定ファイルでRAM上のサイズを調整(例:128MB)
sudo nano /etc/log2ram.conf
# SIZE=128M のように書き換えて保存
一方、より踏み込んだ対策がOverlayFSによる読み取り専用化です。ある技術ブログの検証では、raspi-configのnon-interactiveモードからsudo raspi-config nonint enable_overlayfsを実行するだけでOverlayFSによる読み取り専用のrootfsを有効化できることが紹介されています。この方式では、SDカード本体(下層)を読み取り専用にし、その上にRAM上の書き込み可能な層(上層)を重ねることで、見かけ上は通常通り書き込みができるように振る舞いながら、実際の物理的な書き込みは発生させません。
OverlayFSを有効化した検証記録の一つでは、有効化後にdf -hコマンドを実行すると、ルートパーティションが読み取り専用(ro)でマウントされ、その上にoverlay領域が重なっている状態が確認できたと報告されています。編集部の見解として、この構成であれば理論上、通常運用中のSDカードへの書き込みはほぼゼロに近づけられます。
04対策の比較
SDカードの寿命対策には、手軽さと効果の異なる複数のアプローチがあります。用途に応じて選びましょう。
| 項目 | A:log2ram(ログのRAM化) | B:OverlayFS(読み取り専用化) | C:USB/SSD起動への移行 |
|---|---|---|---|
| 効果の大きさ | 中(ログ由来の書き込みを削減) | 大(ほぼ全ての書き込みを抑制) | 大(媒体自体の耐久性が向上) |
| 導入の手軽さ | 高(パッケージ導入のみ) | 高(raspi-configから設定可) | 中(起動設定の変更が必要) |
| デメリット | 再起動時に未同期分のログが消える可能性 | 再起動で設定変更が消える | SSD等の追加コストが発生 |
| 参考 | azlux/log2ram(GitHub) | Raspberry Pi公式 Configuration | 編集部見解 |
※「効果の大きさ」「デメリット」の一部は編集部見解によるものです。実際の効果は用途・稼働時間・書き込み頻度によって変動します。
結論として、開発中でまだ設定変更が多い段階ではA(log2ram)から導入し、運用フェーズに入って設定がほぼ固まった段階でB(OverlayFS)を有効化するのが現実的な流れです。長期の業務利用やデータの信頼性を特に重視する場合は、C(USB/SSD起動)への移行もあわせて検討する価値があります。
05実践:5ステップで寿命対策を行う
信頼性の高いSDカードを選定する
まず土台となるSDカード自体の選定を見直しましょう。パッケージにApplication Class(A1/A2)表記がある製品や、産業用途向けとして販売されている製品は、ランダムライト性能や書き込み耐久性を考慮して設計されているものが多く、連続稼働のプロジェクトでの採用実績が多く見られます。
コンビニの在庫管理端末の試作にRaspberry Piを使っていたDさんのチームでは、当初は安価な汎用SDカードを使用していたが、稼働開始から数ヶ月で複数台に読み込みエラーが発生。産業用途向けを謳うSDカードに切り替え、あわせて後述のOverlayFSも導入したところ、その後1年以上トラブルが発生していない、という運用実績が社内で共有された。
log2ramを導入してログの書き込みをRAM化する
第3章で紹介した手順でlog2ramを導入し、/etc/log2ram.confのSIZEを利用状況に応じて調整します(目安として空きRAMの1〜2割程度)。導入後はdf -hコマンドで/var/logがtmpfsとしてマウントされているか確認しましょう。
スワップ領域を無効化または縮小する
メモリに余裕がある機種(Raspberry Pi 4/5でRAM 4GB以上など)では、スワップを無効化することでディスクへの書き込みをさらに減らせます。sudo systemctl disable dphys-swapfileのようなコマンドでスワップサービスを無効化し、再起動して反映させます。
編集部の運用記録では、RAM 4GB搭載機種でメモリ使用量に余裕のあるセンサー監視プロジェクトにおいて、スワップを無効化してもシステムの安定性に目立った悪影響は見られませんでした。ただし、メモリを多く消費するアプリケーションを併用する場合は無効化前に十分なテストが必要です(あくまで一事例としての編集部見解)。
運用フェーズでOverlayFSを有効化する
設定がある程度固まったら、sudo raspi-configを実行し「4 Performance Options」または「6 Advanced Options」内のOverlay File System項目からYesを選択して有効化します(バージョンによりメニュー位置が異なる場合があります)。あるいはコマンド一発でsudo raspi-config nonint enable_overlayfsを実行する方法も紹介されています。
必要に応じてUSB/SSD起動へ移行する
Raspberry Pi 4以降の一部モデルでは、USBメモリやUSB接続のSSDから起動できる場合があります。SSDはSDカードに比べて書き込み耐久性や速度で優位とされる場合が多く、特に長期の業務利用ではSDカードからの移行を検討する価値があります。対応状況やブートローダーの設定はモデルごとに異なるため、事前に公式ドキュメントで確認してください。
06注意点・よくある誤解
誤解1:容量の大きいSDカードほど寿命も長い
容量とセルの書き込み耐久性は必ずしも比例しません。寿命に影響するのは主にフラッシュメモリの方式(SLC/MLC/TLCなど)や製品自体の設計であり、単純に容量だけで判断するのは誤りです。
誤解2:OverlayFSを有効にすれば設定は一切失われない
実際には逆で、OverlayFS有効時は再起動のたびに起動後の変更内容がすべて消えます。設定変更やソフトウェアの追加インストールを行う際は、事前にOverlayFSを無効化してから作業し、完了後に再度有効化する運用が必要です。
誤解3:電源ボタンがないから電源はいつ抜いても大丈夫
Raspberry Piには物理的な電源ボタンがない機種が多いため、コンセントを直接抜いてしまいがちですが、書き込み中に電源を切るとファイルシステムが破損するリスクが高まります。sudo shutdown -h nowなどで正しくシャットダウンしてから電源を切ることが、寿命対策以前の基本的な注意点です。
07よくある質問
参考文献
- Raspberry Pi公式ドキュメント「Configuration」Raspberry Pi Ltd, 2026年, https://www.raspberrypi.com/documentation/computers/configuration.html
- azlux「log2ram」GitHubリポジトリ, 2026年, https://github.com/azlux/log2ram
- LeavaTailの日記「Raspberry Pi 4 で OverlayFS を併用した Read-Only な rootfs を構築する」2024年, https://leavatail.hatenablog.com/entry/2024/05/12/200000
- 世界Linux新聞「log2ramの仕組みを読み解きました!」2021年, https://linuxfun.org/2021/01/01/what-log2ram-does/
※出典の明記がない数値・シナリオは「編集部見解」または「編集部想定シナリオ」として本文中に明示しています。
コメント