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=ro
を
fslist
に指定すると、
/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