系统故障排查

一系统启动类故障

常见系统启动类故障包括:MBR扇区故障、GRUB引导故障、丢失系统文件、遗忘root密码

·MBR扇区故障

MBR即Master Boot Record,主引导记录,位于硬盘的第一个扇区(512字节),其中包含了系统引导程序、硬盘分区表信息

 

1故障原因

病毒、木马等造成的破坏

不正确的分区操作、磁盘读写误操作

2故障现象

找不到引导程序,启动中断

无法加载操作系统,开机后黑屏

3解决思路

应提前作好备份文件(如果没有MBR的备份文件,恢复难度会比较大,可能需要使用"诺顿磁盘医生(Norton Disk Doctor)"之类能够按分区位置查找修复的磁盘工具)

以RHEL5安装光盘引导进入急救模式,从备份文件中恢复

应用示例:模拟MBR损坏

1备份MBR扇区数据

MBR扇区的备份文件应保存在不同的磁盘中,否则在恢复时将无法读取备份文件

把第一块硬盘sda的MBR扇区备份到第二块硬盘的sdb1分区中

13系统故障排查_root密码

2模拟MBR被破坏的故障

人为的将MBR扇区的记录覆盖,从而达到破坏的目的

从设备文件zero中读取512自己的数据进行覆盖

13系统故障排查_马向军_02

重启系统后无法引导了

13系统故障排查_故障排查_03

3RHEL5光盘引导,进入急救模式

插入光盘,输入linux rescue

13系统故障排查_马向军_04

选择语言等,跳过网卡检测,跳过初始化磁盘(警告);进入到急救模式

4从备份文件中恢复MBR扇区

含备份文件的分区挂载到一个临时目录,以便能够读取到备份文件

13系统故障排查_root密码_05

·GRUB引导故障

GRand Unified Bootloader 中文意思为"极好的统一引导器",是大多数Linux系统默认使用的引导程序;即开机时的引导菜单

1故障原因

MBR中的GRUB引导程序遭到破坏

grub.conf文件丢失、引导配置有误

2故障现象

系统引导停滞,显示"grub>"提示符

3解决思路

尝试手动输入引导命令

进入急救模式,从备份中恢复 grub.conf

向MBR扇区中重建grub程序

应用示例:模拟引导文件丢失

1备份并删除grub.conf引导文件

13系统故障排查_root密码_06

2重启系统验证

13系统故障排查_故障排查_07

3手动输入引导命令引导系统

13系统故障排查_linux系统故障_08

其中:

root (hd0,0)指定包含内核等引导文件的分区(即/boot分区),(hd0,0) 对应为 /dev/sda1

kernel ……    指定内核文件所在的路径、根分区所在的设备位置

initrd ……    指定引导过程中使用的缓存盘镜像文件位置

boot            用于启动进入系统

进入系统后,要恢复引导文件(否则下次还是不能引导)

13系统故障排查_故障排查_09

4从急救模式恢复引导文件

如果分区表没有别破坏,进入急救模式后,系统会自动挂载根分区到/mnt/sysimage/中

13系统故障排查_linux系统故障_10

如果MBR扇区中的引导程序损坏(例如重装Windows系统后),则可能即使重建了引导文件,系统也无法启动,因此需要重新安装grub引导程序(还是在急救模式下)

13系统故障排查_马向军_11

13系统故障排查_linux系统故障_12

最后exit退出

·/etc/inittab文件丢失

/etc/inittab文件是系统初始化进程init的配置文件

1故障原因

inittab文件被误删除,或者存在配置错误

2故障现象

启动中提示 "... INIT: No inittab file found"

系统停滞,无法完成初始化

3解决思路

进入急救模式,从备份文件中恢复

或者,在急救模式中重新安装 initscripts 软件包

rpm -ivh --replacepkgs initscripts-8.45.14.EL.i386.rpm

应用示例:

1备份并删除inittab文件

2进入急救模式

3从备份文件恢复(略)

4重新安装软件包(急救模式下)

rpm -ivh --replacepkgs initscripts-8.45.14.EL.i386.rpm

--replacepkgs 选项表示进行替换(覆盖)安装,即使系统中已经安装了这个包

·遗忘root用户密码

1故障原因

遗忘root用户的密码

2故障现象

无法进行需要root权限的管理操作

若没有其他可用帐号,将无法登录系统

3解决思路

引导进入单用户模式,然后重设密码:grub > kernel ... single 或 s 或 1

或进入急救模式,然后重设密码

应用示例:

1单用户模式下修改密码

启动计算机时,在出现GRUB菜单时按上下键取消倒计时,按e键进入编辑模式

13系统故障排查_故障排查_13

选择kernel开头的一行,并按e键开始编辑,在行尾添加"s"启动参数;也可以写成"single"或"l"

13系统故障排查_root密码_14

回车确认后按b键重引导系统到单用户模式,直接进入到了shell环境,不用输入密码

13系统故障排查_root密码_15

执行passwd root修改密码,如果不能修改,直接修改/eyc/shadow文件,将密码字串删除,然后添加两个感叹号

删除前

13系统故障排查_root密码_16

删除后

13系统故障排查_马向军_17

wq!强制保存退出后,reboot重启验证

2通过急救模式重设root账号密码

进入急救模式后

13系统故障排查_故障排查_18

13系统故障排查_root密码_19

或者修改shadow文件

二文件系统类故障

·文件系统故障

1故障原因

非正常关机、突然断电、设备读写失误等

文件系统的超级块(super-block)信息被破坏

2故障现象

无法向分区中读取或写入数据

启动后提示"Give root password for maintenance"

3解决思路

根据提示输入root口令,进入修复状态

使用fsck命令进行修复

应用示例:

1模拟对/dev/sda2分区的破坏操作

13系统故障排查_故障排查_20

2检查是否能挂载该分区

13系统故障排查_linux系统故障_21

3 Linux系统开机后,当提示"Give root password for maintenance"时,只需输入root用户的密码,即可进入到一个临时的Shell环境,用户可以对出现错误的文件系统进行修复

fsck –y -t ext3 /dev/sda2

-y选项可以在出现交互提问时,自动按"yes"处理

·磁盘资源耗尽故障

1故障原因

磁盘空间已被大量的数据占满,空间耗尽

虽然还有可用空间,但文件数i节点耗尽

2故障现象

无法写入新的文件,提示"… : 设备上没有空间"

部分程序无法运行,甚至系统无法启动

3解决思路

清理磁盘空间,删除无用、冗余的文件

转移或删除占用大量i节点的琐碎文件(文件个数)

进入单用户模式、急救模式进行修复

为用户设置磁盘配额

·检测磁盘坏道

1故障原因

磁盘设备中存在坏道(逻辑的或物理的)

逻辑坏道主要由于软件操作不当造成,可以使用软件修复

物理坏道是物理性损坏,只能通过更改磁盘分区或扇区的占用位置来进行改善,排除掉包含有坏块的磁盘空间

注意是mkfs命令而不是fsck命令,检查坏道之前,应尽量先卸载该分区,退出正在访问设备的其他程序

2故障现象

读取磁盘中的数据时,磁盘设备发出异常声响。

访问磁盘中的某个文件时,反复读取且出错,提示文件损坏。

对于新建立的分区无法完成格式化。

系统使用该磁盘时频繁死机

3解决思路

检测硬盘中是否存在坏道

badblocks -sv /dev/sdb

耗时时间比较长

修复硬盘,或更换新的硬盘