fsck コマンド
目的
ファイルシステムの整合性を検査し、対話式に修復します。
構文
fsck [ -n ] [ -p ] [ -y ] [ -dBlockNumber ] [ -f ] [ -ii-NodeNumber ] [ -o Options ] [ -tFile ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ]
説明
- fsck コマンドは、マウント済みのファイルシステムの修正は行いません。
- 修復以外の理由であれば、fsck コマンドをマウント済みのファイルシステムで実行できます。しかし、ファイルシステムがマウントされたときに誤ったエラー・メッセージが戻される場合があります。
fsck コマンドは整合性のないファイルシステムを検査して、対話式に修正します。 ファイルシステムをマウントする場合は、事前にこのコマンドを実行してください。 その場合、ファイルシステムが存在するデバイス・ファイルを読み取れなければなりません (例えば、/dev/hd0 デバイス)。 通常、ファイルシステムは整合性を持っているので、fsck コマンドは単にファイルシステム内のファイル数、使用ブロック数、フリー・ブロック数などを報告するだけです。 ファイルシステムに不整合がある場合は、fsck コマンドは発見された不整合についての情報を表示し、修正の許可を求めるプロンプトを表示します。
fsck コマンドは修正作業にあたっては慎重で、正しいデータを失う恐れのあるアクションを避けようとします。 しかし場合によっては、fsck コマンドが損傷のあるファイルの破壊を勧めることもあります。 fsck コマンドで必要な修復を実行できないようにすると、ファイルシステムの整合性が損なわれることがあります。 整合性のないファイルシステムをマウントすると、システムがクラッシュすることがあります。
JFS2 ファイルシステムにスナップショットがある場合、fsck コマンドはそれを保存しようとします。 このアクションが失敗した場合、スナップショットに、スナップされたファイルシステムの変更前のすべてのイメージが含まれていることは保証されません。 fsck コマンドは、スナップショットおよびスナップショット論理ボリュームを削除します。fsck コマンドがファイルシステムを変更した場合は、内部スナップショットが削除されます。
FileSystem パラメーターでファイルシステムを指定しないと、 fsck コマンドは /etc/filesystems ファイルに登録されたすべてのファイルシステムを検査して、 check 属性が真に設定されているかどうかを調べます。スタンザに次の 1 行を追加すると、この検査を実行できます。
check=true
check=Number
Number パラメーターは、fsck コマンドに、
特定のファイルシステムがどのグループに含まれているかを通知します。
共通ログ・デバイスを使用するファイルシステムは、同じグループに入れる必要があります。
ファイルシステムの検査は、一度に 1 つずつ、グループ順に、次に
/etc/filesystems ファイル
に登録されている順に行われます。すべての
check=true
ファイルシステムはグループ
1
にあります。fsck コマンドは、コマンド・ラインまたは
/etc/filesystems ファイル内で指定された順序に関係なく、
どのファイルシステムよりも前にルート・ファイルシステムを検査しようとします。
fsck コマンドは次の不整合を検査します。
- 複数のファイルに割り当てられたブロックまたはフラグメント。
- 重複するブロック番号またはフラグメント番号がある i ノード。
- 範囲外のブロック番号またはフラグメント番号がある i ノード。
- ファイルに対するディレクトリーの参照数とファイルのリンク・カウントとの差。
- 不正に割り当てられているブロックまたはフラグメント。
- ディスク・マップ内で空きを示すマークが付いているブロック番号またはフラグメント番号が入っている i ノード。
- 破壊されたブロック番号またはフラグメント番号がある i ノード。
- i ノード内の最後のディスク・アドレスでないフラグメント。この検査は、圧縮されたファイルシステムには適用されません。
- フラグメントがある 32KB を超えるファイル。この検査は、圧縮されたファイルシステムには適用されません。
- サイズ検査:
- 間違ったブロック数。
- 512 バイトの倍数でないディレクトリー・サイズ。
- ディレクトリー検査:
- i ノード・マップ内で空きを示すマークが付いている i ノード番号があるディレクトリー・エントリー。
- 範囲外の i ノード番号。
- 存在していない、またはディレクトリー自身を指していないドット (.) リンク。
- 存在していない、または親ディレクトリーを指していないドット・ドット (..) リンク。
- 参照されていないファイル、または到達できないディレクトリー。
- 整合性のないディスク・マップ。
- 整合性のない i ノード・マップ。
孤立ファイルや孤立ディレクトリー (アクセス不可) は、指定により、ファイルシステムの / (ルート) ディレクトリー内の lost+found サブディレクトリーに入れると再接続できます。指定する名前は i ノード番号です。 fsck コマンドが孤立ファイルに再接続できるように指定しないと、 コマンドは、ファイルを破棄する許可を要求します。
fsck コマンドは、メッセージの他に、終了値により検査と修復の結果を記録します。 終了値は次の条件の合計になります。
項目 | 説明 |
---|---|
0 | 検査済みファイルシステムにはすべて問題ありません。 |
2 | 検査または修復終了前に fsck コマンドが中断されました。 |
4 | fsck コマンドがファイルシステムを変更しました。ユーザーは直ちにシステムを再始動させなければなりません。 |
8 | ファイルシステムには未修復の損傷が含まれています。 |
fsck コマンドを実行するには、ファイル・システムの基礎となる論理ボリューム・デバイスへの排他的アクセスが必要です。基礎となるデバイスが使用不可であるために fsck が失敗した場合、デバイスが空いてオープンできるようになった後で fsck を再試行する必要があります。
システムをディスクからブートすると、ブート・プロセスは /、 /usr、/var、/tmp ファイルシステム で -f および -p フラグを指定した fsck コマンドを明示的に実行します。fsck コマンドがこのいずれかのファイルシステム上で失敗に終わると、システムはブートしません。 このシステムをブートする前には、取り外し可能なメディアからブートし、保守作業を実行する必要があります。
- ブート・プロセスは、/、 /usr、/var、 /tmp ファイルシステムに対して、 明示的に fsck コマンドを実行します。
- /、/usr、 /var、/tmp ファイルシステムは、 /etc/rc ファイルが実行されるときにマウントされます。 fsck コマンドは、マウントされたファイルシステムを変更しません。 また、マウントされたファイルシステム上で fsck コマンドを実行すると、信頼性のない結果が生成されます。
System Management Interface Tool (SMIT) の smit fsck 高速パスを使用して、このコマンドを実行できます。
フラグ
項目 | 説明 |
---|---|
-dBlockNumber | 指定されたディスク・ブロックへの参照を検索します。 fsck コマンドは、指定されたブロックを含むファイルを検出するたびに、 関連する i ノード番号とすべてのパス名を表示します。 JFS2 ファイルシステムの場合、指定されたブロックを参照している i ノード番号は表示されますが、 パス名は表示されません。 |
-f | 高速検査を行います。
通常は、正しい方法で電源を切らずにシステムを停止したために影響を受けるのは、
そのときにマウントされているファイルシステムだけです。
-f フラグを指定すると、fsck コマンドは、
正常にアンマウントされたファイルシステムの検査を行いません。
fsck コマンドは、ファイルシステム・スーパーブロック内の、
s_fmod フラグを検査することにより、
正常にアンマウントされたファイルシステムを判別します。
このフラグはファイルシステムをマウントするたびに設定され、 正常にアンマウントすると消去されます。ファイルシステムが正常にアンマウントされれば、 何も問題が発生するようなことはありません。 ほとんどのファイルシステムは正常にアンマウントされるため、 このようなファイルシステムは検査されず、検査に要する時間が短縮できます。 |
-ii-NodeNumber | 指定された i ノードへの参照を検索します。fsck コマンドは、指定された i ノードのディレクトリー参照を検出するたびに、 参照先への絶対パス名を表示します。 |
-n | fsck コマンドのすべての質問に対して no と いう応答が与えられるものと見なします。指定したファイルシステムは書き込み用にオープンされません。 |
-o Options | fsck コマンドにコンマで区切られたオプションを渡します。
以下のオプションは現在、JFS に対してサポートされます (これらのオプション
は新規のファイルシステムでは古いものとなり、無視される可能性があります)。
|
-p | 小さな問題についてのメッセージは表示せず自動的に修正します。 このフラグは、-y フラグとは異なり、 すべてをシステム側にまかせるわけではありません。 システムの通常の始動時に自動検査を行う場合に役に立ちます。システムが自動的に実行される場合は常に、システム始動手続きの一部として、このフラグを使用する必要があります。1 次スーパーブロックが壊れている場合は、2 次スーパーブロックが確認され、1 次スーパーブロックにコピーされます。 |
-tFile | fsck コマンドでテーブルを格納するための十分なメモリーが 獲得できない場合に、File パラメーターを検査対象のファイルシステム以外のファイルシステム上のスクラッチ・ファイルとして指定します。 -t フラグを指定せず、 fsck コマンドがスクラッチ・ファイルを必要としている場合には、 fsck コマンドはスクラッチ・ファイル名を求めるプロンプトを表示します。 ただし -p フラグを指定している場合は、 fsck コマンドは正常に実行されません。スクラッチ・ファイルがスペシャル・ファイルでなければ、fsck コマンド終了時に除去されます。 |
-V VfsName | /etc/filesystems ファイルの代わりに、VFSName 変数で指定された仮想ファイルシステムの記述を使って、記述を決定します。コマンド・ラインに -V VfsName フラグを指定しないと、 /etc/filesystems ファイルが検査され、 一致するスタンザの vfs=Attribute が、 正しいファイルシステム・タイプであると見なされます。 |
-y | fsck コマンドが発行するすべての質問に対して、 yes という応答が与えられるものと仮定します。このフラグによって、 fsck コマンドは必要と考えられるすべての処理を行います。 このフラグは、損傷の激しいファイルシステムだけに使用してください。 |
セキュリティー
例
- すべてのデフォルトのファイルシステムを検査するには、次のように入力します。
このコマンドは、/etc/filesystems ファイル内の check=true のマークが付いているファイルシステムすべてを検査します。このフォーマットの fsck コマンドはファイルシステムに何らかの変更を行う前に、発行者に許可を求めます。fsck
- デフォルトのファイルシステムに関する小さな問題を自動的に修正するには、
次のように入力します。
fsck -p
- 特定のファイルシステムを検査するには、次のように入力します。
このコマンドは、/dev/hd1 デバイス上でアンマウントされたファイルシステムを検査します。fsck /dev/hd1
ファイル
項目 | 説明 |
---|---|
/usr/sbin/fsck | fsck コマンドが入っています。 |
/etc/filesystems | 既知のファイルシステムをリストし、その特性を定義します。 |
/etc/vfs | 仮想ファイルシステムのタイプに関する記述が入っています。 |
/etc/rc | システム始動時に実行されるコマンド (fsck コマンドなど) が入っています。 |