理解和编辑/etc/fstab

1. /etc/fstab是什么

要用好linux,熟悉linux的一些核心配置文件是必要的,而fstab则是其中之一。fstab描述了操作系统中各种文件系统的信息,所有分区和存储设备的信息,以及它们挂载到哪里,以什么方式挂载。应用程序读取fstab文件,然后根据其内容进行自动挂载。因此,我们需要理解其中的内容,了解它如何与mount命令配合工作,并能够针对自己的情况进行修改。

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

2. /etc/fstab详解

首先请看下面这个例子:

/dev/hda2 / ext2 defaults 1 1 
/dev/hdb1 /home ext2 defaults 1 2 
/dev/cdrom /media/cdrom auto ro,noauto,user,exec 0 0 
/dev/fd0 /media/floppy auto rw,noauto,user,sync 0 0 
proc /proc proc defaults 0 0 
/dev/hda1 swap swap pri=42 0 0 

这些看起来毫无意义的字符代表了什么?接下来,我们详细介绍这些参数的具体含义。

2.1 第一、二列,设备名称和设备的挂载点

第一列告诉mount命令,挂载什么分区或者设备,以及挂载点在哪里。在fstab中,为某一个设备指定的挂载点是其默认挂载点,如果当挂载时,你没有手动指定其他目录,系统就默认把设备挂载到此目录下。

  • 设备的标签名或UUID

除了使用显示的设备名,我们还可以使用设备的标签名或UUID。例如,我们可以在这个字段写“LABAL=root”或“UUID= 3e6be9de- 8139-11d1-9106-a43f08d823a6”,这将使系统更具伸缩性。例如,如果系统添加或移除了一个SCSI硬盘,这有可以改变你的设备名,但它不会修改你的卷标签。

  • NFS mount操作

对于NFS mount操作,这个字段应该包含host:dir格式的信息,例如:knuth.aeb.nl:/;对于进程文件系统procfs,使用proc。

2.2 第三列,文件系统类型

第三列指示了设备或者分区的文件系统类型。如果想了解你的kernel目前支持哪些文件系统,可以查看/proc/filesystems的内容。如果这个字段定义为swap,这条纪录将关联到一个用于交换目的的文件或分区;如果这个字段定义为ignored,这行将被忽略。这对于显示目前没有使用的分区非常有用。

  • ext2、ext3、ext4:Linux下的Ext2文件系统,是 GNU/Linux 系统中标准的文件系统,其特点为存取文件的性能极好,对于中小型的文件更显示出优势,这主要得利于其簇快取层的优良设计。至于Ext3文件系统,它属于一种日志文件系统,是对ext2系统的扩展。日志式文件系统的优越性在于,它会将整个磁盘的写入动作完整记录在磁盘的某个区域上,以便有需要时可以回朔追踪。由于详细纪录了每个细节,故当在某个过程中被中断时,系统可以根据这些记录直接回朔并重整被中断的部分,而不必花时间去检查其他的部分,故文件系统检测不一致时,重整的工作速度相当快,几乎不需要花时间。

  • reiserfs:ReiserFS是一个非常优秀的文件系统。也是最早用于Linux的日志文件系统之一,其机制比Ext3要先进得多,很多发行版现在也把它作为默认文件系统了。

  • swap:Swap,即交换区,把它想象成虚拟内存就行了。

  • vfat和ntfs:一看就知道是Windows分区格式了。98,me等系统都是使用的vfat,也就是最流行的fat32格式,而NT系列则多使用NTFS,当然也不是固定的,因此2000或者XP系统要具体情况具体分析。当初Linux对NTFS的写入支持不好,所以大多数资料都建议用户使用vfat格式,但是现在支持已经很好了,即使不重新编译内核,也可以通过ntfs-3g来进行写入支持。

  • auto:当然,这不是一个文件系统类型。auto只是表示,文件系统的类型将被自动检测。在上面的示例中,你会发现软驱和光驱的文件系统类型都是auto,为什么呢?因为它们的文件系统类型随时都可能改变,比如软驱,优盘这种设备,可能今天是vfat格式,明天你就把它格式化成了ntfs,因此,最明智的做法就是告诉系统,我没法确定这东西的当前类型,还是你自己检测吧。

  • udf:由于刻录光驱越来越流行,现在很多发行版自带的fstab中,光驱的文件格式类型是UDF,UDF是Universal Disc Format的缩写,与ISO 9660格式相容。它采用标准的封装写入技术(PW,Packet Writing)将CD-R/CD-RW当作硬盘使用,用户可以在光盘上修改和删除文件。利用UDF格式进行刻录时,刻录软件将数据打包,并在内存中临时建立一个特殊文件目录表,同时接管系统对光盘的访问。

  • iso9660: 很多光驱也使用的这个选项。ISO9660是一种描述适合CD盘片的电脑文件结构的国际标准。采用此标准的盘片可以在不同的操作系统上使用,如MAC和Windows。

2.3 第四列,挂载选项

第四列表示设备或者分区所需要的挂载选项。这一列也是fstab中最复杂最容易出错的一列。

  • 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则让你可以从光驱上直接执行某些程序。

2.4 第五列,dump选项(用一个数字表示)

dump是一个备份工具。dump命令通过这个选项位置上的数字来决定文件系统是否需要备份。如果是0,dump就会被忽略。事实上,大多数的dump设置都是0。

2.5 第六列,文件系统检查选项(用一个数字表示)

fsck是一个文件系统扫描检查工具。fsck命令通过检测该字段来决定文件系统通过什么顺序来扫描检查,根文件系统/对应该字段的值应该为1,其他文件系统应该为2,若文件系统无需在启动时扫描检查,则设置该字段为0。

3. 参考文章

https://blog.csdn.net/guoguo1980/article/details/2365393

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值