fstab -
ファイルシステムの静的な情報
#include <fstab.h>
このファイル
fstab
には様々なファイルシステムに関する情報が記述されている。
fstab
ファイルはプログラムによって読みこまれるだけで書き込まれることはない。
このファイルを適切に作り、保守するのはシステム管理者の責任である。
それぞれのファイルシステムは一行単位で記述され、
各行のフィールドは TAB
文字もしくは空白 (spaces)
で区切られる。 '#'
で始まる行はコメントである。
fsck(8),
mount(8),
umount(8)
などのプログラムは、
fstab
ファイルを先頭から順に読み込んで処理するため、
fstab
に記述されるレコード
(ファイルシステム)
の順序は重要である。
最初のフィールド
(
fs_spec)
は、マウントしたいブロックスペシャルデバイス
もしくはリモートファイルシステムを記述する。
通常のマウントでは、これはマウントされるブロックスペシャルデバイスノード
(またはそれへのリンク)
である。これは
mknod(8)
によって作成される。たとえば
`/dev/cdrom' や `/dev/sdb7'
といったものになる。
NFS マウントの場合は
<host>:<dir>
という書式になる。
たとえば `knuth.aeb.nl:/'
などである。 procfs
の場合は `proc' を使う。
デバイスを明示する代わりに、
マウントされる (ext2
または xfs)
ファイルシステムを UUID
とボリュームラベルで指定することもできる
(
e2label(8) または
xfs_admin(8)
を参照のこと)。
この場合は LABEL=<label>
または UUID=<uuid>
のように書く。
たとえば `LABEL=Boot' や
`UUID=3e6be9de-8139-11d1-9106-a43f08d823a6'
のようになる。
こうするとシステムはより強固になる。
SCSI
ディスクを追加・削除してディスクデバイスの名前が変わっても、
ファイルシステムのボリュームラベルは変化しないからである。
2 番目のフィールド
(
fs_file)
は、ファイルシステムのマウントポイントを記述する。
スワップパーティションの場合、
このフィールドは `none'
と明記する必要がある。
マウントポイントに含まれている空白は、`\040'
のようにエスケープできる。
3 番目のフィールド
(
fs_vfstype)
は、ファイルシステムのタイプを記述する。
Linux では
adfs,
affs,
autofs,
coda,
coherent,
cramfs,
devpts,
efs,
ext2,
ext3,
hfs,
hpfs,
iso9660,
jfs,
minix,
msdos,
ncpfs,
nfs,
ntfs,
proc,
qnx4,
reiserfs,
romfs,
smbfs,
sysv,
tmpfs,
udf,
ufs,
umsdos,
vfat,
xenix,
xfs,
更にそれ以外の多くのファイルシステムタイプをサポートする。
詳細は
mount(8)
を参照すること。
稼働中のカーネルが現在サポートしているファイルシステムについては、
/proc/filesystems を見よ。
エントリ
swap
はスワップに使われるファイルまたはパーティションを表す。
swapon(8) を参照。
エントリ
ignore
により、その行は無視される。
これは現在使用されていないディスクパーティションを表示するのに役立つ。
4 番目のフィールド
(
fs_mntops) は、
ファイルシステム毎のマウントオプションを記述する。
これはカンマで区切られたオプションのリストである。
少なくともマウントのタイプを書く必要がある。
加えてファイルシステムのタイプに応じた
適切なオプションが書かれていることが多い。
NFS
以外のファイルシステムで使用可能なオプションについては、
mount(8) を参照のこと。 nfs
固有のオプションについては
nfs(5) を参照のこと。
どのようなファイルシステムにも適用できるオプションは、
``noauto'' ("mount -a"
を実行したとき
(ブート時など)
にマウントしない), ``user''
(ユーザにマウントを許可する),
``owner''
(デバイスの所有者にマウントを許可する),
``comment'' (例えば、fstab
管理プログラムで使用するため)
である。 ``owner'' と ``comment'' は Linux
独自のオプションである。
詳細は
mount(8)
を参照のこと。
5 番目のフィールド
(
fs_freq)
は、これらのファイルシステムを
dump(8) コマンドが
ダンプする必要があるかを決定するために用いられる。
5
番目のフィールドがなければ、
0 が戻り値となり、
dump
はそのファイルシステムをダンプする必要が無いとみなす。
6 番目のフィールド
(
fs_passno) は
fsck(8)
プログラムが用い、
ブート時にファイルシステムのチェックを実行する順序を
決定するために参照される。
ルートファイルシステムは
fs_passno を 1
と明記する必要があり、
その他のパーティションは、
fs_passno を 2
とする必要がある。 1
つのドライブ中のファイルシステムは順番にチェックされる。
しかし、異なるドライブのファイルシステムは
ハードウェアの並列性を役立たせる為に
同時にチェックされる。
6
番目のフィールドが存在しないか
0 である場合には 0
値が返り、
fsck
はそのファイルシステムをチェックする必要がないとみなす。
fstab
ファイルからレコードを読む正しい方法は、
getmntent(3)
ルーチンを用いることである。
/etc/fstab
getmntent(3),
mount(8),
swapon(8),
fs(5)
nfs(5)
この
fstab
ファイルフォーマットの原型は
4.0BSD で導入された。