感谢支持
我们一直在努力

RHEL5故障一般排错

首先,我们要知道对Linux进行故障排错的学习方法和步骤:
一、要非常熟悉Linux的启动过程。
二、要学会查看日志的好习惯。
三、要具备常见的Linux故障的场景及解决方法的经验。
四、不断的积累、总结。


引导流程图:


(1)修复MBR扇区故障


故障原因:
One:一些病毒、木马等造成的破坏。
two:不正确的分区操作、磁盘读写的误操作。
故障现象:
one :无法加载OS,开机后出现黑屏。
two:找不到引导程序,启动过程中突然中断。


解决方案:
one:应提前作好备份文件
two:以RHEL5安装光盘引导进入急救模式
three:从备份文件中恢复


Example:
1.备份MBR扇区数据
dd if=/dev/sda of =/backup/sda.mbr.bak bs=512 count=1


2.模拟MBR被破坏额故障
dd if=/dev/sda of=/dev/sda bs=512 count=1



3.RHEL5关盘引导,进入到急救模式
boot:linux resure


4.从备份文件中恢复MBR扇区
dd if=/tempdir/sda.mbr.bak of=/dev/sda bs=512 count=1


(2)修复GRUB引导故障
故障原因:
one :MBR中的GRUB引导程序遭到破坏
two :grub.conf文件丢失、引导配置有误


故障现象:


系统引过程中停止不前,显示“grub>”提示符



解决方案:
手动输入引导命令
进入急救模式,从备份中恢复grub.conf配置文件
向MBR扇区中重建grub程序


Example:


1.在“grub>”提示符后,手动输入引导命令,
成功进入系统后,恢复或重建 grub.conf 配置文件
grub> root (hd0,0)
grub> kernel /vmlinuz-2.6.9-5.EL ro root=LABEL=/ rhgb quiet
grub> initrd /initrd-2.6.9-5.EL.img
grub> boot
==================================================================
[root@localhost ]# cd /boot/grub/
[root@localhost ]# cp grub.conf.bak grub.conf
==================================================================

2.进入急救模式,从备份文件中恢复 grub.conf 文件,
向MBR扇区中重建GRUB程序


sh-3.1# chroot /mnt/sysimage
sh-3.1# cd /boot/grub/
sh-3.1# cp grub.conf.bak grub.conf
sh-3.1# grub-install /dev/sda


(3)etc/inittab文件丢失
故障原因:
inittab文件被误删除,或者存在配置上的问题
故障现象:
one:启动中提示 “… INIT: No inittab file found”



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


解决方案:
One:进入急救模式,从备份文件中恢复
two: 在急救模式中重新安装 initscripts 软件包
rpm -ivh –aid –force –replacepkgs initscripts-8.45.14.EL.i386.rpm


(4)etc/fstab文件丢失
故障原因:
fstab文件被误删除,或者存在配置错误
故障现象:
one:启动中提示 “… /etc/fstab: No such file or directory”



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


解决方案:
one :进入急救模式,手动查找并挂载根分区
查找逻辑卷:lvm vgscan
激活指定的逻辑卷:lvm vgchange -ay /dev/VolGroup00
two :恢复或重建fstab配置文件



(5)忘记root用户的密码
故障原因:
忘记root用户的密码


故障现象:
one :无法进行需要root权限的管理操作
two :若没有其他可用帐号,将无法登录系统


解决方案:
one :引导进入单用户模式(runlevel=1),然后重设密码
grub > kernel … single 或 s 或 1
two :进入急救模式,然后重设密码



(6)软件包类故障 —— rpm数据库损坏


故障原因:
非正常关机、误删除运行中的程序文件
RPM数据文件被误写或删除


故障现象:
不能正常查询rpm包信息 rpm -ql ; rpm -qa …..
无法安装、升级或卸载软件包等 rpm -U ; rpm -i……
解决方案:
重建RPM数据库
重建命令:rpm –rebuilddb 或 rpm –initdb



(7)磁盘资源耗尽故障


故障原因:
one :磁盘空间已被大量的数据占满,空间耗尽
two :虽然还有可用空间,但文件数i节点耗尽


故障现象:
one :无法写入新的文件,提示“… : 设备上没有空间”
two : 部分程序无法运行,甚至系统无法启动


解决方案:
1. 清理磁盘空间,删除无用、冗余的文件
2 .转移或删除占用大量i节点的琐碎文件
3. 进 入单用户模式、急救模式进行修复
4.用户设置磁盘配额—系统管理中必做的



2.11.1、排除故障的原则
?当发生问题时,系统只会显示当前的症状,而不会提示问题出在哪里


?所以只能尽量收集证据,来定义系统到底发生了什么问题


?除了收集资料外,还要定义好系统里有哪些功能可以正常运行


?相问资料收集完成后,我们才能假设可能发生问题的原因是什么


?可以查看日志文件来证明是不是某个系统发生了问题


?如果要修改配置文件,那么修改前最好先备份


2.11.2、X界面故障时,排除故障的流程
?当X界面故障时,千万不能在runlevel5下排除故障


?要在runlevel3的环境中排除故障


#vi /etc/inittab #修改id:5:initdefault为id:3:initdefault。


?执行system-config-display命令,看看能不能显示图形界面的显示器设置工具


?如果不能显示,表示问题可以出现在显卡,那我们可以:


#X -probeonly #检测显卡


依据/etc/X11/xorg.conf的设置测试能否启动X服务器,检测结果记录在/var/log/Xorg.0.log


?如果显卡没有问题的话,则检查/home和/tmp和/var目录是不是满的


?如果以上都不是,可以查看xfs服务有没有启动


#service xfs status #查看xfs服务的状态



2.11.3、网络故障时,排除故障的流程
?首先确认是不是名称解析出了问题


#dig hostname


?是不是IP或者网卡的问题


#ifconfig #查看网卡的设置和网卡的IP地址


?若网卡正常,还有正确获取IP地址,则可能是Default gateway(网关)不正确


#route –n #列出系统里所有的路由记录


?如果以上设置都正确,则看看内核里是否载入了网卡驱动


#cat /etc/modprobe.conf #查看是否载入网卡驱动


在这个文档中,可以确定是否载入了正确的网卡驱动,并确认网卡有没有对应到eth开头的别名


?如果以上都不是,则重新启动网卡,看看有没有错误提示


#ifdown eth0 #停用网卡


#ifup eth0 #启动网卡


在正常情况下,无论是停用或是启动,系统都不会提示任何信息


2.11.4、开机故障时,排除故障的流程
?首先查看是不是开机管理程序出了问题


?在RHEL4中,会使用GRUB当作默认的开机管理程序


?接下来确认有没有正确的载入内核


?开机时发生panic,则表示根目录没有挂载成功


?检查/sbin/init设置有没有错误


?检查/etc/inittab设置有没有错误


?并且检查根目录有没有损坏


?如果/etc/rc.d/rc.sysinit执行不成功,则有可能是


?/bin/bash文件损坏


?/etc/fstab设定有误


?都不是以上问题的话,则检查/etc/rc.d/rc文件


?检查/etc/rc.d/rcn(1-6).d有没有问题


2.11.5、文件系统故障时,排除故障的流程
?文件系统故障,通常是因为电脑宕机或不正常关机


?当文件系统故障时,先卸载文件系统


?#fsck –y 来测试指定的文件系统


?当文件系统修复后,再挂载文件系统


#fsck 可以用来测试并修复Linux的文件系统


修复文件系统(全程文字记录)


[root@CentOS ~]# umount /home #卸载文件系统


[root@CentOS ~]# ls /home #查看目录是不是空的,确定是否被卸载


[root@CentOS ~]# fsck -y /dev/sda8 #检查并修复文件系统对应的文件


fsck 1.39 (29-May-2006)


e2fsck 1.39 (29-May-2006)


/home: clean, 31/130560 files, 32156/522080 blocks


[root@CentOS ~]# mount /dev/sda2 /home #挂载修复完成的文件系统


[root@CentOS ~]# ls /home #查看是否修复成功


apache lost+found soft tmail tmail_v4.5.1_release.tar www

2.11.6、Run-levels故障时,如何修复
?当Run-level发生问题时,必须进入Single user mode(单用户模式)来修复,单用户模式共分以下三种

?Runlevel 1,进入GRUB菜单后,按下a键,在最后输入空格和1


?执行init后 >> /etc/rc.sysinit(初始化文系统) >> /etc/rc1.d/*


?Runlevel S,当出现Welcome to Red Hat时,挡下I键,然后一个一个的问我们要不要启用某些服务


?执行init后 >> /etc/rc.sysinit(初始化文件系统)


?Runlevel emergency,通常/etc/fstab设定错误时,会自动进入


?执行init后 >> /etc/rc.sysinit的重要程序,不会全部执行,即sulogin模式


我们可以模拟一下错误,在/etc/fstab文件里随便填写一个不存在的分区和挂载点,系统启动时会提示错误,并让我们输入root密码,进入sulogin模式,注意在sulogin模式下,所有命令都必须使用绝对路径,因为它没有环境变量,在这里就不做示范了。


2.11.7、什么是Rescue Mode救援模式
?当一个目录所在的文件系统损坏,或者是开机管理程序被破坏的时候,会导致不能通过硬盘开机


?所以我们只能用光盘开机


?使用RHEL4或RHEL5中的第一张光盘


?也可以用第一张光盘里images目录下的boot.iso刻一张光盘,作为启动盘


?也可以使用第一张光盘里images目录下的diskboot.img复制到U盘里面


?开机过程中,会把光盘或者U盘里开机必要的文件载入到内存,成为一个可以开机的操作系统,我们才能通过指令进入救援模式


?救援模式会尝试找到根目录所在的文件系统,并把根目录挂载到/mnt/sysimages目录里


模拟开机管理程序被破坏时进入救援模式:


#dd if=/dev/zero of=/dev/sda bs=446 count=1


意思是:把/dev/zero复制到/dev/sda文件里去,也就是把/dev/sda的前446b改成0来模拟开机管理程序被破坏。


现在从BIOS里设置用光盘或者U盘来开机,保存并退出。


当光盘开机到boot的时候,输入:


Boot:linux rescue #进入救援模式


#grub-install /dev/sda #修复开机管理程序


会提示错误:/sbin/grub:Not found,这是因为所有的文件系统都被挂载到/mnt/sysimages了


#chroot /mnt/sysimage/ #将根目录设置为/mnt/sysimage/


#grub-install /dev/sda #修复开机管理程序


#exit #第一个exit表示退出chroot


#exit #退出救援系统,然后就可以正常使用硬盘开机了


模拟根目录所在的文件系统损坏的时候如何修复:


根目录所在的文件系统损坏,不一定是指文件系统真的坏掉了,有可能是系统找不到根目录,所以会认为根目录所在的文件系统损坏,我们可以:


#vi /boot/grub/grub.conf


把kernel这一行的/ rhgb quiet删掉,重启时系统就提示找不到根目录。


开机时会提示错误信息:Kernel panic – not syncing:Attempted to kill init!可以在这个错误信息上面找找看有没有相关的错误提示,解决方法:


进入GRUB菜单后,按下a键,在最后输入删掉的信息,或者要设定的信息,在LABLE=后面输入/,表示要把LABLE值等于/的目录当成是根目录并挂载,这样就可以启动了。



linux启动过程及troubleshooting
Linux 系统启动过程大致按照如下步骤进行(这是一个简述):
第一阶段: BIOS 启动引导阶段;
在该过程中实现硬件的初始化以及查找启动介质;
从 MBR 中装载启动引导管理器( GRUB )并运行该启动引导管理
第二阶段: GRUB 启动引导阶段;
装载 stage1
装载 stage1.5
装载 stage2
读取 /boot/grub.conf 文件并显示启动菜单;
装载所选的 kernel 和 initrd 文件到内存中
第三阶段:内核阶段:
运行内核启动参数;
解压 initrd 文件并挂载 initd 文件系统,装载必须的驱动;
挂载根文件系统
第四阶段: Sys V init 初始化阶段:
启动 /sbin/init 程序;
运行 rc.sysinit 脚本,设置系统环境,启动 swap 分区,检查和挂载文件系统;
读取 /etc/inittab 文件,运行在 /et/rc.d/rc<#>.d 中定义的不同运行级别的服务初始化脚本;
打开字符终端 1-6 号控制台 / 打开图形显示管理的 7 号控制台

一、启动
(一)、mbr损坏或丢失. 进入RESCUE模式,grub-install
(二)、启动时所需的配置文件不正确
(要对文件的内容与格式熟悉)看看”大坏羊”的贴子
/boot/grub/grub.conf
/etc/inittab
/etc/fstab
(三)、启动系统时,所用的文件或目录丢失
如:mount ,bash,inittab,init ,/initrd ,/proc
1.mount,bash被替换或删除。 进入RESCUE模式,网络重新安装mount,bash包
2./sbin/init 丢失或替换。此文件在SysVinit*包内,此包还包括如下文件:/sbin
halt,poweroff,init,runlevel,reboot,shutdown等
init丢失时,(a)、直接启动时会进入bash2.05#只读shell
(b)、用单用户进入如下提示:
s :s no such file or directory
kernel panic : Attempted to kill init
修复如mount的修复
3.initscripts*包
启动的相关文件:/etc/inittab,/etc/rc.d,/etc/rc.d/rc,rc.sysinit,
/etc/sysconfig/* ,/etc/sysclt.conf, /sbin/ifup,/sbin/ifdown
/sbin/service
# inittab丢失: INIT:no inittab file found.
Enter runlevel:
#/etc/rc.d ,/etc/rc.d/rc 丢失:
用reboot,shutdown,init 6 命令重启时有如下明显提示:
INIT : can not execute “/etc/rc.d/rc”
INIT: no more processes left in this runlevel
按电源重启系统,可以到达login界面:
Kernel 2.4.21-15.EL on an i686
( none ) login :
可以登录,但会提示:
modprobe : modprobe : Can’t locate module Char-major-10-224
login(PAM-unix)[22] Session ipened for user root by (uid=0)
-bash: Command not found
此时没有网络,不能修复,主要提示在重启的时候,进入rescue模式,
修复后可正常使用,/etc/rc.d丢失,重新安装initscripts*包,登录时
仍会有提示,但常使用。
#/etc/rc/rc.sysinit 为系统启动时所用的第一个脚本,若丢失
系统启动时:
INIT : can’t execute /etc/rc.d/tc.sysinit not found
及其它提示
#/sbin/ifup,/sbin/ifdown 如果丢失,网络将无法启动。
#/sbin/service 若丢失或被替换,任何服务无法启动。
4. /initrd 目录丢失,启动时有如下提示:
pivotroot: pivotroot (/sysroot,/sysroot/initrd) failed: 2
umount /initrd/proc failed : 2
Freeing unused kernel memory : 164k freed
Kernel panic : no init found,Try passing init = option to kernel
进入rescue模式,建立/initrd 目录即可

二、本地系统
(一)、用户登录问题
1、root用户不可登录:
a.密码失效 b.是否过期 c. 被锁 d./etc/securitty 定义了
root可安全登录的终端 e.没用root用户,uid=0 用户不存在
2、user不可登录
同上a. b . c.
d .存在/etc/nologin空文件
e.passwd文件中没有shell或被替换
f. /etc/bash_profile
g. .bash_profile 中有exit,logout
3、root user都不可登录, /bin/bash被替换或删除
4、检查pam, /etc/security/access.conf , /etc/pam.d/system-auth,
用authconfig清除设置
(二)、X问题
1、首先RedHat-config-xfree86
2、X-configure
3、查看/home,/tmp分区是否已满,或作了quota(inode或物理空间)
4、看一下,X字体服务(xfs)是否运行
(三)、quota(熟悉quota的配置过程应该差不多吧)
1、修改fstab, mount -o remount /picc
2、quotacheck -cug /picc
3、quotaon /picc
4、edquota 用户或组
(四)、lvm ,raid
如果在troubleshooting 中出现,我想应该就是lvm不能挂载,
e2fsadm 扩展分区, raid 分区不能挂载,或有一个阵列设备坏掉,
要求恢复。不知道快照和在阵列上做lvm会不会考,这方面我从没见过
模拟题。知道的补充一下啊!会做lvm,raid 的试验不知道是不是够了!
(五)、autofs 结合nis客户配置
三、本地网络
会用netconfig,authconfig配置nis客户,resolv.conf设置
四、网络服务
1、httpd
a. 发布一个网站,为Web做安全访问(.htaccess)
b.Squid 的实现,选择性过滤站点
2、sendmail
a.配置接收邮件,/etc/mail/sendmail.mc
dnl DAEMON_OPTONS (‘Port=smtp,Addr=127.0.0.1,Name=MTA’)
m4 sendmail.mc > sendmail.cf
b.添加别名 在/etc/aliases加入别名,newaliases
c. 转发:在sendmail.mc 加入
FEATURE (promiscuous_relay) dnl
不充许转发:默认
选择转发: /etc/mail/access
d.pop3服务器,imap服务器
3、nfs 发布与挂载
4、samba
5、vsftp
6、 syslog接收发送远程消息,
接收:/etc/sysconfig/syslog
SYSLOGD_OPTIONS=” -r -m 0″
发送: /etc/syslog.conf
user.* @stationX
7、tcp_wrapper,xinetd
hosts.allow,hosts.deny
/etc/xinet.conf /etc/xinet.d/
8、gpg,ssh结合
9、NIS
10、pam
11、拒绝ssh登录(用户)
a./etc/ssh/sshd_config
denyusers user
b.pam 中/etc/security/access.conf
/etc/pam.d/sshd

赞(0) 打赏
转载请注明出处:服务器评测 » RHEL5故障一般排错
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏