CentOS6.4系统启动失败故障排查
转:http://www.centoscn.com/CentosBug/osbug/2014/1028/4011.html
操作系统启动失败如下图报错:
故障现象:
从图中可以看到,操作系统启动的过程中,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
|
*除了以上方法:还可以注释掉 #/dev/mapper/VolGrouplv_home
但会提示没有写的权限:可以通过命令:mount -o remonut,rw /, Vi /etc/fstab
此时即可正常启动系统,不过中途会看到如下界面:
此时已没有fsck的报错,但是mount挂载文件系统时有一个failed的信息,这是因为在系统初始化脚本/etc/rc.d/rc.sysinit中,文件系统检测完成后的下一步即是去挂载文件系统;
并且从此界面可以明确的看到问题的所在了,/dev/mapper/VolGroup-lv_home不存在;虽然有此failed信息,但不影响系统可以继续启动;
绿色圈中的是需等待SELinux自动完成重新打标,若不想等待,可以在系统启动时禁入编辑模式,禁用SELinux的启动即可,如下图:
--------------------------------------------------------------------
至此操作系统已经可以启动起来,需介绍下背景了,此系统安装时是按照系统默认的分区布局(partitioning layout),如下图:
一块硬盘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
|
[root@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
[root@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相关的元数据备份信息
[root@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的那一刻的元数据信息
[root@mysqlhost1 ~]# vgcfgrestore -f/etc/lvm/archive/VolGroup_00001-560861966.vg VolGroup
Restored volume group VolGroup
##此时即可看到此逻辑卷lv_home了
[root@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
##激活此逻辑卷
[root@mysqlhost1~]# lvchange -ay /dev/VolGroup/lv_home
[root@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中刚才做的改动
[root@mysqlhost1 ~]# vi /etc/fstab
##重新挂载
[root@mysqlhost1 ~]# mount -a
##/home目录下原有的数据也都可以查看到了
[root@mysqlhost1 ~]# ls /home
|
确实按上面方法,可以看到home的内容了,但如果系统重新启动了后,还是会报如下错误:
就不知道怎么办了,还是重装系统了.哎
注上几条命令:查看硬盘的UUID
ot@centreon ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 2.7T 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 2.7T 0 part
├─vg_centreon-lv_root (dm-0) 253:0 0 50G 0 lvm /
├─vg_centreon-lv_swap (dm-1) 253:1 0 4G 0 lvm [SWAP]
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
sdb 8:16 0 2.7T 0 disk
└─sdb1 8:17 0 2.7T 0 part
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
sdc 8:32 0 2.7T 0 disk
└─sdc1 8:33 0 2.7T 0 part
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
└─vg_centreon-lv_home (dm-2) 253:2 0 8.1T 0 lvm /home
[root@centreon ~]# blkid
/dev/sda1: UUID="afca0f91-00c7-4707-a1ab-ef6b9994100e" TYPE="ext4"
/dev/sda2: UUID="eP2umd-3ylU-iJan-uroF-lTuA-7nvC-rwtxfp" TYPE="LVM2_member"
/dev/sdb1: UUID="CyGJ2T-smib-rYoT-CKbb-g0tF-S9bk-n1X0T6" TYPE="LVM2_member"
/dev/sdc1: UUID="0EP3hG-SZJX-8N4N-OevK-0JOf-2V6Y-22hNvF" TYPE="LVM2_member"
/dev/mapper/vg_centreon-lv_root: UUID="75345656-50c9-4943-9925-92c1051c8f8e" TYPE="ext4"
/dev/mapper/vg_centreon-lv_swap: UUID="377fa21f-cec3-4574-8bf0-c49c45ab09a2" TYPE="swap"
/dev/mapper/vg_centreon-lv_home: UUID="ffcb68ae-2b66-4da3-9125-82e3acecf0fd" TYPE="ext4"
CentOS6.4系统启动失败故障排查的更多相关文章
- CentOS6系列系统启动常见故障排查与解决方法
情景一.内核文件损坏 /boot/vmlinuz-2.6.32-642.el6.x86_64 内核文件 1.故障现象 2.解决方法:挂载光盘,进入rescue(救援)模式 3.选择--English- ...
- Linux启动故障排查和修复技巧
一个执着于技术的公众号 我发现Linux系统在启动过程中会出现一些故障,导致系统无法正常启动,我在这里写了几个应对单用户模式.GRUB命令操作.Linux救援模式的故障修复案例帮助大家了解此类问题的解 ...
- 使用strace工具故障排查的5种简单方法
使用strace工具故障排查的5种简单方法 本文源自5 simple ways to troubleshoot using strace strace 是一个非常简单的工具,用来跟踪可执行程序的系统调 ...
- 一次线上OOM故障排查经过
转贴:http://my.oschina.net/flashsword/blog/205266 本文是一次线上OOM故障排查的经过,内容比较基础但是真实,主要是记录一下,没有OOM排查经验的同学也可以 ...
- SQL Server 2008性能故障排查(四)——TempDB
原文:SQL Server 2008性能故障排查(四)--TempDB 接着上一章:I/O TempDB: TempDB是一个全局数据库,存储内部和用户对象还有零食表.对象.在SQLServer操作过 ...
- SQL Server 2008性能故障排查(三)——I/O
原文:SQL Server 2008性能故障排查(三)--I/O 接着上一章:CPU瓶颈 I/O瓶颈(I/O Bottlenecks): SQLServer的性能严重依赖I/O子系统.除非你的数据库完 ...
- SQL Server 2008性能故障排查(一)——概论
原文:SQL Server 2008性能故障排查(一)--概论 备注:本人花了大量下班时间翻译,绝无抄袭,允许转载,但请注明出处.由于篇幅长,无法一篇博文全部说完,同时也没那么快全部翻译完,所以按章节 ...
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825
Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825 1. 播放系统服务器方面的维护2 1.1. 默认情况下,已经在系统的启动目录下增加了俩个启动项目2 1.2. ...
- CentOS服务器上搭建Gitlab安装步骤、中文汉化详细步骤、日常管理以及异常故障排查
一, 服务器快速搭建gitlab方法 可以参考gitlab中文社区 的教程centos7安装gitlab:https://www.gitlab.cc/downloads/#centos7centos6 ...
随机推荐
- linux常用命令:1文件处理命令
文件处理命令 1.命令格式 命令格式:命令 [-选项] [参数] 例:ls -la /etc 说明:1)个别命令使用不遵循此格式 2)档有多个选项时,可以写在一起 3)简化选项与完整选项 2.目录 ...
- ERP权限系统(七)
添加链接权限的字段: //权限管理 n.Target = "MainFrame"; //折叠 TreeView1.Nodes.Add(n); n.Expanded = false;
- iOS应用中通过设置VOIP模式实现休眠状态下socket的长连接
如果你的应用程序需要在设备休眠的时候还能够收到服务器端发送的消息,那我们就可以借助VOIP的模式来实现这一需求.但是如果的应用程序并不是正真的VOIP应用,那当你把你的应用提交到AppStore的时候 ...
- GIT之一 起步篇
关于版本控制 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.如果你是位图形或网页设计师,可能会需要保存某一幅图片或页面布局文件的所有修订版本.采用版本控制系统(VCS) ...
- Linux环境给文件重命名
Linux环境给文件重命名时,如果重命名后的文件名称与当前路径下已存在的文件名称相同,则重命名的文件会覆盖相同名称的文件内容: 例如:新建文件testfile1,内容为mytest: 新建文件test ...
- Unity3d各平台资源路径文件夹
之前一直是PC项目,公司终于考虑移动平台了,但是试验了几把,感觉移动平台资源管理路径还是有很多隐藏的注意事项. 比如在PC上可以做到随便读写,但是在移动平台就涉及到权限问题. 看到小伙伴的总结,还是要 ...
- Unity3D ShaderLab 立方体图的菲涅尔反射
Unity3D ShaderLab 立方体图的菲涅尔反射 菲涅尔反射是反射类型中比较常见的一种类型,当我们的视线正对物体表面,那么反射量会明显增加, 我们几乎可以在任何支持反射类型的物体表面看到这种情 ...
- Use XML in Windows Phone 8.0
I have an XML file stored in DataModel folder, the structure is shown as below: <?xml version=&qu ...
- 重学STM32---(十) ——CAN通信(二)
CAN协议是非常难的,但是在stm32中却是简单的,只需要我们配置寄存器即可,,,即使这样,我在学习的时候也遇到了许多困难 1.开时钟,不用说 2.设置GPIO口,,CAN_TX复用推挽输出,CAN_ ...
- Highcharts入门+Highcharts基础教程,【非常值得学习的资料】
http://www.hcharts.cn/docs/index.php?doc=index Highcharts入门章节目录 Highcharts简介 Highcharts下载与使用 Highcha ...