8.2. 创建 /etc/fstab 文件

/etc/fstab 文件的作用是让其它程序确定存储设备的默认挂载点、挂载参数和检查信息(例如完整性检测)。仿照以下格式新建一个文件系统列表(file system table,简称 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

# End /etc/fstab
EOF

其中,<xxx><yyy><fff> 请使用适当的值替换。例如 sda2sda5ext4。关于文件中六个字段的含义,请查看 man 5 fstab(译者注:fsck 列的数值来决定需要检查的文件系统的检查顺序。允许的数字是0, 1, 和2。根目录应当获得最高的优先权 1, 其它所有需要被检查的设备设置为 2。0 表示设备不会被 fsck 所检查)。

基于 MS-DOS 或者是来源于 Windows 的文件系统(例如:vfat,ntfs,smbfs,cifs,iso9660,udf)需要在挂载选项中添加「iocharset」,才能让非 ASCII 字符的文件名正确解析。此选项的值应该与语言区域设置的值相同,以便让内核能正确处理。此选项在相关字符集定义已为内核内建或是编译为模块时生效(在文件系统 -> 本地语言支持中查看)。此外,vfat 和 smbfs 还需启用「codepage」支持。例如,想要挂载 USB 闪存设备,zh-CN.GBK 用户需要在 /etc/fstab 中添加以下的挂载选项:

noauto,user,quiet,showexec,iocharset=gbk,codepage=936

对于 zh_CN.UTF-8 用户的对应选项是:

noauto,user,quiet,showexec,iocharset=utf8,codepage=936

需要注意的是,iocharset 默认值是 iso8859-1 (其保证文件系统大小写敏感),而 utf8 这个参数告知内核使用 UTF-8 转换文件名,以便可以在 UTF-8 语言环境中解释它们。

此外,还有可能在内核的配置过程中就指定一些文件系统的默认代码页和 iocharset 值。相关参数有「默认 NLS 选项 」(CONFIG_NLS_DEFAULT),「默认远程 NLS 选项」(CONFIG_SMB_NLS_DEFAULT),「FAT 默认代码页」(CONFIG_FAT_DEFAULT_CODEPAGE),和「FAT 默认 IO 字符集」(CONFIG_FAT_DEFAULT_IOCHARSET)。不过,无法在内核编译阶段指定 ntfs 文件系统的设置。

另外,一些硬盘类型在遇到电源故障时,假如在 /etc/fstab 中使用 barrier=1 这个挂载选项,则会让 ext3 文件系统的数据更加安全。如需检查磁盘是否支持此选项,请运行 hdparm。例如:

hdparm -I /dev/sda | grep NCQ

如果有输出内容,则代表选项可用。

注意:基于 逻辑卷管理(LVM)的分区不可使用 barrier 选项。