ブロックサイズが4096バイトの4TBドライブがあります。不良セクタについては、ブロック700,000,000の周りの非常に具体的なブロックセットを確認したいと思います。
しかし、停止と開始ブロックの数だけがサポートされているbadblocks
ようですint32
。つまり、このブロック範囲を指定することはできません。
このドライブで不良ブロックを検索する他の方法はありますか?ドライブ全体をテストするために7時間待たないのです。これはアレイの単一ドライブなので、mdadm
利用可能なファイルシステムは含まれません。
答え1
より大きなブロックサイズを使用するように指示するbadblocks
と、2TB以上で動作します。私はこれをWD 6TBドライブに使用しました。
badblocks -b 4096 -v /dev/sda
答え2
不良ブロックを2^32に制限するパッチ
これらの特定の制限を追加するために、不良ブロックへのパッチがあるようです。ここを参照してください。回答:[パッチ04/25] libext2fs:64ビット不良ブロック番号を拒否。
From: "Darrick J. Wong" <darrick.wong <at> oracle.com>
Date: Wed, 23 Oct 2013 19:43:32 -0400
Subject: [PATCH] libext2fs: reject 64bit badblocks numbers
Don't accept block numbers larger than 2^32 for the badblocks list,
and don't run badblocks on them either.
Signed-off-by: Darrick J. Wong <darrick.wong <at> oracle.com>
Signed-off-by: Theodore Ts'o <tytso <at> mit.edu>
- ソースコードは
badblocks
e2fsprogsコードベースの一部です。 gitリポジトリが利用可能ここ。 - メインプロジェクトページはここ。
- これを修正したコードベースパッチはこんな感じです。libext2fs:64ビット不良ブロック番号の拒否。
不良ブロックのサポートは追加されませんか?
badblocks
近い将来でもこの機能は利用できないようです。
抜粋回答:[パッチ18/31] libext2fs:不良ブロックは48ビットブロック番号を正しく処理する必要があります。
はい、現時点では不良ブロックが残っていると考えており、大規模ディスクアレイの場合、ブロック交換はLVM、ストレージアレイ、またはHDDレベルでほぼ確実に行われます。したがって、64ビットブロック番号をmke2fsに渡す場合は、mke2fsでエラーが発生することをお勧めします。
- Ted
別の方法がありますか?
私はその派生や代替を無駄に見つけましたbadblocks
が、何も見つかりませんでした。唯一のオプションは、次の商用ツールを使用することです。スピンレットまたはオープンソースツールHDAT2。 HDDメーカーが提供するさまざまなドライブフィットネスツール(DFT)のいずれかを使用することもできます。おそらくこれらのいずれかを使用すると、2^32障壁を破ることができるでしょう。
何をすべきか?
表のオプションの中でHDAT2とSpinRiteを使用して大きな成功を収めたので、おそらく700Mの範囲のブロック領域をスキャンするために使用します。