Chinaunix首页 | 论坛 | 博客
  • 博客访问: 438791
  • 博文数量: 161
  • 博客积分: 5005
  • 博客等级: 上校
  • 技术积分: 1090
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-20 16:38
文章分类

全部博文(161)

文章存档

2011年(21)

2010年(33)

2009年(89)

2008年(18)

我的朋友

分类: LINUX

2011-03-13 02:57:17

Linux系统/etc/fstab是一个文本 文件,在这个文件中,每个文件系统(包括分区或者设备)用一行来描述,在每一行中,用空格或TAB符号来分隔各个字段,文件中以*开头的行是注释信息。 fstab文件中的纪录的排序十分重要。因为 fsck,mount或umount等程序在做它们的工作时会按此顺序进行。

    [root@rhcl5 ~]# cat /etc/fstab

    # /etc/fstab: static file system information.
    #
    # <设备名>                       
    LABEL=/                /                       ext3       defaults          1           1
    devpts                          /dev/pts           devpts   gid=5,mode=620 0           0
    tmpfs                        /dev/shm          tmpfs    defaults                    0            0
    LABEL=/ghost          /ghost               ext3      defaults                    1            2
    LABEL=/home      /home               ext3      defaults                   1             2 
    /dev/sdb1           /mnt/sdb1         ext3     defaults                    0            2
    LABEL=/dev/sdd1    /mnt/sdd1         ext3   defaults
    LABEL=/opt             /opt                   ext3     defaults                    1            2
    proc                             /proc                 proc    defaults                    0            0
    sysfs                  /sys                   sysfs   defaults          0            0
    LABEL=SWAP-sda3   swap               swap   defaults                    0            0

    第一、二列:设备和默认挂载点

    第一列和第二列的内容是最简单最直接的,它们的作用就是告诉mount命令,我想挂载什么分区或者什么设备,以及我所希望的挂载点在哪里。在fstab中 为某一个设备指定的挂载点是其默认挂载点,也就是当你在挂载目录的时候没有手工指定其他目录的话,系统就将该设备挂载到 这个目录。大多数 Linux发行版都会为挂载点创建专门的目录。关于第一列中的“LABEL=”是分配磁盘卷标的意思,就像windows磁盘上的我们命名的磁盘一样,没命名的叫“本地硬盘”“新加卷”,命名了的就是其他名字,同样,在linux底下可以通过:“e2label 设备名   卷标 ”可以为设备加卷标

    第三列:文件系统类型

  fstab中的第三列指示了设备或者分区的文件系统类型。它支持很多种类的文件系统,如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。如果这个字段定义为ignored,这行将被忽略,这对于显示目前没有使用的分区非常有用;auto:当然,这不是一个文件系统类型‘auto只是表示,文件系统的类型将被自动检测,软驱和光驱的文件系统类型都是auto; ReiserFS是一个非常优秀的文件系统。也是最早用于Linux的日志文件系统之一,其机制比Ext3要先进得多,风雷小弟一直使用的就是它,很多发 行版现在也把它作为默认文件系统了;udf: 由于刻录光驱越来越流行,现在很多发行版自带的fstab中,光驱的文件格式类型是UDF,UDF是Universal Disc Format的缩写,与ISO 9660格式相容。它采用标准的封装写入技术(PW,Packet Writing)将CD-R/CD-RW当作硬盘使用,用户可以在光盘上修改和删除文件。利用UDF格式进行刻录时,刻录软件将数据打包,并在内存中临时 建立一个特殊文件目录表,同时接管系统对光盘的访问。

第四列:挂载选项

  fstab中的第四列表示设备或者分区所需要的挂载选项。这一列也是fstab中最复杂最容易出错的一列,当 然,只要你能知道一些最常用的选项是什么意思,就可以让你从头疼中解脱出来。如果要把可用的选项一项一项介绍……恩,我估计我会写到明天,所以,我还是只 是分析最常用的一些选项,如果你想知道更多的东西,还是求助于man吧。

  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。


阅读(687) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~