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> 为适当的值, 例如,hda2hda5,和 ext3。 有关文件中六行字段的详细信息,请查看 man 5 fstab

这个tmpfs(虚拟内存文件系统)上的 /dev/shm 挂载点包括了允许启用 POSIX 共享内存。对此必须在内核上构建起所需的支持才能运作(更多相关信息在下一个章节)。请注意目前很少有软件使用 POSIX 共享内存。因此,可以认为 /dev/shm 挂载点是非必须的。更多信息请查看内核源码树里的 Documentation/filesystems/tmpfs.txt

文件系统中有 MS-DOS 或者 Windows 血统(i.e.: vfat,ntfs,smbfs,cifs,iso9660,udf)需要有 "iocharset" 加载选项来恰当说明文件名中的非 ASCII 字符。这个选项的值应当和你本地的 codepage 字符集一样,这样调整内核就能读懂它了。如果相关的字符集定义(在 File systems -> Native Language Support下可找到)已经被编译进了内核或组建成了模块,那么就是可行的。vfat 和 smbfs 文件系统还需要 "codepage" 选项。 它应该被设置为 MS-DOS 在你的国家使用的内码编号。例如,为了挂载 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


[注意]

注意

在后面的情况中,内核发出如下信息:



FAT: utf8 is not a recommended IO charset for FAT filesystems,


    filesystem will be case sensitive!


这个否定的建议可以忽略,因为 "iocharset" 选项的其他所有值在本地 UTF-8 中都会导致错误的文件名显示。

在内核配置的时候还可能指定一些文件系统默认的 codepage 和 iocharset 的值。 相关参数为 "默认 NLS 选项"(CONFIG_NLS_DEFAULT)),"默认远程 NLS 选项"(CONFIG_SMB_NLS_DEFAULT),"默认 FAT 的 codepage 字符集"(CONFIG_FAT_DEFAULT_CODEPAGE)和 "默认 FAT 的 iocharset 字符集"(CONFIG_FAT_DEFAULT_IOCHARSET)。在内核编译时无法具体指明这些 ntfs 文件系统设置。


Host by Unixetc