名前
e2fsck - Linux ext2/ext3
ファイルシステムをチェックする
書式
e2fsck [ -pacnyrdfkvstDFSV ] [ -b
superblock ] [ -B blocksize ] [ -l|-L
bad_blocks_file ] [ -C fd ] [ -j
external-journal ] [ -E extended_options ]
device
説明
e2fsck は Linux 第 2
拡張ファイルシステム
(ext2fs) をチェックする。
e2fsck
はジャーナル付きの
ext2
ファイルシステムもサポートする。
このファイルシステムは
ext3
ファイルシステムとも呼ばれ、
この場合は通常の
e2fsck
処理を行う前に、まずジャーナルをファイルシステムに適用する。
ジャーナルを適用した後、ファイルシステムは通常
clean
であるとマークされる。
よって、ext3
ファイルシステムに対しては、
e2fsck
は通常ジャーナルを実行して終了するだけになる
(ただしスーパーブロックに、
より詳細なチェックを要求する内容が記述されている場合は別)。
device
はファイルシステムが保存されているデバイスファイルである
(例: dev/hdc1)。
マウントされているファイルシステムに対して
e2fsck
を実行するのは、一般的に言って、安全でないという点に注意すること。
唯一の例外は、 -n
が指定されていて、かつ
-c, -l, -L
オプションが指定されていない場合である。
しかし安全に実行できたとしても、
ファイルシステムがマウントされているときに
e2fsck
で表示される結果は有効ではない。
マウントされているファイルシステムをチェックすべきか否かを
e2fsck
が質問してきた場合、唯一の正しい答えは
``no'' である。
何をしているかを本当に分かっているエキスパートのみが、
この質問に対して別の答えを出すかを考えるべきである。
オプション
- -a
- このオプションは -p
オプションと同様のものとみなされる。
下位互換性のためにのみ準備されているオプションであるため、
できる限り -p
オプションを使うことが推奨される。
- -b superblock
- 通常のスーパーブロックのかわりに、
superblock
をスーパーブロックとして利用する。
このオプションが用いられるのは、
プライマリなスーパーブロックが壊れた場合である。
バックアップスーパーブロックの場所は、
ファイルシステムのブロックサイズによって異なる。
ファイルシステムのブロックサイズが
1k の場合、
バックアップスーパーブロックは
8193 にある。
また、ブロックサイズが
2k の場合は 16384 に、 4k
の場合は 32768
にある。
- バックアップ用の追加スーパーブロックの位置を決めるには、
mke2fs プログラムを -n
オプション付きで実行して、
スーパーブロックが生成された場所を表示させればよい。
スーパーブロックの正確な場所を表示させたければ、
-b
オプションでファイルシステムのブロックサイズを指定して
mke2fs
を実行しなければならない。
- 代替スーパーブロックが指定され、
ファイルシステムが
read-only 以外で open
されている場合、 e2fsck
はファイルシステムのチェックが終わったときに
プライマリのスーパーブロックを適切な値に更新するかどうかの
確認を求める。
- -B blocksize
- 通常 e2fsck は、
適切なブロックサイズを探すために
スーパーブロックを様々なブロックサイズでサーチする。
この作業は無駄な場合がある。このオプションは、
ブロックサイズを指定してスーパーブロックをサーチするよう指定する。
スーパーブロックが見つからない場合、
e2fsck
は致命的なエラー (fatal
error) で終了する。
- -c
- このオプションを指定すると、
e2fsck は badblocks(8)
を使ってデバイスの
read-only
スキャンを行い、不良ブロックを探す。
不良ブロックが見つかると、それを不良ブロック
inode に加え、
ファイルやディレクトリとして確保
(allocate)
されないようにする。
このオプションが 2
つ指定されると、
不良ブロックのスキャンは非破壊的
read-write
テストを用いて行われる。
- -C fd
- このオプションを指定すると
e2fsck
は作業状況を指定したファイルディスクリプタに書き出し、
ファイルシステムのチェックの進行状況をモニターできるようにする。
このオプションは、
e2fsck
を動作させるプログラムから良く用いられる。
指定されたファイルディスクリプタが
0 の場合、 e2fsck
は作業を進めるごとに棒グラフを出力する。
この動作をさせるには、
e2fsck
をビデオコンソールか端末から実行する必要がある。
- -d
- デバッグ情報を出力する
(e2fsck
をデバッグするときにしか役に立たない)。
- -D
- ファイルシステム中のディレクトリを最適化する。
このオプションを指定すると、
e2fsck
はすべてのディレクトリを最適化しようとする。
ファイルシステムがディレクトリインデクシングをサポートしていれば、
インデックスを再生成する。
また従来の線形的なディレクトリ構造を使うファイルシステムでは、
小さなディレクトリから順にソートして圧縮する。
- -E
extended_options
- e2fsck
に拡張オプションを設定する。
拡張オプション間はコンマで区切り、
等号 ('=')
に続ける形で引数を取ることもできる。
次のオプションがサポートされている。
- -f
- ファイルシステムが
clean
な場合でも、強制的にチェックする。
- -F
- チェックを始める前に、ファイルシステムデバイスのキャッシュバッファを
フラッシュする。
e2fsck
を用いたタイムトライアルにのみ有用。
- -j
external-journal
- このファイルシステムの外部ジャーナルがあるパス名を設定する。
- -k
- -c
オプションと組み合わせると、
不良ブロックリストにある既存の不良ブロックは保存され、
badblocks(8)
を実行して見つかった新たな不良ブロックが
既存の不良ブロックリストに追加される。
- -l filename
- filename
で指定したファイルにリストされているブロック番号を
不良ブロックのリストに追加する。このファイルのフォーマットは
badblocks(8)
プログラムが出力するものと同じである。
ブロック番号はファイルシステムのブロックサイズに基づいていることに注意。
したがって正しい結果を得るためには
badblocks(8)
にファイルシステムのブロックサイズを与えなければならない。
よって、 e2fsck に -c
オプションを与える方が、ずっと単純かつ安全である。
このオプションを指定すれば、正しいパラメータが
badblocks
プログラムに渡ることになっている。
- -L filename
- filename
で指定したファイルに書かれているブロックリストを、
不良ブロックのリストに指定する。
(このオプションは
-l
オプションとは異なり、ファイルにリストされているブロックを
不良ブロックリストに加える前に、
不良ブロックリストをいったんクリアする。)
- -n
- ファイルシステムを
read-only で open
し、全ての問いに対して「no」と答える。
e2fsck
を非対話的に動作させることができる。(注意:
-n
オプションに加えて
-c, -l, -L
のいずれかのオプションを付加した場合は、
不良ブロックリストを更新するためにファイルシステムは
read/write
でオープンされる。
ただしファイルシステム自体は変更されない。)
このオプションは -p
または -y
オプションと同時に指定してはならない。
- -p
- ファイルシステムを質問なしで自動的に修復
(preen) する。
このオプションを指定すると、
e2fsck
は安全に修正できるファイルシステムの問題を、
使用者と対話せずに自動的に修正する。
e2fsck
は、システム管理者が別に正しい行動をとる必要のある問題を見つけると、
問題の説明を表示し、値
4 と返り値の論理 OR
をとった値で終了する。
(「返り値」のセクションを参照すること。)
通常、このオプションはシステムのブートスクリプトで使われる。
このオプションは -n
または -y
オプションと同時に指定してはならない。
- -r
- このオプションは何もしない。
過去との互換性のために準備されているだけである。
- -s
- このオプションはファイルシステムのバイトスワップ
(エンディアンの変更)
を行う。
すなわち、i386
やリトルエンディアンで標準的なバイトオーダーにする。
ファイルシステムがすでに標準的なバイトオーダーになっているならば、
e2fsck
は何もしない。
- -S
- ファイルシステムがバイトスワップされている場合でも、
現在のバイトオーダーを保つ。
- -t
- e2fsck
のタイミング統計
(statistics) を表示する。
このオプションを 2
つ指定すると、より詳細なタイミング統計が
次々と得られる。
- -v
- 詳細な表示をする。
- -V
- バージョン情報を表示して終了する。
- -y
- 全ての問いに対して「yes」と答える。これによって
e2fsck
を非対話的に動作させることができる。
このオプションは -n
または -p
オプションと同時に指定してはならない。
返り値
e2fsck
の返り値は、以下の状態を表す数の和になる。
0 - エラーなし
1 - ファイルシステムのエラーが修正された
2 - ファイルシステムのエラーが修正された。
システムをリブートしなければならない
4 - ファイルシステムのエラーが修正されないまま
残っている
8 - 操作エラー
16 - 利用法・文法のエラー
32 - e2fsck
がユーザ要求によってキャンセルされた
128 - 共有ライブラリエラー
シグナル
以下のシグナルが
e2fsck
に送られると、記述されているような効果を及ぼす。
- SIGUSR1
- このシグナルを送ると
e2fsck
は作業状況の棒グラフの表示を始める
(-C
オプションの記述を見よ)。
- SIGUSR2
- このシグナルを送ると
e2fsck
は作業状況の棒グラフの表示をやめる。
バグ報告
どんなソフトウェアにもバグはつきものである。
もしも e2fsck
がクラッシュしたり、
e2fsck
によって修復できない事態が発生したりした場合は、
作者に連絡してほしい。
バグ報告にはできるだけ多くの情報を入れてほしい。
e2fsck
の完全な実行記録があれば、
私はどのようなエラーが発生しているかを確認することができる。
(e2fsck
で表示されるメッセージが英語であることを確認してほしい。
e2fsck
のメッセージが他の言語に翻訳されるようにシステムが設定されている場合は、
環境変数 LC_ALL を C
に設定して、e2fsck
の出力の実行記録が私にとって役立つようにしてほしい。)
実行記録を書き込むことのできるファイルシステムがあるなら、
script(1)
プログラムを用いれば、簡単に
e2fsck
の出力を保存できる。
dumpe2fs(8)
の出力も役に立つ。
特定の inode の不良が
e2fsck
の動作をおかしくしているようなら、
debugfs(8)
コマンドを起動し、該当する
inode に対して stat
コマンドを実行して、その出力を送ってほしい。
その inode
がディレクトリである場合は、debugfs
の dump
コマンドを利用すれば、ディレクトリ
inode
の内容を取り出すことができる。
その内容を uuencode(1)
にかければ、そのまま私に報告することができる。
バグを再現するためにユーザが送ることのできる最も有用なデータは、
e2image(8)
を使って生成されるファイルシステムの圧縮された
raw
イメージダンプである。
より詳細な情報は
e2image(8)
を参照すること。
私に報告する際には、どのバージョンなのか私にわかるよう、
e2fsck
の実行時に表示されるバージョン文字列を必ず入れてほしい。
著者
このバージョンの
e2fsck は、Theodore Ts'o <tytso@mit.edu>
によって作成された。
関連項目
badblocks(8), dumpe2fs(8), debugfs(8),
e2image(8), mke2fs(8), tune2fs(8)