badblocks -
デバイス上の不良ブロックを探す
badblocks [
-svwnf ] [
-b block-size ] [
-c
blocks_at_once ] [
-i input_file ] [
-o
output_file ] [
-p num_passes ] [
-t
test_pattern ]
device [
last-block ] [
start-block
]
badblocks はデバイス
(通常はディスクパーティション)
上の
不良ブロックを探すために使用される。
device
はデバイスに対応するスペシャルファイルである
(例:
/dev/hdc1)。
last-block
はチェックされる最終ブロックである。
指定されない場合、デフォルトではデバイスの最終ブロックが使われる。
start-block
は、テストを開始するブロックを指定するパラメータである
(省略可能)。
これを用いると、ディスクの途中からテストを開始できる。
指定されない場合、デフォルトではディスクの開始ブロックが使われる。
重要な注意: badblocks
の出力を
e2fsck や
mke2fs
といったプログラムに与える場合には、
ブロックサイズを正しく指定することが大切である。
生成されたブロック番号は、ファイルシステムにおいて、
どのようなブロックサイズを用いるかに大きく依存するからである。
このため、
badblocks
を直接ユーザが利用することはできるだけ避けるほうがよい。
代わりに
e2fsck や
mke2fs の
-c
オプションを用いるようにすることを強く勧める。
-
-b block-size
- ブロックサイズをバイト単位で指定する。
デフォルトは 1024
である。
-
-c number of blocks
- ブロックをまとめて何個ずつテストするかを指定する。
デフォルトは 64
である。
- -f
- 通常 badblocks
は、マウントされているデバイスに対しては、
読み出し/書き込みテストや非破壊テストを行わない。
このいずれもシステムをクラッシュさせたり、
(たとえリードオンリーでマウントされていても)
ファイルシステムを壊す可能性があるからである。
-f
フラグを使えばこの動作を強制できるが、
まず用いないようにする方がよい。
自分が badblocks
プログラムよりも賢いと考えるなら別だが、
ほとんどそんなことは無いはずだ。
このオプションが唯一安全なのは、/etc/mtab
が間違っていて、
デバイスが実際にはマウントされていない場合だけである。
-
-i input_file
- 既存の不良ブロックのリストを読み込む。
不良ブロックであることが分かっているため、
badblocks
はこれらのブロックのテストを飛ばす。
input_file が "-"
と指定された場合、リストを標準入力から読み込む。
ここで挙げられたリストにあるブロックは、
標準出力や出力ファイルに書き出される
新たに見つかった不良ブロックのリストからは除かれる。
dumpe2fs(8) の -b
オプションを使うと、
既存のファイルシステム上で不良ブロックとして
マークされているブロックのリストを、
このオプションで使用するのに適した形式で取り出すことができる。
-
-o output_file
- 指定されたファイルに不良ブロックのリストを書き出す。
このオプションを指定しない場合、
badblocks
は標準出力にリストを表示する。このファイルのフォーマットは、
e2fsck(8) や mke2fs(8) の -l
オプションで使用するのに適している。
-
-p num_passes
- 新たな不良ブロックが見つからなくなるまで、
num_passes
回連続でディスクのスキャンを繰り返す。
デフォルトは 0 で、
badblocks は最初の 1
回で終了する。
-
-t test_pattern
- ディスクブロックから読み出す
(ディスクブロックに書き込む)
テストパターンを指定する。
test_pattern は 0 以上 ULONG_MAX-1
以下の数値でも文字列
"random" でもよい。
"random"
はブロックをランダムなビットパターンで埋めることを表す。
読み出し/書き込み (
-w) モードと非破壊
(-n) モードでは、
使いたい各テストパターンについて
-t
を指定することで、複数のテストパターンを指定することができる。
読み出しだけのモードでは
1
つのパターンしか指定することができず、
"random"
は指定できない。 1
つのパターンを指定した読み出しだけのテストでは、
指定されたパターンが前もってディスクに書き込まれていると仮定する。
指定されたパターンが書き込まれていない場合は、
たくさんのブロックが検証に失敗する。
複数のパターンが指定された場合、
(1
つのブロックに対して)
1
つのパターンをテストした後に
次のパターンをテストするようにして、
全てのブロックをテストする。
- -n
- 非破壊の読み出し/書き込みモードを使う。
デフォルトでは、非破壊読み出しテストだけが行われる。
このオプションと -w
オプションは一方しか指定できないので、同時に指定してはならない。
- -s
- スキャンの進行状況を表示する。ブロックがチェックされるごとに
そのブロックの番号を書き出す。
- -v
- 詳細な表示を行う。
- -w
- 書き込みモードでテストする。このオプションを指定すると、
badblocks
はデバイスの各ブロックに、あるパターン
(0xaa, 0x55, 0xff, 0x00) を書き込み、
またそれを読み出して比べることにより、不良ブロックを探索する。
このオプションを -n
オプションと組み合わせて使うことはできない。
この 2
つのオプションはどちらか一方しか指定できない。
ファイルシステムが存在するデバイスに対して
-w
オプションを使用してはならない。
このオプションはデータを消去する。
既存のファイルシステムに書き込みモードテストをする場合は、
代わりに
-n
オプションを使うこと。
-n
オプションでのテストは遅いが、データは保存される。
badblocks は Remy Card <
[email protected]>
によって作成された。
現在のメンテナは Theodore Ts'o
<
[email protected]> である。
非破壊の読み出し/書き込みテストは
David Beattie <
[email protected]>
が実装した。
badblocks は e2fsprogs
パッケージの一部であり、
http://e2fsprogs.sourceforge.net
で入手できる。
e2fsck(8),
mke2fs(8)