EN JA
FSTAB(5)
FSTAB(5) FreeBSD File Formats Manual FSTAB(5)

名称

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

書式

#include < fstab.h>

解説

ファイル fstab は、様々なファイルシステムに関して記述した情報を含んでいます。 fstab は、プログラムによって読み込まれるだけであり、書き込まれません。このファイルを適切に作成して、保守することは、システム管理者の責任です。各ファイルシステムは、個別の行に記述されます。各行のフィールドは、タブまたは空白によって区切られます。 fsck(8), mount(8)umount(8) は、それらが行うことを fstab を通して連続して繰り返すので、 fstab のレコードの順序は、重要です。

1 番目のフィールド ( fs_spec) は、マウントされるスペシャルデバイス、またはリモートのファイルシステムを記述しています。内容は、 strunvis(3) 関数によってデコードされます。これによって、フィールド分離記号ほかとして解釈されるデバイス名で空白またはタブを使用することができます。

2 番目のフィールド ( fs_file) は、ファイルシステムのマウントポイントを記述しています。スワップパーティションでは、このフィールドには、“none”と記述すべきです。内容は、上記のように strunvis(3) 関数によってデコードされます。

3 番目のフィールド ( fs_vfstype) はファイルシステムの形式を記述しています。システムはさまざまなファイルシステム形式をサポートできます。ルート (/)、/usr と /tmp ファイルシステムのみ、静的にカーネルにコンパイルされる必要があります。ほかのすべては、マウント時に自動的にロードされます。 (例外: 現在、FFS を、デマンドロードすることができません。) いまだに他のファイルシステムを同様に静的にコンパイルすることを好む人もいます。

4 番目のフィールド ( fs_mntops) は、ファイルシステムに関連するマウントオプションを記述します。コンマで区切られたオプションのリストとして書式化されます。それは、少なくともマウントのタイプ (下記の fs_type を参照) とファイルシステムタイプに適切なあらゆる追加のオプションを含みます。指定される追加のオプションについて、 mount_nfs(8) のような、 mount(8) ページのオプションフラグ ( -o) とファイルシステム特有のページを参照してください。ファイルシステム特有のマウントコマンドに与えることができる、すべてのオプションも、同様に fstab で使用することができます。それらは、少し異なって形式化されている必要があります。先行する -o フラグなしで -o オプションの引数を使用することができます。他のオプションは、ファイルシステム特有のフラグと等号によって分離された引数の両方を必要とします。例えば、 msdosfs(5) ファイルシステムをマウントするためのオプションは、次の通りです。

-o sync -o noatime -m 644 -M 755 -u foo -g bar

これらは、

sync,noatime,-m=644,-M=755,-u=foo,-g=bar

fstab のオプションフィールドで上記のように書かれているべきです。

オプション“userquota”および“groupquota”が指定されているなら、ファイルシステムは、自動的に quotacheck(8) コマンドによって処理され、ユーザおよびグループのディスククォータは、 quotaon(8) で有効にされます。デフォルトで、ファイルシステムのクォータは、関連するファイルシステムのルートに位置する quota.userquota.group という名前のファイルで保守されます。これらのデフォルトは、クォータオプションに続く等号と代わりの絶対パス名を置くことによって上書きされます。したがって、 /tmp のためのユーザクォータファイルが /var/quotas/tmp.user に格納されるなら、この位置は、次のように指定することができます:

userquota=/var/quotas/tmp.user

オプション“failok”が指定されるなら、システムは、そのファイルシステムのマウントの間に起こるどんなエラーも無視し、そうでなければ、システムは、シングルユーザモードに落ちます。このオプションは、 mount(8) コマンドによって実装され、カーネルに渡されません。

オプション“noauto”が指定されるなら、ファイルシステムは、システムの起動時に自動的にマウントされません。システム起動時に自動的にマウントされるサードパーティタイプ (すなわち、基本システムに含まれない追加のソフトウェアによってサポートされるタイプ) のネットワークファイルシステムについては、 extra_netfs_types rc.conf(5) 変数が rc(8) 起動時のスクリプトのネットワークファイルシステムのタイプのリストを拡張するために使用されなければならないことに注意してください。

オプション“late”が指定されるなら、ファイルシステムは、リモートのマウントポイントがマウントされた後、システムの起動時の段階で自動的にマウントされます。このオプションに関するより詳細については、 mount(8) マニュアルページを参照してください。

マウントのタイプは、 fs_mntops フィールドから抽出され、 fs_type フィールド (それは、 fs_mntops フィールドから削除されません) に個別に格納されます。 fs_type が“rw”または“ro”であるなら、名前が fs_file フィールドで与えられたファイルシステムは、通常、指定されたスペシャルファイルに読み込み書き込み、または読み込み専用でマウントされます。

fs_type が“sw”であるなら、スペシャルファイルは、システムのリブート処理の終りに swapon(8) コマンドによってスワップ空間の一部として利用可能とされます。 vnode に裏打ちされたスワップ空間について、“file”は、 fs_mntops フィールドでサポートされます。 fs_specmd(4) デバイスファイル (“md” or “md[0-9]*”) で、“file”が fs_mntopts で指定されるなら、 md(4) デバイスは、外部記憶装置として使用される指定されたファイルで作成され、次に、新しいデバイスは、スワップ空間として使用されます。 .eli デバイスのスワップエントリは、暗号化されたデバイスの自動生成を引き起こします。“ealgo”, “aalgo”, “keylength”と“sectorsize”オプションは、それらの geli(8) パラメータを制御するために渡されます。 fs_specfs_type 以外のフィールドは、使用されません。 fs_type が“xx”として指定されるなら、エントリは、無視されます。これは、現在、未使用のディスクパーティションを表示するのに役に立ちます。

5 番目のフィールド ( fs_freq) は、どのファイルシステムがダンプされる必要があるかを決定するために dump(8) コマンドによって、これらのファイルシステムのために使用されます。 5 番目のフィールドが存在しないなら、0 の値が返され、 dump は、ファイルシステムがダンプされる必要がないと見なします。 5 番目のフィールドが 0 より大きいなら、このファイルシステムのためのダンプの間の日数を指定します。

6 番目のフィールド ( fs_passno) は、リブート時にファイルシステムとクォータチェックが行われる順序を決定するために、 fsck(8)quotacheck(8) によって使用されます。 fs_passno フィールドは、0 と‘ INT_MAX-1’の間の任意の値を指定できます。

ルートファイルシステムは、 fs_passno に 1、他のファイルシステムは、 fs_passno に 2 以上が指定されているべきです。 1 の fs_passno 値があるファイルシステムは、常に連続的にチェックされ、別のファイルシステムが処理される前に完了され、より大きい fs_passno があるすべてのファイルシステムの前に処理されます。

fs_passno の任意の与えられた値について、ドライブ中のファイルシステムは、連続的にチェックされますが、異なったドライブのファイルシステムは、ハードウェアで利用可能な並列処理を利用するために同時にチェックされます。いったん、すべてのファイルシステムチェックが、現在の fs_passno に対して完了するなら、同じプロセスは、次の fs_passno に対して再び開始されます。

6 番目のフィールドが存在していないか、0 であるなら、0 の値が返され、 fsck(8)quotacheck(8) は、ファイルシステムがチェックされる必要はないと仮定します。

システムユーティリティは、 ccd(4) デバイスのように、実際に行わないとき、ファイルシステムが、異なった物理的デバイスにあることを決定するとき、よりよい制御を実装するために、 fs_passno フィールドを使用することができます。より小さい fs_passno 値があるすべてのファイルシステムは、より大きい fs_passno 値があるファイルシステムを開始する前に、完了されます。例えば、2 の fs_passno があるすべてのファイルシステムは、3 以上の fs_passno がある任意のファイルシステムが開始される前に、完了されます。ギャップは、異なった fs_passno 値の間で許されています。例えば、 /etc/fstab にリストされたファイルシステムは、0, 1, 2, 15, 100, 200, 300 のような fs_passno 値があり、 /etc/fstab 内に順不同で現れます。

#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 に存在します。

使用例

# デバイス マウントポイント FStype オプション ダンプ パス# 
# 
# UFS ファイルシステム. 
/dev/da0p2 /  ufs rw  1 1 
# 
# ブロックデバイスのスワップ空間. 
/dev/da0p1 none  swap sw  0 0 
# 
# GBDE/GELI 暗号化があるブロックデバイスを使用するスワップ空間. 
# aalgo, ealgo, keylen, セクタサイズオプションは, .eli デバイスで 
# 利用可能です. 
/dev/da1p1.bde none  swap sw  0 0 
/dev/da1p2.eli none  swap sw  0 0 
# 
# tmpfs. 
tmpfs  /tmp  tmpfs rw,size=1g,mode=1777 0 0 
# 
# スワップに裏打ちされた md(4) の UFS ファイルシステム. 
# /dev/md10 は, 自動的に作成されます. それが "md"であるなら, 
# ユニット番号は, 自動的に選択されます. 
md10  /scratch mfs rw,-s1g  0 0 
# 
# vnode に裏打ちされた md(4) のスワップ空間. 
md11  none  swap sw,file=/swapfile 0 0 
# 
# CDROM.  "noauto"オプションは, メディアが削除可能であるので, 
# 通常, 使用されます. 
/dev/cd0 /cdrom  cd9660 ro,noauto 0 0 
# 
# NFS エクスポートファイルシステム.  "serv"は, NFS サーバ名 
# または IP アドレスです. 
serv:/export /nfs  nfs rw,noinet6 0 0

歴史

fstab ファイル形式は、 4.0BSD で登場しました。
September 10, 2013 FreeBSD