E2FSCK
Section: Maintenance Commands (8)
Updated: February 2012
Index
Return to Main Contents
名前
e2fsck - Linux ext2/ext3/ext4 ファイルシステムをチェックする
書式
e2fsck [ -pacnyrdfkvtDFV ] [ -b superblock ] [ -B
blocksize ] [ -l|-L bad_blocks_file ] [ -C fd ] [ -j
external-journal ] [ -E extended_options ] device
説明
e2fsck は ext2/ext3/ext4 系のファイルシステムのチェックに使われる。ジャーナルを使っているファイルシステム ext3 と
ext4
の場合、システムがエラーはないが適切にシャットダウンされていなかった場合、通常は、ジャーナル内のコミット済みのトランザクションを再生した後は、そのファイルシステムには
clean
であるという印が付けられることになる。したがって、ジャーナルを使っているファイルシステムでは、スーパーブロックでさらなるチェックが必要とされていない限り、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
を走らせているプログラムが使用する。ファイルディスクリプタ番号が負の場合、ファイルディスクリプタの絶対値がディスクリプタ値として使用され、最初は進行状況の出力が行わない。後で
SIGUSR1 シグナルを e2fsck プロセスに送ることで出力を有効にできる。指定されたファイルディスクリプタが 0 の場合、
e2fsck は進行状況をプログレスバーで表示する。このためには、 e2fsck がビデオコンソールか端末で実行されている必要がある。
- -d
-
デバッグ情報を出力する (e2fsck をデバッグするときにしか役に立たない)。
- -D
-
ファイルシステム中のディレクトリを最適化する。 このオプションが指定された場合、 e2fsck はすべてのディレクトリの最適化を行おうとする。
ファイルシステムがディレクトリインデクシングをサポートしている場合には、 インデックスを再生成することで、 最適化を行う。
従来の線形的なディレクトリ構造を使うファイルシステムでは、 小さなディレクトリから順にソートして圧縮することで、 最適化を行う。
-
-D オプションが指定されていない場合でも、 e2fsck は時にはいくつかのディレクトリの最適化を行うことがある。 --- 例えば、
ディレクトリインデクシングが有効になっていて、
ディレクトリのインデックスが作成されておらず、インデックスを作成した方がよい場合や、インデックス構造が壊れていて作成し直す必要がある場合、などである。
-D
オプションを指定した場合、そのファイルシステムのすべてのディレクトリの最適化が行われる。その結果、場合によっては、少しサイズが小さくなったり、検索が早くなることがあるが、実際には、このオプションを使う必要がある場面はめったにないだろう。
-
-D オプションを指定すると、1 つのディレクトリ内の重複した名前のディレクトリエントリを検出する。通常 e2fsck
は、性能上の理由からこの検出を行わない。
- -E extended_options
-
e2fsck に拡張オプションを設定する。 拡張オプション間はコンマで区切り、 等号 ('=') に続ける形で引数を取ることもできる。
次のオプションがサポートされている。
-
- ea_ver=extended_attribute_version
-
e2fsck がファイルシステムをチェックする際に必要な、拡張属性ブロックのバージョンを指定する。バージョン番号は 1 または 2
である。デフォルトの拡張属性バージョンフォーマットは 2 である。
- journal_only
-
必要な場合にジャーナルの再生のみを行う。チェックや修復は行わない。
- fragcheck
-
pass 1 で、ファイルシステムのファイルに不連続なブロックがある場合に、詳細なレポートを表示する。
- discard
-
ファイルシステムチェックが完了した後に、空きブロックと未使用 inode を破棄する (ブロックの破棄は、ソリッドステートデバイスとスパース
(sparse) /
シンプロビジョニングされたストレージでは有益である)。破棄は、ファイルシステムの完全なチェックが行われ、かつ認識されたエラーがない場合にのみ、pass
5 で行われる。しかし、e2fsck が問題を認識できないケースでは、このオプションを使うと手動でのデータ修復ができなくなる。
- nodiscard
-
空きブロックと未使用 inode ブロックを破棄しない。このオプションは discard オプションと正反対である。これがデフォルトで設定されている。
- -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 を非対話的に動作させることができる。
このオプションは -p または -y オプションと同時に指定してはならない。
- -p
-
ファイルシステムを質問なしで自動的に修復 (preen) する。 このオプションを指定すると、 e2fsck
は安全に修正できるファイルシステムの問題を、 使用者と対話せずに自動的に修正する。 e2fsck
は、システム管理者が別に正しい行動をとる必要のある問題を見つけると、 問題の説明を表示し、値 4 と返り値の論理 OR をとった値で終了する。
(「返り値」のセクションを参照すること。) 通常、このオプションはシステムのブートスクリプトで使われる。 このオプションは -n または
-y オプションと同時に指定してはならない。
- -r
-
このオプションは何もしない。 過去との互換性のために準備されているだけである。
- -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> が作成した。
関連項目
e2fsck.conf(5), badblocks(8), dumpe2fs(8), debugfs(8),
e2image(8), mke2fs(8), tune2fs(8)
Index
- 名前
-
- 書式
-
- 説明
-
- オプション
-
- 返り値
-
- シグナル
-
- バグ報告
-
- 作者
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 18:50:56 GMT, March 26, 2020