Raspberry Pi/Pi2のSDカードが壊れる

2016/07/28Raspberry Pi

Raspberry Pi2のSD上のファイルシステムが壊れる」の続き。

単純に熱暴走→ファイルシステム破壊だと推測していたが、どうも違うらしい。
Raspberry Pi2に刺してあった micro SDカードを macbook から読み書きしようとすると挙動不審だ。

20160728-raspberry-pi-1

3枚のmicroSDが壊れてる?

使っていた4枚のmicroSDカードのうち3枚が壊れていたようだ。これにraspbianを書いてもbootしない。
raspbianを書き込み、それを直後に読みだしても既にデータが化けているので、完全に壊れているようだ。

  • SanDisk製32GB – 書き込めるが読み出せない
  • Toshiba製32GB – 読み書きできるがデータが化ける
  • TDK製32GB – 読み書きできるがデータが化ける

20160728-raspberry-pi-2

仕方がないので おもろまちのGoodwillにて安いToshiba製8GBを3枚購入。こちらは全部一発で動作した。
(同時に買った安物の Lightningケーブルはまったく動作しなかった。これの返品・交換でまたバス代がかかる……)

簡単に壊れるものなの?

microSDカードの書き換え試験をされた方の考察があった。この考察では5年弱は持つ計算だが、「頻繁に同じところが書き換えられる」場合は寿命が短くなるわけだ。
Raspbianの場合、SUPER BLOCKとswapかなあ。メモリが少ないマシンなのでswapはやばそうな気がする。

さて、500 万回の書き換え耐性というのは、十分なのか?というと微妙なところ。人がオペレーションしてファイルを置いたり消したりするには十分すぎる耐性だが、Linux のルートファイルシステムを作ったりするには不安がある。

Linux のファイルシステムは、パーティションの先頭の SUPERBLOCK を最も多く書き換える。どこが変更されても SUPERBLOCK が書き換わるのだ。30秒に1回程度書き換えがおきるとすれば、500万回書き換えできても 5年弱でダメになる計算。

すzのAVR研究: microSDカードの書き込み耐性について

By default, Raspbian uses dphys-swapfile to generate a local file being used as swap, this won’t work anymore when booting under NFS.

I don’t recommend to use your Flash card as a swap partition, this may generates system freeze or kernel panics if you have data corruption:

youresuchageek: Howto: Raspberry Pi Root NFS share – boot your System over NFS share and definitively deal with Flash data corruption

(追記:後述のネットワークブートした状態でNFSへの書き込みを muninで計測すると、muninマスター側は10-20回/秒程度の書き込みが発生している。munin-nodeは秒数回なので、マスター側のrrdtoolとhtmlファイルへの書き込みが大きいのだろう)

参考リンク

Raspberry Pi を Network boot (with LANDISK NFS)」に続く。

Raspberry Pi

Posted by ず@沖縄