第 1 フィールド (Fa fs_spec ) はマウントされるブロック型スペシャルデバイス、またはリモートのファイル システムを表します。 ufs 形式のファイルシステムでは、特殊ファイル名はブロック型特殊ファイル名であり、 キャラクタ型特殊ファイル名ではありません。 プログラムがキャラクタ型特殊ファイル名を必要とする場合、そのプログラム が特殊ファイル名の中の最後の ``/'' の後ろに ``r'' を追加することで キャラクタ特殊ファイル名を作成する必要があります。
第 2 フィールド (Fa fs_file ) はファイルシステムのマウントポイントを表します。 スワップパーティションでは、このフィールドには ``none'' と記述すべきです。
第 3 フィールド (Fa fs_vfstype ) はファイルシステムの形式を表します。 システムはさまざまなファイルシステム形式をサポートできます。 ルート、 /usr および /tmp のファイルシステムだけはカーネルに静的に組み 込まれている必要があります。 他のすべてのファイルシステムはマウント時に自動的にロードされます (例外 : UFS 系 - FFS, LFS は現在のところデマンドロードは できません)。 いまだに他のファイルシステムも同様に静的に組み込むのを好む人もいるようです。
第 4 フィールド (Fa fs_mntops ) は、ファイルシステムに関連するマウントオプションを表します。 これはコンマで区切られたオプションのリストとして記述されます。 これは少なくともマウントの形式 (以下の Fa fs_type 参照) を含み、加えてファイルシステム形式に特有のいくつかの追加の オプションを含みます。 指定可能なオプションフラグに関しては、 mount(8) ページおよび mount_nfs8 等のファイルシステム固有のページの、オプションフラグ (-o ) を参照してください。
``userquota'' および ``groupquota'' オプションの双方、またはいずれかが 指定されている場合、ファイルシステムは自動的に quotacheck(8) コマンドによって処理され、ユーザおよびグループクォータが quotaon(8) で有効にされます。 デフォルトでは、ファイルシステムのクォータは関連するファイルシステムの ルートに置かれた quota.user および quota.group というファイルで管理されます。 これらのデフォルトは、クォータオプションの直後に等号とデフォルトに代わる 絶対パス名を置くことで変更することができます。 従って、 /tmp のユーザクォータファイルを /var/quotas/tmp.user に置く場合、そのファイルの場所は以下のように指定されます。
userquota=/var/quotas/tmp.user
``noauto'' オプションが指定されている場合、ファイルシステムはシステム 起動時に自動的にマウントされません。 サードパーティタイプのネットワークファイルシステム (ベースシステムに含まれない追加ソフトウェアがサポートするタイプ) がシステム起動時に自動的にマウントされるようにするには、 extra_netfs_types rc.conf5 変数を使用し、 rc(8) 起動スクリプトのネットワークファイルシステムタイプのリストを 拡張する必要があります。
マウント形式は Fa fs_mntops フィールドから取り出され、 Fa fs_type フィールドに個別に保存されます ( Fa fs_mntops フィールドからは削除されません)。 Fa fs_type が ``rw'' または ``ro'' ならば、 Fa fs_file フィールドで指定されたファイルシステムは、読み書き可能、または読み出し 専用で指定の特殊ファイルに正常にマウントされます。 Fa fs_type が ``sw'' ならば、特殊ファイルはシステムのリブート処理の最後に swapon(8) コマンドによってスワップ領域の一部として使用されます。 Fa fs_spec と Fa fs_type 以外のフィールドは使用されません。 Fa fs_type が ``xx'' と指定されている場合、このエントリは無視されます。 これは、現在使用されていないディスクパーティションを表すのに便利です。
第 5 フィールド (Fa fs_freq ) は、どのファイルシステムがダンプされる必要があるか決定するために dump(8) コマンドによって使用されます。 第5フィールドが与えられていない場合は 0 が返され、 dump コマンドはそのファイルシステムをダンプする必要がないと見なします。
第 6 フィールド (Fa fs_passno ) は、リブート時にファイルシステムのチェックが行われる順序を決定するために fsck(8) プログラムによって使用されます。 ルートファイルシステムは Fa fs_passno に 1、他のファイルシステムは Fa fs_passno に 2 が指定されているべきです。 1つのドライブ内のファイルシステムは逐次的にチェックされますが、 異なるドライブ上のファイルシステムは、ハードウェアの並列性を利用して 同時にチェックされます。 第6フィールドが与えられていないか 0 の場合、0 が返され、 fsck(8) コマンドはそのファイルシステムをチェックする必要がないと見なします。
#define FSTAB_RW "rw" /* 読み書き可能デバイス */ #define FSTAB_RQ "rq" /* クォータ付き読み書き可能デバイス */ #define FSTAB_RO "ro" /* 読み出し専用デバイス */ #define FSTAB_SW "sw" /* スワップデバイス */ #define FSTAB_XX "xx" /* 完全に無視 */ struct fstab { char *fs_spec; /* ブロック型スペシャルデバイス名 */ char *fs_file; /* ファイルシステムのパスのプレフィックス */ char *fs_vfstype; /* ufs,nfs などのファイルシステム形式 */ char *fs_mntops; /* -o に準拠したマウントオプション */ char *fs_type; /* fs_mntops から FSTAB_* のコピー */ int fs_freq; /* ダンプ周期の日数 */ int fs_passno; /* 並列 fsck のパス番号 */ };
fstab のレコードを適切に読み出すには、 getfsent(3), getfsspec(3), getfstype(3), getfsfile(3) ルーチンを使用します。