e2fsckの使い方


Linux 2nd 拡張ファイルシステム (ext2fs) をチェックする

たとえば下記の様なエラーが出た時使用します。(起動時)

INIT: version 2.78 booting
                Welcome to RedHat Linux
          Press 'i' to enter interactive startup.
Mounting proc filesystem                        [ OK ]
Configuring kernel parameters                     [ OK ]
Setting clock : Tue Mar 27 09:50:08 JST 2001           [ OK ]
Loading default keymap                         [ OK ]
Activating swap partitions                        [ OK ]
Setting hostname localhost.localdomain               [ OK ]
Checking root filesystem                        [ OK ]
/dev/hda1 contains a file system with errors, check forced.
Duplicate or bad blocks in use!

: /dev/sda*: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
      (i.e., without -a or -p options)
                                       [FAILED]

*** An error occurred during the file system check.
*** Dropping you to a shell; the system will reboot
*** when you leave the shell.
Give root password for maintenance
(or type Control-D for normal startup):_   ← Rootパスワードを入力します。
                              (又、Control-Dを押下するとリブートします。)
[root@*****]# e2fsck -p /dev/sda*     ← 問題のあるドライブに対して行う。

無事にe2fsckコマンドが終了したら再起動掛けて調査する。


オプション

-a
このオプションは -p オプションと同様のものとみなされる。下位互換性のためにのみ準備されているオプションであるため、できる限り -p オプションを使うことをお勧めする。

-b superblock
通常のスーパーブロックのかわりに、 superblock をスーパーブロックとして利用する。このオプションが用いられるのは、プライマリなスーパーブロックが壊れた場合である。ほとんどのファイルシステムでは、プライマリなスーパーブロックはブロック 8193, 16385... に置かれている。代替のスーパーブロックが指定され、ファイルシステムがリードオンリー以外でオープンされている場合、 e2fsck はファイルシステムのチェックが終わったときにプライマリのスーパーブロックを適切な値に更新するかどうかの確認を求める。

-B blocksize
通常 e2fsck は、 適切なブロックサイズを探すためにスーパーブロックを様々なブロックサイズでサーチする。この作業は無駄な場合がある。このオプションは、ブロックサイズを指定してスーパーブロックをサーチするよう指定する。スーパーブロックが見付からない場合、 e2fsck は致命的なエラー(fatal error)で終了する。

-c
このオプションを指定すると e2fsck は badblocks(8) プログラムを呼び出してファイルシステムに不良ブロックがないかを調べ、不良ブロックを不良ブロック inode に加える。

-C
このオプションを指定すると e2fsck は作業状況を指定したファイルディスクリプタに書き出し、ファイルシステムのチェックの進行状況をモニターできるようにする。このオプションは、 e2fsck を動作させるプログラムから良く用いられる。指定されたファイルディスクリプタが 0 の場合、 e2fsck は作業を進めるごとに棒グラフを出力する。この動作をさせるには、 e2fsck をビデオコンソールか端末から実行する必要がある。

-d
デバッグ情報を出力する。 (e2fsck のデバッグ以外には役に立たない)

-f
ファイルシステムが clean な場合でも、強制的にチェックする。

-F
チェックを始める前に、ファイルシステムデバイスのキャッシュバッファをフラッシュする。 e2fsck を用いたタイムトライアルにのみ有用。

-l filename
filename によって指定されるファイルに書かれているブロックリストを、不良ブロックのリストに追加する。このファイルのフォーマットは badblocks(8) プログラムが出力するものと同じである。

-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)を表示する。このオプションを重ねて指定すると、さらに詳細な統計が得られる。

-v
表示を冗長にする。

-V
バージョン情報を表示して終了する。

-y
全ての問いに対して「yes」と答える。これによって e2fsck を非対話的に動作させることができる。