前言
运维人员经常会遇到各式各样的系统故障,如何根据故障特征锁定问题根源,需要的不仅仅是技巧,还有遇到故障时的思路,和对系统内部的理解,本文列出了一些常见的系统故障和处理方法,在那之前首先需要对系统启动流程有一个比较完整意义上的了解,以便问题出现后判断其属于哪个环节。
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、忘记密码
启动进入单用户模式
使用passwd修改root密码
2、bootloader损坏
载入安装光盘进入紧急救援模式
进入grub模式
重复成功
3、bash丢失系统无法启动
进入救援模式后
4、加密grub和内核
5、因某服务异常导致系统无法启动
总结七个点:
1、确定问题的故障特征
2、重现故障
3、使用工具收集进一步信息,确定问题根源
4、排除不可能的原因
5、定位故障
6、备份源文件
7、尽可能借助于工具
本文转自 ftmoonfans 51CTO博客,原文链接:http://blog.51cto.com/soulboy/1277190