FSCK_EXT2FS(8)

名称
fsck_ext2fs - EXT2 ファイルシステムの一貫性チェックおよび対話的な修正

書式
fsck_ext2fs [-b block#] [-c level] [-d] [-f] [-m mode] [-p] [-y] [-n] filesystem ...

解説
fsck_ext2fs は、コマンドラインで指定した各ファイルシステムを対話的にチェック、 修正するものです。 通常は fsck(8) から起動されます。

カーネルは、ハードウェアやソフトウェアの障害が起きない限り、ある特定のクラスの 無害なファイルシステム上の不整合しか起こさないように動作します。 これには以下のものがあります:

参照されていない inode
inode のリンクカウントの過多
フリーマップ中にないフリーブロック
フリーマップとファイルの両方にあるブロック
スーパーブロックのカウント異常

``preen'' モード (-p オプションつきのモード) での fsck_ext2fs では、上記の不整合だけを修正します。これら以外の不整合を発見すると、 fsck_ext2fs は異常を表す終了ステータスをもって終了します。 不整合を修正するたびに、修正が行われたファイルシステムと 修正の内容が表示されます。 ファイルシステムの修正に成功すると、 fsck_ext2fs はファイルシステム中のファイル数、使用中ブロックとフリーブロックの数を 表示します。

ファイルシステムのチェック中に QUIT シグナルが送られると、 fsck_ext2fs はチェックを終了させて、異常を表す終了ステータスをもって終了します。

-p オプションがない場合には、 fsck_ext2fs はファイルシステムの検査を行い、不整合を対話的に修正します。 もしファイルシステムに不整合があると、修正を行う前にオペレータに確認を 求めます。 -p オプションによって修正できないような修正作業は、 ファイルのデータがいくらか失われる可能性があることに注意すべきです。 失われるデータの量とその致命度は、診断出力から知ることができます。 デフォルトでは、個々の一貫性修正は、オペレータが yes または no と答えるまで待つことになっています。 オペレータにファイルシステムへの書込み権限がない場合には、 fsck_ext2fs は -n フラグの動作をデフォルトとします。

fsck_ext2fs は以下のフラグを解釈します:

-b  このフラグの直後に指定した番号のブロックを、ファイルシステムの スーパーブロックとして使用します。 通常は、ブロック番号 8193 が代替スーパーブロックになります。

-d  デバッグ出力を表示します。

-f  ファイルシステムのチェックを強制します。 通常は、unmount が手際よく行われていた場合には、カーネルは “clean フラグ” をそのファイルシステムのスーパブロックにセットし、 fsck_ext2fs はそのファイルシステムのチェックを行いません。このオプションは、 clean フラグの状態に関係なく fsck_ext2fs にファイルシステムのチェックを強制させます。

-m  lost+found ディレクトリを作成する場合のファイル属性を、デフォルトである 1777 の 代りに、このフラグの直後で指定した 8 進数の値を使用します。 特に、失われたファイルをシステム上の全てのユーザにアクセスされないように するためには、より制限の厳しい 700 などの許可属性にすべきです。

-n  fsck_ext2fs からの ‘CONTINUE?’ を除くすべての問い合わせに no と答えます。 このオプションでは、ファイルシステムを書込み属性ではオープンしません。

-p  上で示した ``preen'' モードを指定します。

-y  fsck_ext2fs からのすべての問い合わせに yes と答えます。 このオプションを指定すると、 本質的な過度のトラブルに遭遇した後でも無制限に作業を続行するので、 充分に注意して使用すべきです。

ファイルシステムは、以下の点について検査されます:
1.  複数の inode やフリーマップから使用されているブロック
2.  ファイルシステム領域外の inode から使用されているブロック
3.  不正なリンクカウント
4.  サイズのチェック:
    サイズがファイルシステムのブロックサイズの倍数でないディレクトリ
    部分的に切り詰められているファイル
5.  不正な inode フォーマット
6.  どこからも使用されていないブロック
7.  ディレクトリのチェック:
    割り当てられていない inode を指しているファイル
    範囲外の inode 番号
    最初の 2 つのエントリが `.' と `..' でないか、不正な inode 番号を持つ ディレクトリ
8.  スーパーブロックのチェック:
    ファイルシステムにある inode よりも多いブロック
    不正なフリーブロックマップフォーマット
    フリーブロックの総数やフリーな inode の総数の誤り

親のいないファイルやディレクトリ (割り当てられているが参照されていない) は、 オペレータへ問い合わせたあとで lost+found ディレクトリ下に再接続されます。その際のファイル名は inode 番号になります。 もし lost+found ディレクトリが存在しない場合は、新たに作成されます。 充分なスペースがない場合には、そのサイズが拡張されます。

ブロックデバイスとバッファキャッシュの不一致を避けるため、 つねに raw デバイスを指定すべきです。

診断
fsck_ext2fs が提供する診断の仕組みは、 Fsck - The UNIX File System Check Program. の Appendix A に全て列挙し説明してあります。

関連項目
fstab(5), fs(5), fsck(8), fsdb(8), newfs(8), reboot(8)