fsck コマンド

目的

ファイルシステムの整合性を検査し、対話式に修復します。

構文

ファスク [ -n ] [ -p ] [ -y ] [ -dブロック番号 ] [ -f ] [ -ii-ノード番号 ] [ -o オプション ] [ -tファイル ] [ -V VfsName ] [ FileSystem1 - FileSystem2 ... ]

説明

重要: システムの誤動作後は、常にファイルシステムで fsck コマンドを実行してください。 修正作業を行うと、データの一部が失われることがあります。 各整合性修正のデフォルト・アクションは、オペレーターが入力するのを待つことです。yesまたはno影響を受けるファイル・システムに対する書き込み許可がない場合、 fsck コマンドはデフォルトでno実際の回答にもかかわらず、回答します。
注:
  1. fsck コマンドは、マウント済みのファイルシステムの修正は行いません。
  2. 修復以外の理由であれば、fsck コマンドをマウント済みのファイルシステムで実行できます。 しかし、ファイルシステムがマウントされたときに誤ったエラー・メッセージが戻される場合があります。

fsck コマンドは整合性のないファイルシステムを検査して、対話式に修正します。 ファイルシステムをマウントする場合は、事前にこのコマンドを実行してください。 その場合、ファイルシステムが存在するデバイス・ファイルを読み取れなければなりません (例えば、/dev/hd0 デバイス)。 通常、ファイルシステムは整合性を持っているので、fsck コマンドは単にファイルシステム内のファイル数、使用ブロック数、フリー・ブロック数などを報告するだけです。 ファイルシステムに不整合がある場合は、fsck コマンドは発見された不整合についての情報を表示し、修正の許可を求めるプロンプトを表示します。

fsck コマンドは修正作業にあたっては慎重で、正しいデータを失う恐れのあるアクションを避けようとします。 しかし場合によっては、fsck コマンドが損傷のあるファイルの破壊を勧めることもあります。 fsck コマンドで必要な修復を実行できないようにすると、ファイルシステムの整合性が損なわれることがあります。 整合性のないファイルシステムをマウントすると、システムがクラッシュすることがあります。

JFS2 ファイルシステムにスナップショットがある場合、 fsck コマンドはそれらを保存しようとします。 このアクションが失敗した場合、スナップショットに、スナップされたファイルシステムの変更前のすべてのイメージが含まれていることは保証されません。 fsck コマンドは、スナップショットおよびスナップショット論理ボリュームを削除します。 fsck コマンドがファイルシステムを変更すると、内部スナップショットは削除されます。

FileSystem パラメーターでファイルシステムを指定しない場合、 fsck コマンドは、 check 属性が True に設定されている /etc/filesystems ファイルにリストされているすべてのファイルシステムを検査します。 スタンザに次の 1 行を追加すると、この検査を実行できます。

check=true
/etc/filesystems ファイル内のファイルシステムをグループ化することによって、複数のファイルシステムに対して検査を行うこともできます。 これを行うには、/etc/filesystems ファイルの中の check 属性を次のように変更してください。
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 コマンドが正常に実行されると、 続いて通常のシステム初期設定が行われます。 通常のシステム初期設定中に、 -f および -p フラグを指定した fsck コマンドが /etc/rc ファイルから実行されます。 このコマンド・シーケンスは、 check 属性が True に設定されているすべてのファイルシステムを検査します。check=true)。 /etc/rc ファイルから実行された fsck コマンドがファイルシステムの整合性を保証できない場合は、システムの初期化が続行されます。 ただし、整合性のないファイルシステムをマウントできないことがあります。 マウントできなければ、システムの初期化が完了しないことがあります。
注: デフォルトでは、 //usr/var、 および /tmp ファイルシステムでは、 check 属性が False に設定されています。check=false) /etc/filesystem スタンザに指定します。 この属性は、次の理由で偽に設定されています。
  1. ブート・プロセスは、//usr/var/tmp ファイルシステムに対して、 明示的に fsck コマンドを実行します。
  2. //usr/var/tmp ファイルシステムは、 /etc/rc ファイルが実行されるときにマウントされます。 fsck コマンドは、マウントされたファイルシステムを変更しません。 また、マウントされたファイルシステム上で fsck コマンドを実行すると、信頼性のない結果が生成されます。

System Management Interface Tool (SMIT) の smit fsck 高速パスを使用して、このコマンドを実行できます。

フラグ

項目 説明
-dブロック番号 指定されたディスク・ブロックへの参照を検索します。 fsck コマンドは、指定されたブロックを含むファイルを検出するたびに、 関連する i ノード番号とすべてのパス名を表示します。 JFS2 ファイルシステムの場合、指定されたブロックを参照している i ノード番号は表示されますが、 パス名は表示されません。
-f 高速検査を行います。 通常は、正しい方法で電源を切らずにシステムを停止したために影響を受けるのは、 そのときにマウントされているファイルシステムだけです。 -f フラグを指定すると、fsck コマンドは、 正常にアンマウントされたファイルシステムの検査を行いません。 この fsck コマンドは、JFSのスーパブロック内のフラグ s_fmod を検査するか、またはのスーパブロック内のフラグ s_state を検査 JFS2 することでこれを決定します。

このフラグはファイルシステムをマウントするたびに設定され、 正常にアンマウントすると消去されます。 ファイルシステムが正常にアンマウントされれば、 何も問題が発生するようなことはありません。 ほとんどのファイルシステムは正常にアンマウントされるため、 このようなファイルシステムは検査されず、検査に要する時間が短縮できます。

-ii-ノード番号 指定された i ノードへの参照を検索します。 fsck コマンドは、指定された i ノードのディレクトリー参照を検出するたびに、 参照先への絶対パス名を表示します。
-n 次を想定:no fsck コマンドによって尋ねられるすべての質問に対する応答。指定されたファイルシステムを書き込み用にオープンしません。
-o オプション fsck コマンドにコンマで区切られたオプションを渡します。 以下のオプションは現在、JFS に対してサポートされます (これらのオプション は新規のファイルシステムでは古いものとなり、無視される可能性があります)。
マウント可能
対象のファイルシステムがマウント可能な (現在アンマウントされている) 場合、値 0 を返して fsck コマンドを正常終了させます。 ファイルシステムがマウント可能でない場合、fsck コマンドは値 8 を返して終了します。
マイタイプ
問題のファイルシステムが /etc/filesystems ファイルで指定されたものと同じタイプの場合、またはコマンド行で V 値 フラグによって指定されたものと同じタイプの場合、 FSCK コマンドは成功 (0) で終了します。 その他の場合は 8 が返されます。 例:fsck -o mytype -V jfs/ (ルート・ファイル・システム) がジャーナル・ファイル・システムの場合、/は 0 の値で終了します。
-p 小さな問題についてのメッセージは表示せず自動的に修正します。 このフラグは、 -y フラグのようにホールセール・ライセンスを認可するものではなく、システムが正常に始動したときに自動検査を実行するのに役立ちます。 システムが自動的に実行される場合は常に、システム始動手続きの一部として、このフラグを使用する必要があります。 1 次スーパーブロックが壊れている場合は、2 次スーパーブロックが確認され、1 次スーパーブロックにコピーされます。
-tファイル fsck コマンドがテーブルを保持するための十分なメモリーを取得できない場合に、検査対象以外のファイルシステム上のスクラッチ・ファイルとして File パラメーターを指定します。 -t フラグを指定せず、 fsck コマンドがスクラッチ・ファイルを必要としている場合には、 fsck コマンドはスクラッチ・ファイル名を求めるプロンプトを表示します。 ただし、 -p フラグを指定した場合は、 fsck コマンドは失敗します。 スクラッチ・ファイルがスペシャル・ファイルでなければ、fsck コマンド終了時に除去されます。
-V VfsName /etc/filesystems ファイルを使用して記述を決定する代わりに、ファイルシステムの VFSName 変数によって指定された仮想ファイルシステムの記述を使用します。 -V VfsName フラグがコマンド行で指定されない場合、 /etc/filesystems ファイルが検査され、マッチング・スタンザの vfs=属性 が正しいファイルシステム・タイプであると想定されます。
-y fsck コマンドが発行するすべての質問に対して、 yes という応答が与えられるものと仮定します。 このフラグによって、 fsck コマンドは必要と考えられるすべての処理を行います。 このフラグは、損傷の激しいファイルシステムだけに使用してください。

セキュリティー

RBAC ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティ特権コマンドデータベースを参照してください。 このコマンドに関連する特権と権限のリストについては、'lssecattrコマンドまたは'getcmdattrサブコマンドを参照のこと。

  1. すべてのデフォルトのファイルシステムを検査するには、次のように入力します。
    fsck
    このコマンドは、マークされたすべてのファイルシステムを検査します。check=true/etc/filesystems ファイル。 このフォーマットの fsck コマンドはファイルシステムに何らかの変更を行う前に、発行者に許可を求めます。
  2. デフォルトのファイルシステムに関する小さな問題を自動的に修正するには、 次のように入力します。
    fsck -p
  3. 特定のファイルシステムを検査するには、次のように入力します。
    fsck /dev/hd1
    このコマンドは、/dev/hd1 デバイス上でアンマウントされたファイルシステムを検査します。

ファイル

項目 説明
/usr/sbin/fsck fsck コマンドが入っています。
/etc/filesystems 既知のファイルシステムをリストし、その特性を定義します。
/etc/vfs 仮想ファイルシステムのタイプに関する記述が入っています。
/etc/rc システム始動時に実行されるコマンド (fsck コマンドなど) が入っています。