Linux - badblocks コマンドで HDD 不良ブロックのチェック!
Updated:
こんにちは。
badblocks
コマンドでデバイス (通常は HDD 等のディスクパーティション) 上の 不良ブロックを探すことが可能です。
普段あまり使用しないコマンドなので、備忘録として残しておきます。
0. 前提条件
- Linux Mint 17.1(64bit), CentOS 6.6(32bit), Debian GNU/Linux 7.8.0(64bit) で(非破壊的読み出しチェックのみ)実際に動作確認済み。
1. badblocks コマンド使用例
以下は、非破壊的読み出しチェック(単純なブロック読み出しチェック)を行う例。
# badblocks -sv -o badblocks_sda.txt /dev/sda
Checking blocks 0 to 248831
Checking for bad blocks (read-only test): done
Pass completed, 0 bad blocks found. (0/0/0 errors)
以下は、非破壊的読み出し&書き込みチェック(単純なブロック読み出し&書き込みでチェック)を行う例。
※但し、チェックするデバイスはマウントされていないこと。(-f
オプションで強制的にチェックすることも可能だが、安全でないので避けるべき)
# badblocks -svn -o badblocks_sda.txt /dev/sda
以下は、破壊的読み出し&書き込みチェック(各ブロックにパターンを書き込んだ後、読み出した結果と比較してチェック)を行う例。
※但し、チェックするデバイスはマウントされていない&ファイルシステムが存在しない(データが損なわれてもよいデバイスである)こと。(-f
オプションで強制的にチェックすることも可能だが、クラッシュする可能性を考慮して避けるべき)
# badblocks -svw -o badblocks_sda.txt /dev/sda
よく使用するオプションについて、
-s
チェックの進行状況を出力する。-v
詳細なチェック結果を出力する。-n
マウントされていないデバイスに対して非破壊的読み出し&書き込みチェックを行う。(-w
と同時には使用不可) 単純にブロックを読み書きしてチェックを行う。-w
マウントされていないデバイスに対して破壊的読み出し&書き込みチェックを行う。(-n
と同時には使用不可)
各ブロックにパターン(0xaa
,0x55
,0xff
,0x00
)を書き込み、読み出した結果と比較してチェックを行う。
※ファイルシステムが存在するデバイスに対してこのオプションを使用するとデータ損なわれるので要注意!-o
続けて指定したファイルに不良ブロックの一覧を出力する。(指定しない場合は、標準出力に出力する)-b
続けて指定した数値にブロックサイズを設定する。(デフォルト: 1024(単位:byte))-c
続けて指定した数値に一度にチェックするプロック数を設定する。(デフォルト: 64)
例えば、-b 1024
&-c 1024
で一度に 1KB をチェックできることになる。-i
既に不良ブロック検出済み(-o
で出力済み)の場合、そのファイル名を指定することで検出済み不良ブロックのチェックははスキップできる。(-i
で指定するファイル名と-o
で指定するファイル名は異なること)
その他のオプションや詳細な使用方法等はオプション無しで badblocks
コマンドを実行してヘルプを表示するか、 man bacblocks
で確認可能。
2. 参考サイト
ハードディスクの不調を感じた際にチェックしてみるとよいでしょう。
以上。
Comments