etc/fstab是一个文本文件,在这个文件中,每个文件系统(包括分区或者设备)用一行来描述,在每一行中,用空格或TAB符号来分隔各个字段,文件中以*开头的行是注释信息。fstab文件中的纪录的排序十分重要。因为 fsckmountumount等程序在做它们的工作时会按此顺序进行本。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

    示例( sdb1 为新增的硬盘):

 

    # /etc/fstab: static file system information.

    #

    # <file system> <mount point>   <type> <options>       <dump> <pass>

    proc            /proc           proc    defaults        0       0

    /dev/sda1       /               ext3    errors=remount-ro 0       1

    /dev/sda6       /home           ext3    defaults        0       2

    /dev/sda5       none            swap    sw              0       0

    /dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0

    /dev/fd0        /media/floppy0 auto    rw,user,noauto 0       0

    /dev/sdb1       /oracel         ext3    defaults        0       2
第一、二列:设备和默认挂载点

 

第三列:文件系统类型

 

第四列:挂载选项 ( 最难理解的)

 

auto noauto 这是控制设备是否自动挂载的选项。 auto 是默认选择的选项,这样,设备会在启动或者你使用 mount -a 命令时按照 fstab 的内容自动挂载。如果你不希望这样,就使用 noauto 选项,如果这样的话,你就只能明确地通过手工来挂载设备。

 

user nouser :这是一个非常有用的选项, user 选项允许普通用户也能挂载设备,而 nouser 则只允许 root 用户挂载。 nouser 是默认选项,这也是让很多 Linux 新手头疼的东西,因为他们发现没有办法正常挂载光驱, Windows 分区等。如果你作为普通身份用户遇到类似问题,或者别的其他问题,就请把 user 属性增加到 fstab 中。

 

exec noexec exec 允许你执行对应分区中的可执行二进制程序,同理, noexec 的作用刚好相反。如果你拥有一个分区,分区上有一些可执行程序,而恰好你又不愿意,或者不能在你的系统中执行他们,就可以使用 noexec 属性。这种情况多发生于挂载 Windows 分区时。 exec 是默认选项,理由很简单,如果 noexec 变成了你 / 根分区的默认选项的话……

 

ro 以只读来挂载文件系统。

 

rw 以可读可写的属性来挂载系统。

 

sync async :对于该文件系统的输入输出应该以什么方式完成。 sync 的意思就是同步完成,通俗点讲,就是当你拷贝一个东西到设备或者分区中时,所有的写入变化将在你输入 cp 命令后立即生效,这个东西应该立马就开始往设备或者分区里面拷贝了。而如果是 async ,也就是输入输出异步完成的话,当你拷贝一个东西到设备或者分区中时,可能在你敲击 cp 命令后很久,实际的写入操作才会执行,换句话说,就是进行了缓冲处理。
  有时候这种机制蛮不错的,因为 sync 会影响你系统的运行速度,但是这也会带来一些问题。想一想,当你希望将一个文件拷贝到 u 盘上时,你执行了 cp 命令,却忘记执行 umount 命令(它会强行将缓冲区内容写入),那么你拷贝的文件实际上并没有在 u 盘上面。如果你是使用的 mv 命令,而你又很快将 u 盘拔出……恭喜你,文件会从这个星球上消失的。因此,虽然 async 是默认属性,但是对于 u 盘,移动硬盘这种可移动存储设备,最好还是让他们使用 sync 选项。

 

defaults 所有选项全部使用默认配置,包括 rw suid dev exec auto nouser async.
一般用户没有特殊需求,直接使用 defaults 就可以了。看完介绍,我们再回过头去看看前面的示例内容,以光驱为例,主要关注挂载选项这里,可以看到,光驱和其他分区设备的不同是 ro ,因为普通光驱是只读的。而 exec 则让你可以从光驱上直接执行某些程序。

 

第五、六列: dump fsck 选项
 fstab 的第五列是表示 dump 选项, dump 工具通过这个选项位置上的数字来决定文件系统是否需要备份。如果是 0 dump 就会被忽略,事实上,大多数的 dump 设置都是 0. 而第六列是 fsck 选项, fsck 命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统 / 对应该字段的值应该为 1 ,其他文件系统应该为 2. 若文件系统无需在启动时扫描检查,则设置该字段为 0