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。 关于文件中六个字段的详细信息,请参考man 5 fstab

/dev/shm 挂载点是为了tmpfs能包括启用POSIX共享内存。 这需要内核必须在编的时候支持这个选项才能起作用 (更多相关信息在下一章)。请注意, 目前很少软件使用POSIX共享内存。因而,认为/dev/shm加载点是可选的。 更多信息,请参考内核源码目录中的Documentation/filesystems/tmpfs.txt

带有MS-DOS或Windows血统的文件系统 (比如 vfat, ntfs, smbfs, cifs,iso9660, udf) 为了正确理解文件名中的非ASCII字符,需要“iocharset”加载点。 这个选项和你的所处位置特征是一样的, 用这个方式调整内核支持它。 如果需要操作相关的特征定义 (在 File systems -> Native Language Support下可找到) 可以编译进内核里或编译成模块。“codepage” 选项同样也是为 vfat 和 smbfs 文件系统所需要。 它应该被设置为 MS-DOS 在你的国家里使用的 codepage 数字号。举个例子,为了挂在 USB flash 设备,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
[Note]

注意

在后面的例子里,内核发出如下信息

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

这个否定的建议应该可以被忽略,因为所有的其他"iocharset" 值选项造成UTF-8 locales 文件名的错误显示。

在内核配置过程中, 对于一些文件系统, 也可以指定默认的代码页(codepage)和 iocharset 值。相应的参数被称为 “默认 NLS 选项” (CONFIG_NLS_DEFAULT), “默认远程 NLS 选项” (CONFIG_SMB_NLS_DEFAULT), “FAT 的默认 codepage ” (CONFIG_FAT_DEFAULT_CODEPAGE), 和 “FAT 默认 iocharset” (CONFIG_FAT_DEFAULT_IOCHARSET)。 在内核编译时, 没办法为ntfs文件系统指定这些设置。

对于一些硬盘类型,可以使 ext3 文件系统可靠地跨越停电(reliable across power failures)。要做到这一点,请将挂载参数barrier=1 加入到/etc/fstab。 要检查是否磁盘驱动器支持这个参数,请在该磁盘驱动器上执行 hdparm 。例如,如果下面的命令:

hdparm -I /dev/sda | grep NCQ

返回非空的输出,就说明支持这个选项。

注意: 基于分区的逻辑卷管理 (LVM)不能使用barrier参数。