FSTAB(5)

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

書式
#include <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 , MFS および LFS は現在のところデマンドロードは できません)。 いまだに他のファイルシステムも同様に静的に組み込むのを好む人もいるようです。

ufs ローカルの UNIX ファイルシステム

mfs ローカルのメモリベース UNIX ファイルシステム

nfs Sun Microsystems 互換 ``Network File System''

swap
    スワッピングに使用されるディスクパーティション

msdos
    DOS 互換ファイルシステム

cd9660
    ( ISO 9660 による) CD-ROM ファイルシステム

procfs
    プロセスデータへのアクセスのためのファイルシステム

kernfs
    カーネルパラメータへのアクセスのためのファイルシステム

第4フィールド (fs_mntops) は、ファイルシステムに関連するマウントオプションを表します。 これはコンマで区切られたオプションのリストとして記述されます。 これは少なくともマウントの形式(以下の fs_type 参照)を含み、加えてファイルシステム形式に特有のいくつかの追加の オプションを含みます。

``userquota'' および ``groupquota'' オプションの双方、またはいずれかが 指定されている場合、ファイルシステムは自動的に quotacheck(8) コマンドによって処理され、ユーザおよびグループクォータが quotaon(8) で有効にされます。 デフォルトでは、ファイルシステムのクォータは関連するファイルシステムの ルートに置かれた quota.user および quota.group というファイルで管理されます。 これらのデフォルトは、クォータオプションの直後に等号とデフォルトに代わる 絶対パス名を置くことで変更することができます。 従って、 /tmp のユーザクォータファイルを /var/quotas/tmp.user に置く場合、そのファイルの場所は以下のように指定されます。

    userquota=/var/quotas/tmp.user

``noauto'' オプションが指定されている場合、ファイルシステムはシステム 起動時に自動的にマウントされません。

マウント形式は 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 から登場しました。