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

# End /etc/fstab
EOF

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

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 ロケールに変換して取り扱うことを指示するものです。

UEFI を使った GRUB をインストールしている場合、ESP は FAT ファイルシステムでフォーマットされていなければなりません。 ごく普通には VFAT とします。 このファイルは実際がどうであれ VFAT として認識します。 ESP に対するエントリとして記述すべき内容は、およそ以下のようになります。

cat >> /etc/fstab << "EOF"
/dev/<zzz>  /boot/efi  vfat  rw,relatime,codepage=437,iocharset=iso8859-1   0   2
EOF

IO キャラクターセット iso8859-1 がここで指定されています。 これは 「Linux-6.19.12」 におけるカーネル UEFI 設定の一部として機能させるためです。 技術面で言うと、これまでに述べてきたように IO キャラクターセットは普段使用するロケールに合わせるべきものです。 しかし ESP に含まれるファイルはすべて 7 ビットアスキー文字しか用いていません。 したがって ISO-8859-1 と同様に 7 ビットアスキー文字を取り扱うロケールであれば何でも構いません。 たとえば UTF-8 はこれに該当するキャラクターセットです。

[注記]

注記

EFI ファイルシステムは GRUB のインストール時にのみマウントが必要となります。 システムはこのパーティションを、カーネルがロードされる前に利用し、それ以降は利用しません。 このエントリを fstab ファイルに記述しないのであれば、「GRUB を用いたブートプロセスの設定」 に示した grub-install の実行前に手動でマウントすることで実現できます。

ファイルシステムによっては 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 ファイルシステムに対しては、カーネルのコンパイル時に設定する項目はありません。