メッセージ

2023年11月28日の記事

2023/11/28(火)SDHCカードは壊れる(特にRaspberryPiのものは)

2023/11/28 23:07 PC(全般)
SDカード類はこれまで致命的に壊れた経験がなかったのだが、ここきて立て続けに壊れたのでちょっとメモ。
原因別に3つくらいあるっぽいが、よくわからないことも含めて記載しておく。

・物理的故障
チップ内の接触・接続や端子の損傷。
SDカード形状だと内部問題は起きづらそうだが、microSDカードだと曲げに弱く問題を起こしそう。
認識が怪しくなってきたりしたら要警戒。

・チップ寿命
チップに書き込む度にチップの寿命を消耗する。
温度や放射線ももちろん影響はする。
ファイルの読み書きが遅い・エラーが発生するとなったら要警戒。

・管理領域損傷
SDカードの管理を行っている領域の損傷…と書かれているものを良く見かけるのだがどの領域かわからない。
ここからは推測。

SDカードは著作権保護(CPRM)用の特殊管理領域(ユーザが読み書きできない)、記憶領域(ユーザが読み書きできる)に分かれる。
記憶領域内の先頭部分に、MBRやGPT用のセクタがあるはずでそこが読めなくなったり書き込み不良になると死。
CPRM領域に不良が起きた場合はちょっとよくわからないが、もしかしたらカードごと死ぬのかもしれない。
もしくはCPRM領域と記憶領域のさらに上のMBRのようなものがフラッシュメモリ内に有るのかもしれない。
チップコントローラのプログラム等は流石にSoCのフラッシュ領域とかチップ外に入ってると思う…多分。
ファイルリストが読めない・容量が間違って表示される・安定しないなどになったら要警戒。
発覚直後にOSで認識すらできなくなるケースも。
チップ寿命の特殊ケースということで一旦は理解する。

ざっと調べた限りSDカードでもウェアレベリングはしているとのこと。
そのため書き込み時の局所性はある程度緩和されているはず。
ただ、コスト・構造の両面でSSDのようなリッチなキャッシュ構成にはできないと思う。
SSDの場合は、DRAMや寿命が長いフラッシュメモリをキャッシュとして使用して、
メイン記憶領域のフラッシュメモリの書き込み回数を緩和するような仕組みになっていると理解している。

ウェアレベリングがFATや写真データ記録を前提にしたアルゴリズムになってる可能性も有るとのこと。
特定のファイルシステム、たとえばext4だと死にやすいとか、1kBytesサイズの細かいデータにサボりがちになるとかはあるかもしれない。

最近Raspberry Pi Zero Wで使っていたmicroSDHCカードが突然OSで認識できなくなったことがあった。
これが管理領域の破損だった可能性はある。
ただ、コントローラが生きてれば認識くらいすると思うのだが…

また、
Raspberry Piは本当に壊れやすいのか
あたりにもあるようにRasPiも一般的なLinuxと同様に、電源を気軽に入れたり切ったりしては駄目とのこと。

ただ、この記事のNGケースはファイル単位の問題のようで認識レベルの問題に発展するかは不明。

まとめと、今後の方針。
SDカード特にmicroSDカード形状のものは、
・同じフラッシュメモリをベースとしていてもSSDよりも壊れやすい。HDDよりも壊れやすいと言って良いかも
・壊れ方は様々だが、突然OSからの認識ができなくなるケースも頭に入れておく
・本来OSを入れるような用途に使うべきではない
・RasPiで使う場合はイメージを取っておくのとできるだけSDカードに書きに行かないような設定を行う
・容量には余裕を見る。50%以上空き容量がある状態を常用とする。
・バックアップは当たり前
・なくなって困るデータを入れない
・壊れたら即諦める。使い捨てと心得る
・古いものは壊れる前にどんどん廃棄。アクセスできなくなって入ってるデータがわからない状態になってからでは遅い
・OSから認識しない状態の発生原因は推測レベルまででよくわからず

なお、SDカード廃棄時は中身が読める場合は一応KillDiskでゼロフィル。
その上で、ペンチやニッパーで物理破壊して廃棄するので良さそう。
OK キャンセル 確認 その他