FSCK

Section: System Administration (8)
Updated: February 2009
Index Return to Main Contents
 

名前

fsck - Linux ファイルシステムのチェックと修復を行う  

書式

fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-options]  

説明

fsck は (ひとつまたは複数の) Linux ファイルシステムをチェックし、また指定すれば修復も行う。 filesys に指定できるのは、デバイス名 (例: /dev/hdc1, /dev/sdb2)、 マウントポイント (例: /, /usr, /home)、 ファイルシステムラベルまたは UUID 指定 (例: UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd または LABEL=root) である。 通常 fsck は、物理的に異なるディスク上にある複数のファイルシステムを並列的に チェックし、全ファイルシステムのチェックに要する時間を短縮しようとする。

コマンドラインからファイルシステムがひとつも指定されず、 かつ -A オプションも指定されなかった場合は、 fsck はデフォルトの動作として /etc/fstab に書かれているファイルシステムを逐次的にチェックする。 これは -As オプションを指定した場合の動作と同じである。

fsck の返り値は、以下の状態を表す数の和となる:

0
エラーなし
1
ファイルシステムのエラーが修正された
2
システムをリブートする必要がある
4
ファイルシステムのエラーが修正されないまま残っている
8
操作エラー
16
利用法・文法のエラー
32
fsck がユーザ要求によってキャンセルされた
128
共有ライブラリのエラー

複数のファイルシステムをチェックした場合の返り値は、 チェックした各ファイルシステムの返り値に対して、 ビットごとの OR をとったものになる。

fsck は、実際には Linux で利用できるさまざまなファイルシステムチェッカー (fsck.fstype) への単なるフロントエンドにすぎない。 ファイルシステム固有のチェッカーは、環境変数 PATH 内で探される。 PATH が定義されていない場合、"/sbin" 内で探す。

詳細はファイルシステム固有のチェッカーのマニュアルを参照すること。  

オプション

-l
ディスクデバイス全体に対して、排他 flock(2) ロックファイル (/run/fsck/<diskname>.lock) を作成する。 このオプションは 1 つのデバイスのみに使える (つまり、-A-l は同時に指定できない)。 このオプションは、複数の fsck(8) インスタンスが同時に実行される場合に推奨される。 このオプションは、複合デバイスや非回転ディスクでは無視される。 fsck はスタックデバイス (例えば MD または DM) のチェックをする場合には、 下層のデバイスをロックしない - この機能は、まだ実装されていない。
-r [fd]
各 fsck が完了した際に、ある程度の統計情報を表示する。 この統計情報には、返り値、(キロバイト単位の) 最大実行セットサイズ (run set size)、 fsck の実行に使われた全ての経過クロック時間、ユーザー CPU 時間、システム CPU 時間が含まれる。 例:

/dev/sda1: status 0, rss 92828, real 4.002804, user 2.677592, sys 0.86186

GUI フロントエンドにはファイルディスクリプタ fd 指定することができる。 この場合、棒グラフの情報は、マシンが解析しやすい形式で、ファイル ディスクリプタに送られる。 例:

/dev/sda1 0 92828 4.002804 2.677592 0.86186

-s
fsck の動作を逐次的にする。 複数のファイルシステムをインタラクティブ (対話) モードでチェックする際に有用。 (注意: デフォルトでは e2fsck(8) の動作は対話モードである。 e2fsck(8) を非対話モードで動作させるには、 -p オプションか -a オプションを使用する。 また非対話的にエラーを自動修復させたい場合は -n オプションを利用する。)
-t fslist
チェックするファイルシステムのタイプを指定する。 -A オプションが指定されている場合は、 fslist にマッチするファイルシステムのみをチェックする。 fslist パラメータは、コンマで区切られたファイルシステムとオプション指定の リストである。 このコンマ区切りのリストに含まれるファイルシステムのすべてに、 否定演算子 'no' または '!', を前置することもできる。 これにより、 fslist にリストされていないファイルシステムだけがチェックされる。 fslist のファイルシステムすべてに否定演算子が付けられていない場合は、 fslist にリストされているファイルシステムのみがチェックされる。 (訳註: リストの一部だけに否定演算子を付けることはできない)

オプション指定をコンマで区切った形で fslist に含めても良い。 これらは opts=fs-option という書式でなければならない。 オプション指定が存在すると、 /etc/fstab のマウントオプションのフィールドに fs-option があるファイルシステムのみがチェックされる。 オプション指定の前に否定演算子がある場合は、 /etc/fstab のマウントオプションのフィールドに fs-option がないファイルシステムのみがチェックされる。

例えば、 opts=rofslist に指定すると、 /etc/fstab にリストされているファイルシステムのうち、 ro オプションを持つものだけがチェックされる。

fsck プログラムへの非公式なユーザインターフェース変更に依存した ブートスクリプトを使っている Mandrake ディストリビューションとの互換性のため、 fslist にファイルシステムタイプ loop があった場合、 -t オプションの引き数として opts=loop が指定されていると仮定する。

通常ファイルシステムのタイプは、 filesys/etc/fstab ファイルから検索して見つかったエントリから取得する。 ファイルシステムのタイプが取得できず、かつ 1 つのファイルシステムだけが -t オプションの引き数になっている場合、 fsck はそれを利用する。 指定してあるファイルシステムタイプを利用できない場合は、 デフォルトのファイルシステムタイプ (現時点では ext2) を利用する。

-A
/etc/fstab に列記されているファイルシステムをすべてチェックする。 このオプションを用いれば、複数のファイルシステムに対して fsck をひとつひとつ 単独で実行しなくてもよいため、システムの初期設定ファイルである /etc/rc 中でよく利用される。

-P オプション (後述) が指定されていなければ、ルートファイルシステムが最初にチェック される。 その後、 /etc/fstab ファイルの第 6 フィールドである fs_passno の順序にしたがって他のファイルシステムがチェックされる。 fs_passno の値が 0 であるファイルシステムは、スキップされて一切チェックされない。 fs_passno の値が 0 より大きいファイルシステムは、小さい fs_passno 値を持ったものを優先し、順番にチェックされる。 同じ番号が指定されているファイルシステムが複数ある場合には、 fsck はそれらを並列してチェックしようとする。 しかし同じ物理ディスクにあるファイルシステムの同時チェックは避ける。

fsck はスタックデバイス (RAID, dm-crypt, ...) を他のデバイスと並列してチェックしない。 以下の FSCK_FORCE_ALL_PARALLEL の設定を参照すること。 /sys ファイルシステムを使って、デバイス間の依存関係を決定する。

したがって、 /etc/fstab に対する最も普通の設定は、ルートファイルシステムの fs_passno を 1 とし、他のすべてのファイルシステムの fs_passno を 2 とするものである。 こうすると fsck は、(効果が期待できる場合には) 自動的にファイルシステムチェッカーを同時に並列して動作させる。 何らかの理由で複数ファイルシステムの並列チェックをしたくない 場合には、システム管理者はこの設定をしてはいけない。 たとえばマシンのメモリが少なく、余分なページングが問題になる場合 などがこれにあたる。

fsck はファイルシステム固有のチェッカーを呼ぶ前に、デバイスが実際に 存在するかを確認しない。 よって、ブート中にファイルシステム固有のチェッカーが致命的な エラーを返した場合、 デバイスが存在しないと、システムがファイルシステムの修復モードに 入ってしまう。 /etc/fstab のマウントオプション nofail は、存在しないデバイスを fsck にスキップさせるために使われる。 fsck は、特別なファイルシステムタイプ auto が指定されているデバイスが存在しない場合にも、スキップする。

-C [fd]
作業完了分・残り分の棒グラフをサポートしているファイルシステム チェッカー (現在 ext2,3,4 用のものだけ) に、表示を行わせる。 fsck は一度にひとつのチェッカーだけが表示を行うように、複数の チェッカーを管理する。 GUI フロントエンドにはファイルディスクリプタ fd を指定することができる。 この場合、棒グラフの情報はファイルディスクリプタに送られる。
-M
マウントされているファイルシステムはチェックしない。 その場合、終了コード 0 を返す。
-N
実際には実行せず、何が行われるかだけを表示する。
-P
-A オプションが指定されている場合、ルートファイルシステムを他の ファイルシステムと並列にチェックする。 ルートファイルシステムが壊れている場合には e2fsck(8) 自体が壊れている可能性もあるため、 このオプションを用いるのは安全性を損なうことになる。 このオプションは、ルートファイルシステムを小さくコンパクトな パーティションに切りなおしたくないシステム管理者向けのオプション である (ルートファイルシステムを小さくコンパクトにまとめるのが正しい 解なのだが)。
-R
-A オプションを用いて全てのファイルシステムをチェックする際に、 ルートファイルシステムをチェックしないようにする (ルートファイルシステムがすでに read/write でマウントされている場合)。
-T
起動時にタイトルを表示しない。
-V
fsck から起動されるシステム固有のコマンドを含め、詳細な表示をする。
-?, --help
ヘルプを表示して、終了する。
--version
バージョン情報を表示して、終了する。
 

ファイルシステム固有のオプション

fsck が理解しないオプションは、ファイルシステム固有のチェッカーに渡される。

これらのオプションは引き数をとってはならない。 なぜなら、どのオプションが引き数をとるか (とらないか) を fsck が正しく判断できる方法がないためである。

-- 以降に指定したオプションと引き数は、ファイルシステム固有のオプション として、ファイルシステム固有のチェッカーに渡される。

fsck は任意の複雑なオプションをファイルシステム固有のチェッカーに渡すようには 設計されていない点に注意すること。 複雑なことをやろうとするときは、ファイルシステム固有のチェッカーを直接 実行してほしい。 非常に複雑なオプションと引き数を fsck に渡した場合に、期待した動作をしなかったとしても、 バグとして報告するには及ばないfsck にやらせるべきではないことを、あなたがやったのだから。 ファイルシステム固有の fsck のオプションは、標準化されていない。  

ファイル

/etc/fstab  

環境変数

fsck プログラムの振舞いは、以下の環境変数による影響を受ける。
FSCK_FORCE_ALL_PARALLEL
この環境変数が設定されていると、 fsck は指定されたファイルシステムすべてを、それらのファイルシステムが 同じデバイス上にあるように見えるかどうかを問わず、 並列にチェックしようとする。 (これは IBM や EMC などの会社から販売されているような、 RAID システムやハイエンドのストレージシステムで有用である。) fs_passno の値が使われる点に注意すること。
FSCK_MAX_INST
この環境変数は、同時に動作するファイルシステムチェッカーの最大数を 制限する。 この指定を行えば、多数のディスクを備えたシステムにおいて fsck がたくさんのファイルシステムチェッカーを同時に起動し、 システムで利用できる CPU やメモリなどの資源に 過度の負荷を与えてしまうことを避けることができる。 この値を 0 にすると、spawn するプロセス数の制限がなくなる。 現在はこれがデフォルトだが、 fsck の将来の版では、OS からアカウンティングデータを取得することにより、 同時に行うファイルシステムチェックの数を自動的に決めるようになる かもしれない。
PATH
PATH 環境変数はファイルシステムチェッカーを探索する際に用いられる。
FSTAB_FILE
この環境変数を用いると、システム管理者は /etc/fstab ファイルの標準的な置場所を変更できる。 これは fsck のテストを行う開発者にとっても便利である。
LIBBLKID_DEBUG=all
libblkid のデバッグ出力を有効にする。
LIBMOUNT_DEBUG=all
libmount のデバッグ出力を有効にする。
 

関連項目

fstab(5), mkfs(8), fsck.ext2(8) または fsck.ext3(8) または e2fsck(8), cramfsck(8), fsck.jfs(8), fsck.nfs(8), fsck.minix(8), fsck.msdos(8), fsck.vfat(8), fsck.xfs(8), reiserfsck(8)  

著者

Theodore Ts'o <tytso@mit.edu>
Karel Zak <kzak@redhat.com>
 

入手方法

fsck コマンドは util-linux パッケージの一部であり、 Linux Kernel Archive から入手できる。


 

Index

名前
書式
説明
オプション
ファイルシステム固有のオプション
ファイル
環境変数
関連項目
著者
入手方法

This document was created by man2html, using the manual pages.
Time: 11:01:08 GMT, April 21, 2020