Raspberry PiのSDカードがすぐ壊れる?初心者向けSDカード寿命対策を整理する。
ある日突然、Raspberry Piが起動しなくなることがあります。原因の多くは、SDカードへの書き込みが集中し、寿命が縮んでしまうことです。本記事では、SDカードの寿命が縮む仕組みを解説します。そのうえで、今日から設定できる具体的な対策も紹介します。
01なぜRaspberry PiのSDカードは寿命が短くなるのか
SDカードの書き込み回数には上限がある
結論から言うと、原因は主に2つあります。1つ目は、ログファイルや一時ファイルへの頻繁な書き込みです。2つ目は、電源を急に抜くことによる書き込み中断です。これによりファイルシステムが壊れることもあります。microSDカードは、NAND型フラッシュメモリでできています。そのため、書き込み・消去できる回数には物理的な上限があります。ある技術記事によれば、TLC方式のmicroSDカードの書き込み限度は1000回程度とも言われています。つまり、ログを書き込みすぎると、ある日突然データが読めなくなり、Raspberry Piが起動しなくなることがあるのです。
編集部が確認した劣化の実例
Cさんは、自宅の温度・湿度を記録するプロジェクトを組みました。Raspberry Pi Zeroを1年ほど、24時間稼働させ続けていたのです。ある朝、電源を入れ直すとOSが起動しなくなりました。SDカードをPCに挿しても、ファイルシステムが認識されません。原因は、ログとセンサーデータが同じSDカードへ書き込まれ続けたことによるセルの劣化でした。そこでCさんは、SDカードへの直接書き込みをやめました。代わりに、RAM上でバッファしてから定期的にまとめて書き込む方式に変更したのです。その結果、同様のトラブルは起きていません。
SDカードの寿命対策は「壊れてから直す」ことではありません。「壊れる前提で書き込みを減らす」設計に切り替えることが本質です。とりわけ、24時間稼働させるプロジェクトほど、初期段階で対策を組み込んでおく価値があります。
本記事では、まずSDカードとRaspberry Piの基本構造を押さえます。そのうえで、書き込みが集中する技術的な仕組みを解説します。最後に、具体的な対策方法を実践ステップとして紹介します。
02SDカードとRaspberry Piの基礎知識
microSDカードとは、NAND型フラッシュメモリを使った小型の記録媒体です。Raspberry Piでは、OSやアプリケーションを保存する主要なストレージとして使われます。フラッシュメモリは、セルという単位でデータを記録します。このセルは、書き込み・消去を繰り返すごとに徐々に劣化する性質を持っています。これこそが「SDカードの寿命」と呼ばれる現象の正体です。
Raspberry Piは標準で、microSDカードから起動する構成になっています。そのため、OS本体だけでなく、システムログやアプリケーションのログ、一時ファイル(キャッシュ)なども同じSDカードに書き込まれます。特に、サーバーやセンサー監視のように長時間稼働させるプロジェクトでは注意が必要です。こうしたプロジェクトでは、システムが自動生成するログの書き込み頻度が、想像以上に高くなることがあります。はじめてRaspberry Piをセットアップする方は、あわせてRaspberry Pi Imagerのインストール・使い方ガイドもご覧ください。
この問題への対策として広く使われているのが、OverlayFS(オーバーレイファイルシステム)です。Raspberry Pi公式ドキュメントの設定ガイドでは、raspi-configの各種設定項目がまとめられており、その中にOverlayFSを有効にする機能があります。OverlayFSは、SDカード本体を読み取り専用にする仕組みです。そして、実際の書き込みはメモリ上(RAM)で処理します。その結果、SDカードへの物理的な書き込みを大幅に減らせます。
03書き込みが集中する仕組みと技術的背景
SDカードへ書き込まれる主なデータ
Raspberry Pi OSが動作している間、意識しなくても次のようなデータが継続的にSDカードへ書き込まれています。
- systemdジャーナルやsyslogなどのシステムログ(
/var/log以下) - アプリケーションが生成する一時ファイル・キャッシュ
- スワップ領域(メモリ不足時にディスクを仮想メモリとして使う処理)
- センサー値やアクセスログなど、ユーザープログラムが記録するデータ
log2ramでログをRAM化する
これらの書き込みを根本的に減らす方法として代表的なのが、「ログのRAM化」と「ルートファイルシステムの読み取り専用化」です。ログのRAM化を実現するツールとして広く使われているのが、azlux氏が公開するオープンソースツール「log2ram」です。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でルートファイルシステムを読み取り専用化する
一方、より踏み込んだ対策が、OverlayFSによる読み取り専用化です。ある技術ブログの検証では、raspi-configのnon-interactiveモードから該当コマンドを実行するだけでOverlayFSを有効化できると紹介されています。この方式では、SDカード本体(下層)を読み取り専用にします。そのうえで、RAM上の書き込み可能な層(上層)を重ねます。その結果、見かけ上は通常どおり書き込みができるように振る舞います。しかし、実際の物理的な書き込みは発生しません。
sudo raspi-config nonint enable_overlayfsを実行するだけで、OverlayFSによる読み取り専用のrootfsを有効化できます。
OverlayFSを有効化した検証記録の一つでは、有効化後にdf -hコマンドを実行しています。その結果、ルートパーティションが読み取り専用(ro)でマウントされ、その上にoverlay領域が重なっている状態が確認できたと報告されています。編集部の見解として、この構成であれば理論上、通常運用中のSDカードへの書き込みはほぼゼロに近づけられます。
04SDカード寿命対策の比較
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カードを選定する
まず、土台となるSDカード自体の選定を見直しましょう。パッケージにApplication Class(A1/A2)表記がある製品や、産業用途向けの製品がおすすめです。これらは、ランダムライト性能や書き込み耐久性を考慮して設計されているものが多いためです。実際、連続稼働のプロジェクトでの採用実績も多く見られます。
Dさんのチームは、コンビニの在庫管理端末の試作にRaspberry Piを使っていました。当初は、安価な汎用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を有効化する
設定がある程度固まったら、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注意点・よくある誤解
SDカードの寿命対策では、いくつかの誤解も広がっています。ここでは代表的な3つを確認しましょう。
よくある3つの誤解
誤解1:容量の大きいSDカードほど寿命も長い
容量とセルの書き込み耐久性は、必ずしも比例しません。寿命に影響するのは、主にフラッシュメモリの方式(SLC/MLC/TLCなど)や製品自体の設計です。そのため、単純に容量だけで判断するのは誤りです。
誤解2:OverlayFSを有効にすれば設定は一切失われない
実際には逆です。OverlayFS有効時は、再起動のたびに起動後の変更内容がすべて消えます。そのため、設定変更やソフトウェアの追加インストールを行う際は注意が必要です。事前にOverlayFSを無効化してから作業しましょう。完了後は、再度有効化してください。
誤解3:電源ボタンがないから電源はいつ抜いても大丈夫
Raspberry Piには、物理的な電源ボタンがない機種が多くあります。そのため、コンセントを直接抜いてしまいがちです。しかし、書き込み中に電源を切ると、ファイルシステムが破損するリスクが高まります。sudo shutdown -h nowなどで、正しくシャットダウンしてから電源を切りましょう。これは、寿命対策以前の基本的な注意点です。
07よくある質問
08まとめ
Raspberry PiのSDカードは、書き込みが集中すると寿命が縮みやすくなります。しかし、原因を理解すれば対策は難しくありません。まずは、log2ramでログをRAM化しましょう。次に、運用フェーズでOverlayFSを有効化しましょう。さらに、信頼性の高いSDカードを選ぶことも大切です。長期運用を重視する場合は、USB/SSD起動への移行もあわせて検討してください。これらの対策を組み合わせることで、SDカードの寿命を大きく延ばせます。あわせて、ArduinoとRaspberry Piの違いもチェックしてみてください。
参考文献
- 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/
※出典の明記がない数値・シナリオは「編集部見解」または「編集部想定シナリオ」として本文中に明示しています。
コメント