引导时间和 fstab

在主题 102 “学习 Linux,101:引导程序” 一文中,您已经学习了如何在 GRUB 和 LILO 中使用 root= 参数,来通知引导加载程序应该安装什么文件系统作为根。一旦此文件系统被安装,初始化过程运行带有 -a 选项的 mount 命令来自动安装一个文件系统集合。该集合是在 /etc/fstab 中指定的。清单 8 显示了一个样例 Fedora 13 系统的 /etc/fstab。在该示例中,所有硬盘驱动分区都是用 UUID 标识的。清单 9 显示了另一个 Ubuntu 9.10 系统示例。

清单 8. 示例 Fedora 13 fstab


#
# /etc/fstab
# Created by anaconda on Fri May 28 12:37:05 2010
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=082fb0d5-a5db-41d1-ae04-6e9af3ba15f7 /                  ext4    defaults        1 1
UUID=488edd62-6614-4127-812d-cbf58eca85e9 /grubfile          ext3    defaults        1 2
UUID=2d4f10a6-be57-4e1d-92ef-424355bd4b39 swap               swap    defaults        0 0
UUID=ba38c08d-a9e7-46b2-8890-0acda004c510 swap               swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

清单 9. 示例 Ubuntu 9.10 fstab


# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda7 during installation
UUID=8954fa66-e11f-42dc-91f0-b4aa480fa103 /               ext3    errors=remount-ro 0  1
# /grubfile was on /dev/sda2 during installation
UUID=3a965842-b6dd-4d52-8830-2d0fdb4284a2 /grubfile       ext3    defaults        0  2
/dev/sda5       none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

以 # 开始的是注释,记住一行有 6 个字段。因为字段是定位的,必须被指定。

文件系统
这可能是一个设备名,比如 /dev/sda1 或者一个标签LABEL=),或者是 UUIDUUID=)。对于 Fedora 13 示例的根文件系统,它可能是 /dev/sda6、LABEL="Fedora-13-x86_64" 或 UUID="082fb0d5-a5db-41d1-ae04-6e9af3ba15f7"。使用一个标签或 UUID,当设备被添加或删除时可以使您的系统更健壮。
挂载点
这是我们上面 安装文件系统 小节中介绍过的挂载点,其值应该是 'none' 或 'swap'。在旧的文件系统中您通常会发现其值是 'none' 。
类型
指定文件系统类型。CD/DVD 驱动器通常只支持 ISO9660 和 UDF 文件系统其中一个,因此您可能要在一个逗号分隔的列表中指定多种可能性,如清单 9 所示。如果您想 mount 自动确定类型,向清单 9 最后一行那样指定 auto
选项
指定安装选项,如果您想用默认安装选项,指定 defaults。您需要了解的选项有:
  • rwro 指定文件系统是以读写还是只读形式安装。
  • noauto 指定在引导时或者 mount -a 出现问题时,该文件系统不能自动安装。在我们的示例中,这样做是为了可移动驱动器。
  • user 指定一个非根用户被允许安装或卸载文件系统。这对于移动媒介是特别有用的。在旧系统中,该选项是在 /etc/fstab 中指定的,而不是在 mount 命令上。对于比较新的系统,可能是在 udev 规则中指定的,该规则位于 /lib/udev/rules.d or /etc/udev/rules.d 内的 rules 文件夹中。在我的 Fedora 13 系统上 DVD 驱动器选项是来自于 udev 规则,这就是为什么在 /etc/fstab 中没有一项用于光驱。
  • execnoexec 指定是否支持来自已安装文件系统的文件执行。用户安装的文件系统默认为 noexec,除非在 user指定 exec
  • noatime 将禁止记录存取时间,不使用访问时间可以提高性能。
dump
指定 dump 命令是否应考虑 ext2 或 ext3 文件系统作为备份。值为 0 则通知 dump 忽略该文件系统。
pass
传递非零值来指定引导时检查文件系统的次序,在 “学习 Linux,101:保持文件系统的完整性” 一文中讨论过。

当您安装一个在 /etc/fstab 中列出的文件系统时,您只需给出设备名或挂载点其中一个,不需要两个都提供。

在某些系统上,例如 SUSE 11.2,您可能会发现在安装时生成的 fstab 使用符号链接到设备。因此,您可以查看 /dev/disk/by-id/ata-WDC_WD1001FALS-00J7B1_WD-WMATV3772868-part6 获取文件系统值,不需要查看 /dev/sda6。

查阅手册页获取 fstabmountudev 其他资料,包括这里没有涉及到的选项。


相关内容

    暂无相关文章