私のSDカードがどのくらいの書き込みサイクルを得ることができるか知りたいです。
私はインターネット検索で次のような良い答えを見つけました。これしかし、私のような普通の人にとっては複雑すぎます。
64GB exfatフォーマットカードだとします。
59GBの大容量ランダムファイルを直接書き込めますか?削除してください。計算してみてください。そして、カードが失敗するまでループ全体を繰り返します(何かが最終的に書き込み操作をブロックすると仮定します)。
次のように59GBのランダムファイルを作成できるようです。
dd if=/dev/urandom of=/dev/sdd1/file.txt bs=61865984 count=1024
ファイルの削除:
rm /dev/sdd1/file.txt
計算操作を実行したり、ループを実行する方法や、.shファイルに入れる際に他の構文/制限があるかどうかはわかりません。この問題を解決するのに役立ちますか?
上記の考えは大丈夫ですか(受け取ることができますか)。私は完璧になろうとしていません。
これを実行できる商用ソフトウェア/スクリプトもありますか?
(これを行うには数ヶ月間コンピュータの電源を入れる必要があることを知っていますが、大丈夫です。または再起動後にスクリプトを実行すると、以前のカウントに追加される可能性があります。)
ありがとうございます。 :-).
PS:私がこれをする理由 - OEM /無名ブランドがプレミアムブランドカードと比較してかなり安価な大容量microSDカードを提供していることがわかりました。人々はこのカードが信頼できないと言います。私は彼らがどれだけ悪いのか知りたかったのです。実際、私の考えは、5年以内に合計1TBのデータをカードに書き込むことができると思います。それは17サイクルだけです!最悪のカードでもできると思います。 :-)...........
答え1
私はあなたの考えがうまくいくと思います。
ドライブのデバイスノードに直接データを書き込むことができます(例/dev/sdd
:)。このrm
コマンドは可能または必要ありません。とにかく多くのデータを削除するのではなく、rm
ファイルシステムのメタデータのみを更新します。 1周期に1をすべて書き、次の周期に0をすべて書き込むことを検討できます。
永久カウンター
秘訣は、後で選択できる継続的なカウンターを作成することです。再起動。これは、COUNT_FILE
「$HOME/.counter」の例のようなファイルで簡単に実行できます。完了する前にシステムが再dd
起動された可能性があるため、この数は実際の数より少なくなる可能性があります。
/etc/rc.local
システムの起動時に自動的に起動するように同様のものを呼び出すこともできます。
#!/bin/ss
COUNT_FILE="$HOME/.counter"
read COUNT < "$COUNT_FILE"
if echo "$COUNT" | grep '[^0-9]' > /dev/null
then
echo >&2 "$0: ERROR: non-integer counter found in $COUNT_FILE."
exit 1
fi
while true
do
echo dd if=/dev/urandom of=/dev/sdd bs=61865984
COUNT=$(( COUNT + 1 ))
echo $(( COUNT )) > "$COUNT_FILE"
done
不良ブロック
badblocks
パターンをディスクに書き込んで再読み込みするコマンドを確認することもできます。これを使用すると、良いことは、badblocks
サイクルごとにすべてのバイトを書き込み、読み取り、比較することです。したがって、ディスクにエラーが発生し始めると、「不良ブロック」の数が増え始める必要があります。
警告する
また、誤って別のUSBドライブを接続した場合、/dev/sdd
このスクリプトが実行されるとそのドライブが完全に破壊されます。
答え2
回答を受けたときは、対応するSDカードが破損しています。これにより、同じメーカーやモデル内の他のカードの寿命をある程度知ることができます(またはそうでない可能性があります...カードによって異なり、悪いことに、基本ハードウェアが同じモデル番号で機能しない可能性があります)。メーカーはいつもと同じように邪悪なことをします。)
私のアドバイスは気にしないということです。余分なSDカードを購入し、カードのすべての重要なデータを定期的にバックアップしてください。