Linux磁盘管理:学会理解并编辑fstab

可能玩Linux的朋友都知道fstab这个文件,如果煤胠inux,熟悉linux的一些核心配置文件是必要的,而fstab则是其中之一 。这个文件描述系统中各种文件系统的信息,应用程序读取这个文件,然后根据其内容进行自动挂载的工作 。因此,我们需要理解其中的内容,了解它如何与 mount命令配合工作,并能够针对自己的情况进行修改 。
作为系统配置文件,fstab通常都位于/etc目录下,它包括了所有分区和存储设备的信息,以及它们应该挂载到哪里,以什么样子的方式挂载 。如果遇到一些类似于无法挂载你的windows分区阿,无法使用你的光驱阿,无法对某个分区进行写入操作阿什么的,那么基本上可以断定,你的fstab内容有问题了 。也就是说,你可以通过修改它来搞定这些问题,而不用去论坛冰天雪地裸体跪求答案了 。
说了半天,/etc/fstab其实就是一个文本文件,用gedit或者vi都可以打开,当然,前提是root权限 。在这个文件中,每个文件系统(包括分区或者设备)用一行来描述,在每一行中,用空格或TAB符号来分隔各个字段,文件中以*开头的行是注释信息 。Fstab文件中的纪录的排序十分重要 。因为 fsck,mount或umount等程序在做它们的工作时会按此顺序进行本 。下面进行详细的讲解,本文假设读者已经有挂载文件系统和分区的基础知识 。
在讲解之前要说一下,每个人所使用的系统情况都是不同的,包括硬件种类,所用系统等,因此fstab文件肯定是有所差异的 。但是其基本结构,如上所述,都不会变 。所以我们先以一个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 0proc /proc proc defaults 0 0/dev/hda1 swap swap pri=42 0 0
这些看起来毫无意义的字符代表了什么?在对应相应分区或者存储设备信息的每一行中,每一列又是什么意思?先大体讲一下,第一列表示设备的名称,第二列表示该设备的挂载点,第三列是文件系统,第四列是挂载选项,第五列是dump选项(用一个数字表示),第六列(接下来的数字)表示文件系统检查选项 。好了,接下来,就要详细介绍这些参数的具体含义了 。
第一、二列:设备和默认挂载点
说实话,第一列和第二列的内容是最简单最直接的,它们的作用就是告诉mount命令,我想挂载什么分区或者什么设备,以及我所希望的挂载点在哪里 。在fstab中为某一个设备指定的挂载点是其默认挂载点,也就是当你在挂载目录的时候没有手工指定其他目录的话,系统就将该设备挂载到这个目录 。大多数 Linux发行版都会为挂载点创建专门的目录,大多数是在/mnt下,但是一些发行版(比如SUSE或者ubuntu)是在/media下 。笔者使用的是 ubuntu,所以示例信息中也是用的/media目录 。
按照我们给出的fstab示例,如果你敲入命令
$ mount /dev/fd0
你的软驱就将挂载到/media/floppy,因为这是你告诉系统的软驱默认挂载点 。如果没有这个信息,当你敲入mount命令时,mount会感到很困惑:该死的,你想让我把这玩意挂载到哪里去呢?当然,如果你看fstab中发行版给你指定的默认挂载点不顺眼,也可以自由修改它,修改成任何一个你希望的目录都可以 。如果还不存在,就首先创建这个目录 。要知道,fstab是不会把所有工作都给你包干的哦 。
另外,有一些分区和存储设备是在Linux系统启动的时候就自动挂载的,比如,让我们看看刚才列出来的fstab示例信息,有两行是这样的:
/dev/hda2 / ext2 defaults 1 1/dev/hdb1 /home ext2 defaults 1 2

推荐阅读