E2FSCK(8)

名前
e2fsck - Linux 第 2 拡張ファイルシステム (ext2fs) をチェックする

書式
e2fsck [ -pacnyrdfvstFSV ] [ -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)。

オプション

-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  このオプションを指定すると 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
    このファイルシステムの外部ジャーナルがあるパス名を設定する。

-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 の完全な実行記録があれば、 私はどのようなエラーが発生しているかを確認することができる。 実行記録を書き込むことのできるファイルシステムがあるなら、 script(1) プログラムを用いれば、簡単に e2fsck の出力を保存できる。

dumpe2fs(8) の出力も役に立つ。 特定の inode の不良が e2fsck の動作をおかしくしているようなら、 debugfs(8) コマンドを起動し、該当する inode に対して stat コマンドを実行して、その出力を送ってほしい。 その inode がディレクトリである場合は、debugfs の dump コマンドを利用すれば、ディレクトリ inode の内容を取り出すことができる。 その内容を uuencode(1) にかければ、そのまま私に報告することができる。

私に報告する際には、どのバージョンなのか私にわかるよう、 e2fsck の実行時に表示されるバージョン文字列を必ず入れてほしい。

著者
このバージョンの e2fsck は、Theodore Ts'o <tytso@mit.edu> によって作成された。

関連項目
mke2fs(8), tune2fs(8), dumpe2fs(8), debugfs(8)