e2fsck - システム管理コマンドの説明 - Linux コマンド集 一覧表
名前
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) プログラムを呼び出してファイルシステムの不良ブロックを探し、 見つかったものを不良ブロック inode に加える。 このオプションが 2 つ指定されると、 不良ブロックのスキャンは非破壊的 read-write テストを用いて行われる。
- -C fd
- このオプションを指定すると e2fsck は作業状況を指定したファイルディスクリプタに書き出し、 ファイルシステムのチェックの進行状況をモニターできるようにする。 このオプションは、 e2fsck を動作させるプログラムから良く用いられる。 指定されたファイルディスクリプタが 0 の場合、 e2fsck は作業を進めるごとに棒グラフを出力する。 この動作をさせるには、 e2fsck をビデオコンソールか端末から実行する必要がある。
- -d
- デバッグ情報を出力する ( e2fsck をデバッグするときにしか役に立たない)。
- -D
- ファイルシステム中のディレクトリを最適化する。 このオプションを指定すると、 e2fsck はすべてのディレクトリを最適化しようとする。 ファイルシステムがディレクトリインデクシングをサポートしていれば、 インデックスを再生成する。 また従来の線形的なディレクトリ構造を使うファイルシステムでは、 小さなディレクトリから順にソートして圧縮する。
- -E extended_options
-
e2fsck に拡張オプションを設定する。
拡張オプション間はコンマで区切り、
等号 ('=') に続ける形で引数を取ることもできる。
次のオプションがサポートされている。
- ea_ver= extended_attribute_version
-
対象ファイルシステムの拡張属性ブロックのフォーマットを、
指定したバージョン番号のものであると仮定する。
バージョン番号には 1 または 2 が指定できる。
デフォルトの拡張属性フォーマットのバージョンは 2 である。
- -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
- ファイルシステムを質問なしで自動的に修復 (preen) する。
- -r
- このオプションは何もしない。 過去との互換性のために準備されているだけである。
- -s
- このオプションはファイルシステムのバイトスワップ (エンディアンの変更) を行う。 すなわち、i386 やリトルエンディアンで標準的なバイトオーダーにする。 ファイルシステムがすでに標準的なバイトオーダーになっているならば、 e2fsck は何もしない。
- -S
- ファイルシステムがバイトスワップされている場合でも、 現在のバイトオーダーを保つ。
- -t
- e2fsck のタイミング統計 (statistics) を表示する。 このオプションを 2 つ指定すると、より詳細なタイミング統計が 次々と得られる。
- -v
- 詳細な表示をする。
- -V
- バージョン情報を表示して終了する。
- -y
- 全ての問いに対して「yes」と答える。これによって e2fsck を非対話的に動作させることができる。
返り値
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> によって作成された。