您的位置:首页 > 运维架构 > Linux

分区自动挂载与fstab文件修复-47

2016-01-13 13:16 627 查看

分区自动挂载与fstab文件修复

我们正常的硬盘分区应该在系统启动的时候就需要自动挂载,而不是手动进行挂载。那么我们上节课学完分区挂载后一旦Linux从启动,那么就还需要从新挂载分区才能正常使用,这是不符合逻辑的,这节课我们就来学习如何让系统启动的时候自动挂载分区。
其实,我们在前面学习acl权限的时候学习过如果想实现自动挂载,就需要进行修改系统启动的配置文件fstab。

一、/etc/fstab文件

1、我们先来查看一下这个配置文件,如图:



第一字段:分区设备文件名或UUID(硬盘通用唯一识别码)
这个字段也可以用分区的设备文件名定义,比如/dev/sda1,但是如果我们使用设备文件名来定义这个字段的话,那我们就不要乱动分区了,比如把第一个分区和第二个分区颠倒了,这样就会导致系统崩溃,因为原来默认的启动顺序修改了,那么就找不到原来的分区里的数据了。
所以后来就出现了UUID,也就是给每个分区设置了独有的id编码,这样无论怎么样颠倒磁盘分区都不会出现数据错乱的情况了,因为系统是按设备uuid号来查看分区的。当然我们平时用设备名可能更方便一些。但是不如用UUID灵活和可靠。

那么如何查看分区的UUID号呢?我们直接用命令:
dumpe2fs -h /dev/sda1
这样的命令即可查看,其实前面我们学习过的。这个命令是用来显示磁盘状态的。
如图:



这个UUID是唯一的。

第二字段:挂载点
第三字段:文件系统名称
第四字段:挂载参数
第五字段:指定分区是否被dump备份,0代表不备份,1代表每天备份,2代表不定期备份
正常来说每个分区这个字段都是1,也就是每天都备份的,那么他的备份位置是哪里呢?我们可以用ll查看一下,比如ll /home这个分区吧,如图:



这个lost+found目录就是分区的备份,大家可以查看其他分区也都有这个目录的。
第六字段:指定分区是否被fsck检测,0代表不检测,其他数字代表检测的优先级,那么当然1的优先级比2高。
而我们自定义分区的优先级都不可能比系统第一设备的优先级高,所以这个字段不能设置为1.

2、添加启动自动挂载分区
也就是说我们只要按照上面的规则把我们的新分区添加到这个文件里面,我们每次启动系统就会自动挂载新分区了。
好的,我们用vi来编辑一下fstab这个文件
如图:



我这里是直接用的设备文件名,没用UUID,如果大家要用UUID的话,可以用dumpe2fs -h /dev/sdb1来查看一下这个分区的UUID。

然后我们用wq保存即可,这样我们每次开机这个sdb1分区就自动挂载了。
大家在修改这个fstab文件的时候一定要非常非常的仔细,不然稍有不慎,就会导致系统无法启动。

好的,我们先用mount -a命令来自动挂载一下,mount -a这个命令前面学习过,意思是依据配置文件/etc/fstab的内容,自动挂载一次。



看,是不是sdb1已经挂载了啊。
为什么我们先用mount -a来让他自动挂载一次呢?
因为如果我们用mount -a来自动挂载的时候如果报错,就证明fstab这个文件我们编辑的时候有问题,这样就不至于系统从启动的时候才知道有错但是来不及了。

大家还可以尝试用UUID来定义第一个字段来添加默认分区挂载,我就不演示了。

二、/etc/fstab 文件修复
我们在修改fstab的过程中难免会有一定的几率出错,难道这样就必须从新安装系统了吗?
其实是有办法来修复fstab的错误的。
[root@localhost ~]# mount -o remount,rw /
为什么会给出这么一个挂载特殊选项的命令呢?
好的,我们来模拟一下fstab出错系统崩溃的情景,然后大家看我怎么修复。

1、我们来故意把分区信息写错,如图:



我们把sdb1写成sdd1了,保存退出。然后我们从新启动linux看看会出现什么情况。
当然这时候我们需要进入到虚拟机里了,而不能用远程工具了。
如图:




2、是不是看到了明显的报错啊。
不要着急,
4000
我们看看他都提示了什么。
首先在上面提示没有找到sdd1这个分区。
然后在命令光标前面提示,可以尝试输入root管理员密码,或者按ctrl+d键继续从新启动。

那么我们就输入root密码试试:
如图:



竟然神奇的出现了我们属性的命令光标提示。

3、既然是fstab出错了,那么我们就用vim去修改一下fstab吧,如图:



我们修改的时候他提示一个错误E303,然后提示按回车继续,那么我们就按回车继续修改,修改完保存的时候又出现报错,如图:



他又提示说这个文件只读。

好吧,怎么回事呢?原因是fstab错误的时候从新启动系统后把根目录挂载成只读了,所以我们需要用Mount -o命令把根分区挂载为读写即可。
这下大家明白为什么是用mount -o命令来修复了吧。

4、我们用mount -o 命令来把根分区挂载为读写。
[root@localhost ~]# mount -o remount,rw /
然后这个时候我们再来修改fstab文件就能正常保存了,
如图:



看,是不是已经正常写入了。
这个时候我再启动一下linux就能正常启动了。我就不给大家演示了。

但是还是需要注意,这个修复方法可不是万能的,他只能用到fstab文件出错的时候可以修复,而且必须不是根分区的字段有错,如果fstab里面的根分区字段出错了,那么系统彻底崩溃了。
所以我们平时如果遇到修改这个文件还是要百倍的小心。

本教程原创作者:mageo,出自每集博客,尊重作者劳动,转载请注明出处:http://www.ql2015.cn,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息