1 :
Socket774 :
2010/02/09(火) 14:06:06 ID:JbKmFsqa 新品HDD購入後、運用前にHDDをどうテストするのが 現実的に技術的に妥当であるかということについて考察するスレです。 各社の返品基準以外の話題は、本スレに迷惑がかからないように こちらの専用スレで、お願いします。
で?
俺の脳味噌はどうやったら念入りにテストできるのだろうか?
●ATA S.M.A.R.T.属性
ttp://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._attributes このスレでも
ID#5(0x05)
ID#197(0xC5)
ID#198(0xC6)
に注目する。
●Extended Test/Long Testとは
全セクターに対して読み取りテストをすること。
●ゼロフィルとは
全セクターに対して0x00を書き込むこと。
●初期不良の定義は考察しない。
初期不良交換の期限に間に合わせることを優先する。
●S.M.A.R.T.属性のValueを求める関数は製品モデル依存である
●各属性は独立しており、属性間の関連付けは無視される
ttp://www.hdsentinel.com/smart/ ●リアロケ(remap/reallocate)とは
不安定なセクタ(unstable sector)を代替セクタ(spare area)で置き換えること。
置き換えられたセクタは不良セクタ(bad sector)とみなされる。
S.M.A.R.T.により認識された不良セクタはScandiskなどからは見えなくなる。
ユーザーのバリエーション1: >1. ゼロフィル >2. Long Test ユーザーのバリエーション2: >1. Long Test >2. ゼロフィル 1と2はともに、 全セクターに対して0x00を書き込み、 全セクターに対して読み込みを行う。 書き込めた値が本当にゼロだったかは関知しない。 ユーザーのバリエーション3: >badblocks -w -t 0xff -t 0x00 分解すると、 1. 0xFFフィル 2. 0xFF読み取り 3. 0x00フィル(ゼロフィル) 4. 0x00読み取り 全セクターに対して読み書きを行うのは共通。 ゼロの値のところにゼロを書き込んでもテストにならないと考え、 まず0xFFでリセットしてから、0x00を書き込んで、それを読んで書き込みテストとする。
争点となっている/いたポイント:
●Long Test/ゼロフィル/Long Testというパターンは有意味か?
ゼロフィル/Long Test
Long Test/ゼロフィル
のいずれかのパターンに簡略化し、時間を節約できないのか?
●代替のメカニズム
1. read/writeエラー時にID#197(0xC5)が増える。
2. 次のwriteでID#5(0x05)に移動する。(ID#197(0xC5)はリセットされる)
という認識で正しいか。
●「ゼロ埋めしてリアロケされてしまうと返品できない」は本当か?
リアロケされると、ID#5(0x05)でカウントされていて、返品できるのではないか?
●ID#197(0xC5)でカウントされていて、
ファームウェアに認識されているセクターは、
ゼロ以外の書き込みでも、リアロケされると考えていいか。
●ID#197(0xC5)がカウントされるのは
読み込み時と書き込み時のどちらか、あるいは両方なのか。
実装として一般的なのはどれか。
Can we believe S.M.A.R.T.?
ttp://www.hdsentinel.com/smart/ Bad sectors?の節より引用:
If it finds a problemmatic area
(one or more sectors where the data is hard to read or write),
過去スレに書き込みでも増えたとの報告があるらしい。
ttp://en.wikipedia.org/wiki/S.M.A.R.T. ID#197(0xC5)の解説より引用:
Number of "unstable" sectors
(waiting to be remapped, because of read errors)
その他関連スレ:
【HDD】SMART読取・解析ソフト7【S.M.A.R.T.】
http://pc12.2ch.net/test/read.cgi/software/1252553791/
Unix系なら、dcflddか。
(sdxのxは使用に合わせて適宜置き換えること)
dcfldd pattern=FF of=/dev/sdx bs=32M; sync
ゼロフィルをやる時にも使え、
dcfldd pattern=00 of=/dev/sdx bs=32M; sync
とやると、
dd if=/dev/zero of=/dev/sdx bs=32M; sync
とやるよりも速い。
bs=32MBにする理由はHDDのキャッシュサイズに
合わせた方が何となく良さそうに思えたから。
syncはHDDのキャッシュは操作できないため、むしろ、
dcfldd pattern=FF of=/dev/sdx bs=32M; dcfldd pattern=FF of=/dev/sdx bs=32M count=1
とやるべき?
余談だが、0xffフィルには
tr '\0' '\377' </dev/zero | dcfldd of=/dev/sdx
なんていう(非効率的だが魅力的な)やり方もある。
ttp://ubuntuforums.org/showthread.php?t=943306
おーい、
>>4 はWDと買い換えスレだけで、どちらもテンプレ厨と
呼ばれてる気違い(同一人物で元海門厨)が暴れるから放置され
てるだけだぞ
自演で買い換えスレのテンプレを変えられたからとWDスレでも
同じ事をやっただけ
てすと
17 :
Socket774 :2010/03/05(金) 03:47:11 ID:FtT98jv/
あげ
low level formatだけじゃアカンの?
-------------------------------ここまでテンプレ-------------------------------
クイックフォーマットでいいんだよ。
そう言えばWDのDLGDIAGって他社のHDDでも使えたな ゼロフィルが早くて便利
22 :
Socket774 :
2010/03/06(土) 00:59:19 ID:KmH8mbsg >>21 1.17はバグ持ちなんでキチンと0梅できてないぞ
1.13ならおkだけど