ブート中には、ブートスクリプト /sbin/rcS を使用して、ハードディスクからマウントされるファイルシステムごとに予備チェックが実行されます。このスクリプトは、ルート (/) と /usr のファイルシステムをチェックします。他の rc シェルスクリプトが、fsck コマンドを使用して他のファイルシステムを順番にチェックします。ファイルシステムが並行にチェックされることはありません。「fsck pass」の数値が 1 より大きい場合も、ブート中にはファイルシステムは順番にチェックされます。
ファイルシステムを直接指定せずに、ファイルシステムをチェックしたりマウントするコマンドを実行すると、各コマンドは、ファイルシステムテーブル (/etc/vfstab) を調べ、各種フィールドで指定された情報を使用して処理を行います。fsck pass フィールドは、ファイルシステムチェックのための情報を指定します。「mount at boot」フィールドは、ブート時にファイルシステムをマウントするための情報を指定します。
新しいファイルシステムを作成する場合は、ブート時にチェックするかどうかとマウントするかどうかを示すエントリを /etc/vfstab に追加します。/etc/vfstab ファイルにエントリを追加する方法の詳細は、第 28 章「ファイルシステムのマウントとマウント解除の手順」を参照してください。
/etc/vfstab ファイル内の情報は、各システムのスライスとファイルシステムに固有です。次の例は、/etc/vfstab ファイルを示しています。
$ more /etc/vfstab #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options #/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr ufs 1 yes - /proc - /proc proc - no - fd - /dev/fd fd - no - swap - /tmp tmpfs - yes - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s6 /dev/rdsk/c0t0d0s6 /usr ufs 2 no - /dev/dsk/c0t0d0s7 /dev/rdsk/c0t0d0s7 /opt ufs 3 yes - pluto:/export/svr4/man - /usr/man nfs no yes - $ |
表 31-3 に、「fsck pass」フィールドの機能を示します。
表 31-3 「fsck pass」フィールド
フィールドの設定 |
機能 |
備考 |
---|---|---|
- (ハイフン) |
ファイルシステムの状態に関係なく、汎用 fsck コマンドはファイルシステムをチェックしない。 |
読み取り専用ファイルシステム、リモートファイルシステム、/proc などの疑似ファイルシステムに対してはハイフンを指定してチェックを行わないように指示する。 |
0 以上 |
ファイルシステム専用の fsck コマンドが呼び出される。 |
UFS ファイルシステムに対して 0 が指定された場合、ファイルシステムはチェックされない。 |
1 以上かつ fsck -o p を使用 |
ファイルシステム専用の fsck で、自動的に UFS ファイルシステムを並列にチェックする。 |
この値には 1 より大きい任意の数値を使用できる。 |
preen モードでは、fsck は 1 ディスクごとに 1 つしか有効なファイルシステムをチェックできず、あるチェックが完了した後でなければ次のチェックを開始しません。fsck は、ファイルシステムが存在するデバイスのメジャー番号とマイナー番号を使用して、自動的に異なるディスク上のファイルシステムを同時にチェックする方法を決定します。
fsck pass 番号が 1 であれば、ファイルシステムは /etc/vfstab ファイルに表示される順番にチェックされます。通常、ルート (/) ファイルシステムの fsck pass は 1 に設定されます。
fsck は、fsck pass 番号を使用せずにファイルシステムのチェック順を決定します。