SDカードの読み取り時のランダムビットエラー、エラーなし
Kingston 16 GB Micro SD HC Class 10 U1カードを搭載した20枚のRaspberry Piを展開し、すべて同じカスタマイズされたRaspbianイメージからクローンを作成しました。カード上の小さなテキストは言う: SDC10B2/16GB 31608-010-A00LF TAIWAN このセットアップは現在約6か月実行されており、約10枚のカードがいくつかの奇妙な特性で故障しています。 最初のカードは、展開後数週間以内に故障しました。確かに、当時は大規模なログが記録されていました。また、一部のカードは、アプリケーションロギングをオンにせずに故障しました。通常のRaspbianロギングのみです。高いログ記録でも、書き込みサイクルを考慮に入れると、カードは数年続くはずです。 この問題が発生したとき、私はたまたまraspiにログインしていました。 システムバイナリなどvimとsudo共有ライブラリをロードするために失敗する(.soファイル) エディターで表示すると、自分のソースコードにランダムバイトエラーが含まれる ソースを再ダウンロードしてファイルに書き込むと、当面はこれらのファイルで修正されます。 私は今、すべての失敗したカードを調べて、それらがすべて私のMacでアクセス可能で読みやすいことに気付きました。/bootパーティション内のすべてのファイルを10回チェックサムするスクリプトを作成し、時間を測定して異なるチェックサムをカウントしました。 通常の動作中のカードでは、反復ごとに平均0.3秒かかり、もちろん同じチェックサムを毎回返します。 しかし、これらの失敗したカードでは、時間がより長くなり、反復あたり7〜20秒であり、一部のファイルの実行ごとに異なるチェックサムが返されます。エラーはすべてのファイルに発生するわけではありませんが、ほとんどすべてのカードにある同じファイル(アルファベット順で最後のファイル)に発生します。 実行例(ファイル名の後ろの数字は異なるチェックサムの数です): 1つのファイルでのみエラーを発生させるカードの1つで繰り返し実行すると、4〜10の異なるチェックサムの間に結果が生じます。以下は、5つのチェックサムが含まれているものの外観の順です。 ["9c91d29a602ac91b6db803aff2589099", "4c5e5e134bdd74c385b3ad69b28ea724", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "9c91d29a602ac91b6db803aff2589099", "4ea7e6b69623405081f4db7a80d62bb4", "5a9d78acb7eefbc9839bab3fcc3f7599", "9c91d29a602ac91b6db803aff2589099", "1d6f8ad8a528e0abae0f00032eeb712b", "9c91d29a602ac91b6db803aff2589099"] ご覧のように、間に異なる結果を与えた後でも、1つのチェックサムを繰り返すことができます。 要約すると、ファイルシステムはアクセス可能で、カードは適切に機能しているように見えますが、ファイルから繰り返し読み取ると異なる結果が得られ、使用できなくなります。カードの一部のブロックが読み取られたときにゴミを返すだけのようです。 質問1:そのような破損は、カードの書き込みの摩耗に関連していますか?その場合、長期の低書き込み使用に最適化されたRaspberryディストリビューションはありますか? 質問2:これは安いカードによるものですか、より良いカードを購入する必要がありますか?どれ?