FSTAB(5)

名称
fstab - ファイルシステムに関する静的情報

書式
<fstab.h>

解説
fstab ファイルは、さまざまなファイルシステムについて記述した情報を格納します。 fstab はプログラムによって読み出されるだけで、書き込みはされません。 このファイルを適切に作成、保守するのはシステム管理者の責務です。 各ファイルシステムは個別の行に記述されます。 各々の行のフィールドはタブまたはスペースによって区切られます。 fsck(8), mount(8), umount(8) が fstab を通じて必要な処理を連続して繰り返すため、 fstab のレコードの順序は重要な意味を持ちます。

第 1 フィールド (fs_spec) はマウントされるブロック型スペシャルデバイス、またはリモートのファイル システムを表します。 ufs 形式のファイルシステムでは、特殊ファイル名はブロック型特殊ファイル名であり、 キャラクタ型特殊ファイル名ではありません。 プログラムがキャラクタ型特殊ファイル名を必要とする場合、そのプログラム が特殊ファイル名の中の最後の ``/'' の後ろに ``r'' を追加することで キャラクタ特殊ファイル名を作成する必要があります。

第 2 フィールド (fs_file) はファイルシステムのマウントポイントを表します。 スワップパーティションでは、このフィールドには ``none'' と記述すべきです。

第 3 フィールド (fs_vfstype) はファイルシステムの形式を表します。 システムはさまざまなファイルシステム形式をサポートできます。 ルート、 /usr および /tmp のファイルシステムだけはカーネルに静的に組み 込まれている必要があります。 他のすべてのファイルシステムはマウント時に自動的にロードされます (例外 : UFS 系 - FFS, LFS は現在のところデマンドロードは できません)。 いまだに他のファイルシステムも同様に静的に組み込むのを好む人もいるようです。

第 4 フィールド (fs_mntops) は、ファイルシステムに関連するマウントオプションを表します。 これはコンマで区切られたオプションのリストとして記述されます。 これは少なくともマウントの形式 (以下の fs_type 参照) を含み、加えてファイルシステム形式に特有のいくつかの追加の オプションを含みます。 指定可能なオプションフラグに関しては、 mount(8) ページおよび mount_nfs(8) 等のファイルシステム固有のページの、オプションフラグ (-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.conf(5) 変数を使用し、 rc(8) 起動スクリプトのネットワークファイルシステムタイプのリストを 拡張する必要があります。

マウント形式は fs_mntops フィールドから取り出され、 fs_type フィールドに個別に保存されます ( fs_mntops フィールドからは削除されません)。 fs_type が ``rw'' または ``ro'' ならば、 fs_file フィールドで指定されたファイルシステムは、読み書き可能、または読み出し 専用で指定の特殊ファイルに正常にマウントされます。 fs_type が ``sw'' ならば、特殊ファイルはシステムのリブート処理の最後に swapon(8) コマンドによってスワップ領域の一部として使用されます。 fs_spec と fs_type 以外のフィールドは使用されません。 fs_type が ``xx'' と指定されている場合、このエントリは無視されます。 これは、現在使用されていないディスクパーティションを表すのに便利です。

第 5 フィールド (fs_freq) は、どのファイルシステムがダンプされる必要があるか決定するために dump(8) コマンドによって使用されます。 第5フィールドが与えられていない場合は 0 が返され、 dump コマンドはそのファイルシステムをダンプする必要がないと見なします。

第 6 フィールド (fs_passno) は、リブート時にファイルシステムのチェックが行われる順序を決定するために fsck(8) プログラムによって使用されます。 ルートファイルシステムは fs_passno に 1、他のファイルシステムは fs_passno に 2 が指定されているべきです。 １つのドライブ内のファイルシステムは逐次的にチェックされますが、 異なるドライブ上のファイルシステムは、ハードウェアの並列性を利用して 同時にチェックされます。 第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) ルーチンを使用します。

関連ファイル
/etc/fstab
    fstab ファイルは /etc に存在します。

関連項目
getfsent(3), getvfsbyname(3), dump(8), fsck(8), mount(8), quotacheck(8), quotaon(8), swapon(8), umount(8)

歴史
fstab ファイルフォーマットは 4.0BSD から登場しました。