启动挂载 /etc/fstab 及 /etc/mtab
刚刚上面说了许多,那么可不可以在启动的时候就将我要的文件系统都挂好呢?这样我就不需要每次进入 Linux 系统都还要在挂载一次呀!当然可以啰!那就直接到 /etc/fstab 里面去修修就行啰!不过,在开始说明前,这里要先跟大家说一说系统挂载的一些限制:
根目录 / 是必须挂载的﹐而且一定要先于其它 mount point 被挂载进来。
其它 mount point 必须为已创建的目录﹐可任意指定﹐但一定要遵守必须的系统目录架构原则
所有 mount point 在同一时间之内﹐只能挂载一次。
所有 partition 在同一时间之内﹐只能挂载一次。
如若进行卸除﹐您必须先将工作目录移到 mount point(及其子目录) 之外。
让我们直接查阅一下 /etc/fstab 这个文件的内容吧!
[root@www ~]# cat /etc/fstab # Device Mount point filesystem parameters dump fsck LABEL=/1 / ext3 defaults 1 1 LABEL=/home /home ext3 defaults 1 2 LABEL=/boot /boot ext3 defaults 1 2 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 LABEL=SWAP-hdc5 swap swap defaults 0 0 # 上述特殊字体的部分与实际磁盘有关!其他则是虚拟文件系统或 # 与内存置换空间 (swap) 有关。
这个文件的内容共有六个字段,这六个字段非常的重要!你『一定要背起来』才好! 各个字段的详细数据如下:其实 /etc/fstab (filesystem table) 就是将我们利用 mount 命令进行挂载时, 将所有的选项与参数写入到这个文件中就是了。除此之外, /etc/fstab 还加入了 dump 这个备份用命令的支持! 与启动时是否进行文件系统检验 fsck 等命令有关。
第一栏:磁盘装置文件名或该装置的 Label:
这个字段请填入文件系统的装置文件名。但是由上面表格的默认值我们知道系统默认使用的是 Label 名称! 在鸟哥的这个测试系统中 /dev/hdc2 标头名称为 /1,所以上述表格中的『LABEL=/1』也可以被取代成为『/dev/hdc2』的意思。 至于Label可以使用 dumpe2fs 命令来查阅的。
第二栏:挂载点 (mount point)::
就是挂载点啊!挂载点是什么?一定是目录啊~要知道啊!
第三栏:磁盘分区槽的文件系统:
在手动挂载时可以让系统自动测试挂载,但在这个文件当中我们必须要手动写入文件系统才行! 包括 ext3, reiserfs, nfs, vfat 等等。
第四栏:文件系统参数:
记不记得我们在 mount 这个命令中谈到很多特殊的文件系统参数? 还有我们使用过的『-o iocharset=cp950』?这些特殊的参数就是写入在这个字段啦! 虽然之前在 mount 已经提过一次,这里我们利用表格的方式再汇整一下:
参数 | 内容意义 |
async/sync 异步/同步 |
配置磁盘是否以异步方式运行!默认为 async(效能较佳) |
auto/noauto 自动/非自动 |
当下达 mount -a 时,此文件系统是否会被主动测试挂载。默认为 auto。 |
rw/ro 可擦写/只读 |
让该分割槽以可擦写或者是只读的型态挂载上来,如果你想要分享的数据是不给用户随意变更的, 这里也能够配置为只读。则不论在此文件系统的文件是否配置 w 权限,都无法写入喔! |
exec/noexec 可运行/不可运行 |
限制在此文件系统内是否可以进行『运行』的工作?如果是纯粹用来储存数据的, 那么可以配置为 noexec 会比较安全,相对的,会比较麻烦! |
user/nouser 允许/不允许使用者挂载 |
是否允许用户使用 mount 命令来挂载呢?一般而言,我们当然不希望一般身份的 user 能使用 mount 啰,因为太不安全了,因此这里应该要配置为 nouser 啰! |
suid/nosuid 具有/不具有 suid 权限 |
该文件系统是否允许 SUID 的存在?如果不是运行文件放置目录,也可以配置为 nosuid 来取消这个功能! |
usrquota | 注意名称是『 usrquota 』不要拼错了!这个是在启动 filesystem 支持磁盘配额模式,更多数据我们在第四篇再谈。 |
grpquota | 注意名称是『grpquota』,启动 filesystem 对群组磁盘配额模式的支持。 |
defaults | 同时具有 rw, suid, dev, exec, auto, nouser, async 等参数。 基本上,默认情况使用 defaults 配置即可! |
第五栏:能否被 dump 备份命令作用:
dump 是一个用来做为备份的命令(我们会在第二十五章备份策略中谈到这个命令), 我们可以透过 fstab 指定哪个文件系统必须要进行 dump 备份! 0 代表不要做 dump 备份, 1 代表要每天进行 dump 的动作。 2 也代表其他不定日期的 dump 备份动作, 通常这个数值不是 0 就是 1 啦!
第六栏:是否以 fsck 检验扇区:
启动的过程中,系统默认会以 fsck 检验我们的 filesystem 是否完整 (clean)。 不过,某些 filesystem 是不需要检验的,例如内存置换空间 (swap) ,或者是特殊文件系统例如 /proc 与 /sys 等等。所以,在这个字段中,我们可以配置是否要以 fsck 检验该 filesystem 喔。 0 是不要检验, 1 表示最早检验(一般只有根目录会配置为 1), 2 也是要检验,不过 1 会比较早被检验啦! 一般来说,根目录配置为 1 ,其他的要检验的 filesystem 都配置为 2 就好了。
/etc/fstab 是启动时的配置文件,不过,实际 filesystem 的挂载是记录到 /etc/mtab 与 /proc/mounts 这两个文件当中的。每次我们在更动 filesystem 的挂载时,也会同时更动这两个文件喔!
但是,万一发生您在 /etc/fstab 输入的数据错误,导致无法顺利启动成功,而进入单人维护模式当中,那时候的 / 可是 read only 的状态,当然您就无法修改 /etc/fstab ,也无法升级 /etc/mtab 啰~那怎么办? 没关系,可以利用底下这一招:
[root@www ~]# mount -n -o remount,rw /