8.2. /etc/fstab ファイルの生成

/etc/fstab ファイルは、種々のプログラムがファイルシステムのマウント状況を確認するために利用するファイルです。 ファイルシステムがデフォルトでどこにマウントされ、それがどういう順序であるか、マウント前に (整合性エラーなどの) チェックを行うかどうか、という設定が行われます。 新しいファイルシステムに対する設定は以下のようにして生成します。

cat > /etc/fstab << "EOF"
# Begin /etc/fstab

# file system  mount-point  type   options         dump  fsck
#                                                        order

/dev/<xxx>     /            <fff>  defaults        1     1
/dev/<yyy>     swap         swap   pri=1           0     0
proc           /proc        proc   defaults        0     0
sysfs          /sys         sysfs  defaults        0     0
devpts         /dev/pts     devpts gid=4,mode=620  0     0
tmpfs          /dev/shm     tmpfs  defaults        0     0
# End /etc/fstab
EOF

<xxx><yyy><fff> の部分はシステムに合わせて正しい記述に書き換えてください。 例えば hda2hda5ext3 といったものです。 上のファイルの6行分の記述内容の詳細は man 5 fstab により確認してください。

マウントポイント /dev/shmtmpfs ファイルシステムを指し示すもので POSIX 共有メモリ (POSIX-shared memory) を利用するためのものです。 この共有メモリを正しく動作させるためには、これをサポートする機能をカーネルに組み入れておく必要があります。 (詳しくは次節にて説明します。) POSIX 共有ライブラリを利用するソフトウェアは、今のところは非常に少ないことを覚えておいてください。 したがってマウントポイント /dev/shm は設定しなくても構いません。 詳細については、カーネルのソース内にある Documentation/filesystems/tmpfs.txt を参照してください。

MS-DOS や Windows において利用されるファイルシステム (例えば vfat、ntfs、smbfs、cifs、iso9660、udf) では、ファイル名称内に用いられた非アスキー文字を正しく認識させるために、マウントオプションとして 「iocharset」 を指定することが必要となります。 オプションに設定する値は利用するロケールとすることが必要で、カーネルが理解できる形でなければなりません。 またこれを動作させるために、対応するキャラクタセット定義 (File systems ->Native Language Support にあります) をカーネルに組み入れるか、モジュールとしてビルドすることが必要です。 vfat や smbfs ファイルシステムを用いるなら、さらに 「codepage」 オプションも必要です。 このオプションには、国情報に基づいて MS-DOS にて用いられるコードページ番号をセットします。 例えば USB フラッシュドライブをマウントし ru_RU.KOI8-R をセットするユーザーであれば /etc/fstab ファイルの設定は以下のようになります。

noauto,user,quiet,showexec,iocharset=koi8r,codepage=866

ru_RU.UTF-8 をセットするなら以下のように変わります。

noauto,user,quiet,showexec,iocharset=utf8,codepage=866
[注記]

注記

後者の設定では、カーネルが以下のようなメッセージを出力します。

FAT: utf8 is not a recommended IO charset for FAT filesystems,
    filesystem will be case sensitive!

否定的な設定を勧めるメッセージですが、これは無視して構いません。 「iocharset」 オプションに他の設定を行ったとしても UTF-8 ロケールでは結局はファイル名の表示を正しく処理できないためです。

ファイルシステムによっては codepage と iocharset のデフォルト値をカーネルにおいて設定することもできます。 カーネルにおいて対応する設定は 「Default NLS Option」 (CONFIG_NLS_DEFAULT)、 「Default Remote NLS Option」 (CONFIG_SMB_NLS_DEFAULT)、 「Default codepage for FAT」 (CONFIG_FAT_DEFAULT_CODEPAGE)、 「Default iocharset for FAT」 (CONFIG_FAT_DEFAULT_IOCHARSET) です。 なお ntfs ファイルシステムに対しては、カーネルのコンパイル時に設定する項目はありません。

特定のハードディスクにおいて ext3 ファイルシステムでの電源供給不足時の信頼性を向上させることができます。 これは /etc/fstab での定義においてマウントオプション barrier=1 を指定します。 ハードディスクがこのオプションをサポートしているかどうかは hdparm を実行することで確認できます。 例えば以下のコマンドを実行します。

hdparm -I /dev/sda | grep NCQ

何かが出力されたら、このオプションがサポートされていることを意味します。

論理ボリュームマネージャ (Logical Volume Management; LVM) に基づいたパーティションでは barrier オプションは利用できません。