Linux常见系统故障排除

Linux常见系统故障的排除:
1 确定问题的故障特征
2 重现故障
3 使用工具收集进一步信息确定故障根源
4 排除不可能的原因
5 定位故障:
从简单问题入手
一次只尝试一种方式

遵循的基本原则:备份原文件
尽可能借助于工具

可能出现的故障:
1 管理员密码忘记
2 系统无法正常启动
grub 损坏(MBR损坏,grub配置文件丢失)
系统初始化故障(某文件系统无法正常挂载,驱动问题等)
由rc.sysinit导致 只要进入grub编辑模式 emergency 不会加载rc.sysinit脚本
某些服务故障
用户无法登陆(用户对应的shell损坏,mingetty)
3 命令无法运行
4 编译过程无法继续(开发环境缺少基本组件)

例子: 将MBR损坏.
先将MBR 备份  dd if=/dev/sda of=/root/mbr.backup count=1 bs=512
损坏:dd if=/dev/sda/zero 0f=/dev/sda count=1 bs=200
sync
shutdown -r now

MBR损坏解决办法:
1 借助于别的主机修复
2 使用紧急救援模式
a、boot.iso  只提供引导界面    所以同时要提供安装环境才行
b、使用完整的系统安装盘 (完好的系统光盘)
输入命令boot:linux rescue
根文件系统会被挂载到/mnt/sysimage下 可能以只读方式挂载 要重新挂载改为读写方式

因为引用的文件系统没有rc.syinit 而rc.sysinit有udevs用来创建设备文件 所以要手动创建设备文件 mknod

成功进入紧急模式后  使用grub 命令
findhd(0,0)/  再tab补全    若发现vimlinuz 和initrd文件 表示在该盘
root hd(0,0)
setup hd(0)
exit
sync
reboot

grub配置文件丢失:
grub> root (hd0,0)
grub> kernel /vmlinuz-version ro root=/dev/vo10/root/ rhgb quiet
grub> initrd /initrd-version  一定要与内核版本匹配
gurb>boot
手动建立grub.conf
default=0
timeout=10
title RHEL 5.8
root (hd0,0)
kernel /vmlinuz-version ro root=/dev/vo10/root quiet
initrd /

先将/boot/grub 移走 mv /boot/grub/grub.conf /root/
sync
shutdown -r now

kernel panic:内核恐慌

其他故障:
把默认级别设定为0或6 -->进入单用户模式,编辑inittab文件

删了/etc/rc.d/rc3.d,运行到3级别时就会报错.  -->进入单用户模式修复

某个服务故障导致无法启动 -->启动系统时敲I键,启动交互式模式,选择不启动sendmail服务即可

rc.d/rc.local脚本出现语法错误或者逻辑错误 -->进入单用户模式,单用户模式不启动
rc.local开机必启动,常用来在里面添加一些脚本,让开机后执行

/bin/bash被删除了-->进入紧急救援模式(挂载光盘)-->输入命令boot:linux rescue
-->ls /mnt/sysimg  真正的根在该目录下
-->ls /dev 发现有个hdc
-->mkdir /media  不能直接挂载到/mnt下 因为/mnt/sysimg
-->mout /dev/hdc /media  没有cdrom hdc就像当于cdrom
--> cd /media
-->ls
-->cd /server
-->ls | grep bash
-->rpm -ivh --replacepkgs bash-version  这个是装在当前的小系统了 不行
-->rpm -ivh --replacepkgs --root /mnt/sysimg bash-version  指定
chroot /mnt/sysimg

mingetty被删除了-->进入单用户模式 单用户模式不用mingetty,但也不启动网络功能,要手动开启网络功能,从服务器下载mingetty

相关推荐