前言
运维人员经常会遇到各式各样的系统故障,如何根据故障特征锁定问题根源,需要的不仅仅是技巧,还有遇到故障时的思路,和对系统内部的理解,本文列出了一些常见的系统故障和处理方法,在那之前首先需要对系统启动流程有一个比较完整意义上的了解,以便问题出现后判断其属于哪个环节。
Linux系统启动流程的基本知识
1、加电自检(PowerOnSelfTest)
开机自动映射rom中程序到cpu可以寻址的空间中,cpu执行指令检查基本硬件是否正常
2、BIOS(Boot Sequence)
如果正常则按照CMOS中保存的BootSequnece依次寻找对应设备上的MBR
3、MBR(BootLoader)
读取第一个MBR存在的设备中的BootLoader,并交与其控制权。
Linux下的常见BootLoader有两种:
LILO: LInux LOader(不能引导1024柱面以后的分区内核(嵌入式))
GRUB: GRand Unified Bootloader
MBR空间有限,无法展示其特性,所以将GRUB分为2阶段程序,如下:
Stage1(被装载MBR当中) 主要目的是为了引导第二阶段
Stage1.5(/boot/grub/Stage1_5) 识别常见不同类型的文件系统
Stage2(/boot/grub/Stage2) 引导操作系统(突破了446字节的限制) 并借助配置件/boot/grub/grub.conf
4、Kernel
设备探测
驱动初始化(可能会从initrd(RHEL6 initramfs)文件中装载驱动模块)
为内核提供访问根文件系统的基本驱动能力
以只读挂载根文件系统
装载第一个进程init
5、init(etc/inittab)
/sbin/init 其配置文件(etc/inittab)
/etc/inittab 主要任务如下:
1、设定偶人运行级别
2、运行系统初始化脚本
3、运行制定运行级别目录下的脚本
4、设定Ctrl+Alt+Del组合键的操作
5、定义UPS电源在电源故障/恢复时执行的操作
6、启动6个虚拟终端(2345级别)
7、启动图形终端(5级别)
常见系统错误
1、忘记密码
启动进入单用户模式
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182122823.png"></a>
使用passwd修改root密码
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182229769.png"></a>
2、bootloader损坏
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182556697.png"></a>
载入安装光盘进入紧急救援模式
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182751382.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182754290.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182757751.png"></a>
进入grub模式
<a target="_blank" href="http://blog.51cto.com/attachment/201308/182855622.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201308/183716951.png"></a>
<a target="_blank" href="http://blog.51cto.com/attachment/201308/183745153.png"></a>
重复成功
<a target="_blank" href="http://blog.51cto.com/attachment/201308/183816463.png"></a>
3、bash丢失系统无法启动
<a target="_blank" href="http://blog.51cto.com/attachment/201308/183943319.png"></a>
进入救援模式后
<a target="_blank" href="http://blog.51cto.com/attachment/201308/183957607.png"></a>
4、加密grub和内核
<a target="_blank" href="http://blog.51cto.com/attachment/201308/184151674.png"></a>
5、因某服务异常导致系统无法启动
<a target="_blank" href="http://blog.51cto.com/attachment/201308/184503327.png"></a>
总结七个点:
1、确定问题的故障特征
2、重现故障
3、使用工具收集进一步信息,确定问题根源
4、排除不可能的原因
5、定位故障
6、备份源文件
7、尽可能借助于工具
本文转自 ftmoonfans 51CTO博客,原文链接:http://blog.51cto.com/soulboy/1277190