e2fsck(8) 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
このオプションを指定すると、 e2fsckbadblocks(8) を使ってデバイスの read-only スキャンを行い、不良ブロックを探す。 不良ブロックが見つかると、それを不良ブロック inode に加え、 ファイルやディレクトリとして確保 (allocate) されないようにする。 このオプションが 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 または -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_ALLC に設定して、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 <[email protected]> によって作成された。