设为首页 收藏本站
查看: 753|回复: 0

[经验分享] CentOS6.4系统启动失败故障排查An error occurred during the file sytem check

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-27 08:57:01 | 显示全部楼层 |阅读模式
操作系统启动失败如下图报错:
wKiom1RKZXqgHGs6AANK_kNlQys060.jpg

故障现象:
从图中可以看到,操作系统启动的过程中,fsck在执行文件系统检测时出现了错误,并且是在检查/dev/mapper/VolGroup-lv_home时出错,提示此文件不存在;

故障分析:
这是一个什么界面,为何会出现这个界面?
操作系统启动的的大致过程为:加载BootLoader-à加载kernel-àinit执行系统初始化-à用户登录;而在init执行系统初始化的过程中,会执行系统初始化脚本/etc/rc.d/rc.sysinit,在此脚本中即会执fsck -A进行文件系统检测;
fsck -A会执行什么操作呢?
fsck -A会遍历文件/etc/fstab,检查其中定义的所有的文件系统。fsck在做文件系统检查前通常不会去检查设备是否真实存在,所以如果某设备不存在,而又去做了fsck,fsck即会报错,继而导致操作系统时会进入文件系统修复模式(file system repair mode),而中断正常的系统启动;
所以,这就是为何会出现此界面的原因了。

解决方法:
既然是fsck执行失败,导致操作系统无法继续启动,所以可以在操作系统启动时,让fsck跳过检查这个有问题的/dev/mapper/VolGrouplv_home即可正常启动操作系统;(在/etc/fstab中设置此项的第个字段fs_passno的值设为0,即意为fsck不检查此行)
         但是此时文件系统修复模式下所有文件都是只读的,无法编辑/etc/fstab;所以此时可以选择从系统光盘启动,选择进入紧急救援模式下去修改文件(因为紧急修复模式不会执行/etc/rc.d/rc.sysinit,所以不会出现此报错);
1
2
3
bash-4.1# chroot /mnt/sysimage
sh-4.1# vim /etc/fstab             ##将/dev/mapper/VolGrouplv_home这一行的第6个字段设为0
sh-4.1# reboot -r




此时即可正常启动系统,不过中途会看到如下界面:
wKiom1RKZ8LzU4kiAAHPtG_x4m8874.jpg
此时已没有fsck的报错,但是mount挂载文件系统时有一个failed的信息,这是因为在系统初始化脚本/etc/rc.d/rc.sysinit中,文件系统检测完成后的下一步即是去挂载文件系统;
并且从此界面可以明确的看到问题的所在了,/dev/mapper/VolGroup-lv_home不存在;虽然有此failed信息,但不影响系统可以继续启动;
绿色圈中的是需等待SELinux自动完成重新打标,若不想等待,可以在系统启动时禁入编辑模式,禁用SELinux的启动即可,如下图:
wKiom1RKaESSAihxAADwKCnHGFA003.jpg



--------------------------------------------------------------------

至此操作系统已经可以启动起来,需介绍下背景了,此系统安装时是按照系统默认的分区布局(partitioning layout),如下图:
wKiom1RKaMvzQle7AAGPBvjJ-gE539.jpg
         一块硬盘sda,分成了sda1与sda2两个分区,sda2做成物理卷,基于此物理卷创建的卷组名称为VolGroup,在此卷组上创建了3个逻辑卷,名称分别为lv_root、lv_home、lv_swap,并且此逻辑卷lv_root与lv_home分别挂载到了文件系统中的/目录和/home目录;
    所以前文中/dev/mapper/VolGroup-lv_home即是此系统自动创建的挂载在/home的逻辑卷;比如由于误操作(umount、lvremove),删除了此逻辑卷,然后在重启电脑时,即会出现开篇处的报错了。
--------------------------------------------------------------------------------------------------------------------------------------

现在操作系统已经启动登录,也知道问题所在了,那么接下来如何恢复此逻辑卷呢?
此时,系统中查看此逻辑卷的确是已被删除;
1
2
3
4
5
6
7
[iyunv@mysqlhost1 ~]# lvs
LV      VG      Attr      LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
lv_root VolGroup -wi-ao--- 50.00g                                             
lv_swap VolGroup -wi-ao--- 992.00m                                             
[iyunv@mysqlhost1 ~]# ll /dev/VolGroup/
lrwxrwxrwx 1 root root 7 10月 22 20:27lv_root -> ../dm-0
lrwxrwxrwx 1 root root 7 10月 22 20:27lv_swap -> ../dm-1



并且由于此逻辑卷是挂载在/home目录下,此逻辑卷丢失,那么/home目录下的数据,是否也是一同丢失了呢?如何恢复/home目录下原有的数据?
lvremove删除逻辑卷,其只是会清除LVM的部分元数据信息(metadata),真正的数据仍会被完整的保留;即虽然逻辑卷lv_home被删除了,但是/home下的数据仍然存在,只是现在暂且看不到;
并且默人的配置是,LVM的物理卷、卷组或是逻辑卷发生任何改动之前,LVM的元数据信息都会自动保存至/etc/lvm/archive目录下;
         所以我们只需恢复逻辑卷lv_home被删除前的自动备份的LVM的元数据信息,逻辑卷lv_home即可自动恢复,然后后重新挂载,即可查看到/home目录下原有的数据了;
1
2
3
4
5
6
##查看和卷组VolGroup相关的元数据备份信息
[iyunv@mysqlhost1 ~]# vgcfgrestore --list VolGroup  
  File:          /etc/lvm/archive/VolGroup_00001-560861966.vg
  VG name:            VolGroup
  Description:    Created *before* executing 'lvremove /dev/VolGroup/lv_home'
  Backup Time:  Wed Oct 22 17:33:17 2014



    结果中可以看到在执行'lvremove /dev/VolGroup/lv_home'之前,卷组的元数据自动被备份到了文件/etc/lvm/archive/VolGroup_00001-560861966.vg中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
##从对应文件中恢复卷组VolGroup的那一刻的元数据信息
[iyunv@mysqlhost1 ~]# vgcfgrestore -f/etc/lvm/archive/VolGroup_00001-560861966.vg VolGroup
  Restored volume group VolGroup
##此时即可看到此逻辑卷lv_home了
[iyunv@mysqlhost1 ~]# lvscan                                 
ACTIVE           '/dev/VolGroup/lv_root' [50.00 GiB] inherit
inactive         '/dev/VolGroup/lv_home' [108.54 GiB] inherit
ACTIVE           '/dev/VolGroup/lv_swap' [992.00 MiB] inherit
##激活此逻辑卷
[iyunv@mysqlhost1~]# lvchange -ay /dev/VolGroup/lv_home              
[iyunv@mysqlhost1 ~]# lvscan
ACTIVE           '/dev/VolGroup/lv_root' [50.00 GiB] inherit
ACTIVE           '/dev/VolGroup/lv_home' [108.54 GiB] inherit
ACTIVE            '/dev/VolGroup/lv_swap' [992.00 MiB] inherit



1
2
3
4
5
6
##恢复/etc/fstab中刚才做的改动
[iyunv@mysqlhost1 ~]# vi /etc/fstab  
##重新挂载         
[iyunv@mysqlhost1 ~]# mount -a   
##/home目录下原有的数据也都可以查看到了                       
[iyunv@mysqlhost1 ~]# ls /home



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-26573-1-1.html 上篇帖子: linux下 文件夹和文件的字符集编码方式转换 下篇帖子: ubuntu/linux下安装虚拟蜜罐Honeyd 具体流程,Honeyd安装包 system repair BootLoader occurred 用户登录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表