10.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     nosuid,noexec,nodev 0     0
sysfs          /sys           sysfs    nosuid,noexec,nodev 0     0
devpts         /dev/pts       devpts   gid=5,mode=620      0     0
tmpfs          /run           tmpfs    defaults            0     0
devtmpfs       /dev           devtmpfs mode=0755,nosuid    0     0
tmpfs          /dev/shm       tmpfs    nosuid,nodev        0     0
cgroup2        /sys/fs/cgroup cgroup2  nosuid,noexec,nodev 0     0

# End /etc/fstab
EOF

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

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

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

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

noauto,user,quiet,showexec,codepage=866,utf8

iocharset オプションは iso8859-1 に対してのデフォルト設定です。 (その場合、ファイルシステムの英大文字小文字は区別されません。) utf8 オプションは、ファイル名称が UTF-8 ロケール内にて正しく認識されるように、カーネルが 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 オプションは利用できません。