一些程序使用 /etc/fstab
文件,
以确定哪些文件系统是默认挂载的,和它们应该按什么顺序挂载, 以及哪些文件系统在挂载前必须被检查(确定是否有完整性错误)。
参考以下命令,创建一个新的文件系统表:
cat > /etc/fstab << "EOF"
# Begin /etc/fstab
# 文件系统 挂载点 类型 选项 转储 检查
# 顺序
/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>
替换为适用于您的系统的值,例如
sda2
、sda5
和 ext4
。 参阅 man 5 fstab 了解该文件中 6 个域的详细信息。
在挂载来源于 MS-DOS 或 Windows 的文件系统 (如 vfat、ntfs、smbfs、cifs、iso9660、udf)时,
需要一个特殊的挂载选项 —— utf8, 才能正常解析文件名中的非 ASCII 字符。对于非 UTF-8 locale,选项
iocharset
的值应该和您的 locale
字符集设定一致,但改写成内核可以识别的写法。 该选项能够正常工作的前提是,将相关的字符集定义(在内核配置选项的 File Systems
-> Native Language Support 子菜单中) 编译到内核中,或构建为内核模块。然而,如果使用了 UTF-8
locale, 对应的 iocharset=utf8
会导致文件系统变得大小写敏感。 为了避免这个问题,在使用 UTF-8 locale 时, 需要用特殊选项 utf8
代替 iocharset=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 locale
中被正确解析。
也可以在内核配置中, 为一些文件系统指定默认 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
文件系统指定这些默认值。
在某些硬盘上,在 /etc/fstab
中添加 barrier=1
挂载选项, 可以使得 ext3 文件系统在发生电源故障时更可靠。
为了检查磁盘驱动器是否支持该选项,在可用的磁盘驱动器上运行 hdparm。
例如:
hdparm -I /dev/sda | grep NCQ
如果输出内容不为空,说明该选项可用。
注意:基于逻辑卷管理(LVM)的分区不能使用 barrier
选项。