/etc/fstabはハードディスクなどのデバイスとディレクトリとのマウント情報を記述するファイル。システム起動時に読み込まれ、このファイルの記述に基づいてマウントされる。よってこのファイルがおかしいとシステムがおかしくなる。
1行が1つのエントリになる。1エントリは6つのフィールドで構成される。各フィールドの詳細は左から順に以下のようになる。
第1フィールド fs_spec
マウントするデバイスやリモートファイルシステムを記述する。ここではハードディスクの場合を考える。
デバイスを直接指定
/dev/sda1
のように指定する。
ボリュームラベルを指定(ext2,ext3)
デバイスを直接指定すると、ハードディスクの物理的構成が変わったときに、その変更に追従できなくなる。そこでハードディスクのボリュームラベルを指定すれば、この様な問題を回避できる。以下のように指定する。
LABEL=abc
現在のボリュームラベルはe2labelコマンドで確認できる。
# e2label /dev/sda1
UUIDを指定(ext2,ext3)
UUIDは世界で常に一意になるID。これを指定すれば、ラベルを指定するよりもさらに一意性が高まる。以下のように指定する。
UUID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
現在のUUIDを調べるには以下のようにおこなう。
# dumpe2fs /dev/hda1|grep -i uuid
UUIDを設定するには、tune2fsコマンドを使う。UUIDはuuidgenコマンドを使って作成できる。
第2フィールド fs_file
マウントするディレクトリを指定する。
第3フィールド fs_vfstype
ファイルシステムのタイプを指定する。通常のハードディスクの場合以下のようなものがある。
- ext2
- ext3
- vfat
- ntfs-3g
第4フィールド fs_mntops
オプションを指定する。複数指定する場合はコンマで区切る。このオプションには一般オプションと第三フィールドで指定したファイルシステム専用のオプションを記述できる。
一般オプション
- noauto : mount -aコマンドでマウントしない(ブート時自動でマウントしない)
- user : 一般ユーザがマウントできる
- owner : デバイスの所有者がマウントできる
ext2, ext3特別オプション
ext2はスーパーブロックにデフォルトオプションが記述してあり、ここでなにも書かなければそれが使われる。スーパーブロックの情報を見るにはdump2fsを使う。
詳細は省略。
第5フィールド fs_freq
dumpコマンドが使う。通常の場合、バックアップの対照とする場合1にする。
第6フィールド fs_passno
ブート時fsckが実行される必要があった場合参照される。0だとfsckしない。それ以外は1から順番に行われる。通常ルートファイルシステムを1とするようだ。(詳細不明)