您的位置:首页 > 职场人生

RHCE 排错强化训练!

2010-05-31 15:42 507 查看
系统安装: 分两种情况
(1)、没有lvm,手动设置分区 ,以这个为主。下图是这种方式的/etc/fstab文件



(2)、有lvm,系统默认方式安装,下图是默认方式安装的/etc/fstab文件,不同情况在具体问题中有说明



几种故障,包括但不止于:
一、grub.conf文件丢失
二、grub目录丢失
三、boot目录丢失
四、/etc/fstab 文件丢失
五、/etc/inittab 文件丢失
六、mount 文件被修改
七、综合实验
一、grub.conf文件丢失
启动时提示



(1) 没有LVM情况



(2) 有 LVM的情况 注意上下两种情况区别在 root= “ ” 这一句。具体内容参照/etc/fstab文件中的内容



重启利用光盘进入rescue模式











二,grub目录丢失
正常grub 目录下的文件



重启进入系统提示:


在提示符中按照grub文件丢失的处理方式进入系统。提示:


重启进入rescue模式,并chroot 进入真实环境模式



进入/boot/grub目录,发现目录内容是空的,需要在chroot环境下重新安装grub: grub-install /dev/sda





参照grub.conf文件丢失的方式,重新写入grub.conf文件
(1) 没有LVM情况



(2) 有 LVM的情况 注意上下两种情况区别在 root= “ ” 这一句。具体内容参照/etc/fstab文件中的内容


重启正常系统

三、boot目录丢失
重新进入系统,提示



发现找不到vmlinuz 等文件
进入rescue模式,发现/boot下面没有任何文件



需要重新安装kernel 包,然后安装grub-install ,最后编辑grub.conf文件
这里通过启用网络,从ftp服务器上下载rpm包,然后安装到系统中,具体步骤:
(1 ) chroot /mnt/sysimage
(2 ) service network restart
( 3 ) lftp 192.168.0.254 ; 通过ftp登录系统,
( 4 )



(5 ) 退出chroot模式



(6)安装rpm包
rpm –ivh --force --root /mnt/sysimage /mnt/sysimage/kernel-2.6.18-53.el5.i686.rpm



(7) 输入exit 重启系统,正常进入系统

四、/etc/fstab 文件丢失
删除/etc/fstab文件,关机再开机,如果直接重启,会发现没有/etc/fstab文件也可以进入系统
(1) 没有lvm情况,开机提示:注意两个红色的FAILED



mkdir /test



#vi /test/etc/fstab
/dev/sda1 /boot ext3 defaults 0 0
/dev/sda2 / ext3 defaults 0 0
/dev/sda3 /home ext3 defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
/dev/sda5 swap swap defaults 0 0

(2) 有lvm的情况
进入系统后,lvm vgchange -ay



重新编辑etc/fstab 文件,本实验中,该文件位于/test/etc/fstab



重启正常进入系统

五、/etc/inittab 文件丢失
重启系统提示:



进入rescue模式
重新安装initscripts-8.45.17.EL-1.i386.rpm 包 参照修复/boot/grub目录方式从ftp服务器上下载rpm包,然后安装。

六、mount 文件被修改
重启提示:



进入rescue模式
rpm -Vf --root /mnt/sysimage /bin/mount 发现有问题

rpm -qf --root /mnt/sysimage /bin/mount 查找该文件属于哪个RPM安装包



七、综合: BT实验,所有上面的故障一起出现


###############################################
# 作者:kkmangnn(kkmangnn@gmail.cn) # #
# # 欢迎转载,但请保留此段 # #
###############################################

linux系统故障排错

一、系统故障分析方法和目标

判断问题的性质

重演出错过程

查找进一步信息

从简单的的方法入手

在修改的时候备份配置文件

修复Linux系统不同阶段的故障

将系统引导到不同的运行级别

使用救援模式

二、系统故障排错示例

如下通过4个常见的示例说明系统故障排错的过程,分别是:

系统密码不正确

mbr故障

/etc/fstab文件错误

/etc/inittab文件错误

三、系统密码不正确(忘记了或者说想窃取修改)

忘记登陆系统的root密码,忘记grub引导管理器的密码

这里首先说明一个grup引导管理器密码,通过设置该密码可以防止人编辑启动菜单画面

的选项,若要编辑必须输入密码才可以编辑。设置grub密码的步骤如下:

[root@51cto ~]# vim /boot/grub/grub.conf

//编辑这个文件

[root@51cto ~]# cat /boot/grub/grub.conf

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:

You have a /boot partition.

This means that

#

all kernel and initrd paths are relative to /boot/, eg.

#

root (hd0,0)

#

kernel /vmlinuz-version ro root=/dev/sda2

#

initrd /initrd-version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

#hiddenmenu

password=123

//在Linux系统标题上面添加这行

title Red Hat Enterprise Linux Server (2.6.18-128.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet

initrd /initrd-2.6.18-128.el5.img

保存文件退出…...

然后重启系统,可以发现提示信息说:直接回车可以启动系统,如果要设置菜单选项请

输入“P”。要知道,如果系统没设置grub密码的话是可以直接编辑菜单选项的:



输入“P”,然后输入先前设置的密码123



可以发现密码验证过后,提示信息为输入“e”可以编辑菜单选项了



输入“e”:



这样就可以设置Linux系统启动级别了,所以说,没有设置grub密码的话,就算不知道root

帐号密码,通过编辑菜单选项就可以通过level 1 启动系统设置密码了。

当然,在设置grub密码的时候一般是使用MD5加密的,通过如下方法设置:

[root@51cto ~]# grub-md5-crypt

Password:

//输入123

Retype password:

//输入123

$1$q5Ppn/$MZr67rBdz6kIhk0lYDvFh0

//这一行就是123的MD5加密密码

然后编辑/boot/grub/grub.conf文件:

[root@51cto ~]# vim /boot/grub/grub.conf

[root@51cto ~]# cat /boot/grub/grub.conf

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:

You have a /boot partition.

This means that

#

all kernel and initrd paths are relative to /boot/, eg.

#

root (hd0,0)

#

kernel /vmlinuz-version ro root=/dev/sda2

#

initrd /initrd-version.img

#boot=/dev/sda

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

#hiddenmenu

password --md5 $1$q5Ppn/$MZr67rBdz6kIhk0lYDvFh0

//修改成MD5加密的

title Red Hat Enterprise Linux Server (2.6.18-128.el5)

root (hd0,0)

kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ rhgb quiet

initrd /initrd-2.6.18-128.el5.img

当重启系统后想编辑菜单选项就输入加密密码123

回到正题:忘记登陆系统的root密码,忘记grub引导管理器的密码

开机--->第一张光盘启动(使用虚拟机测试就按ESC键)--->linux rescue(进入救援模式)

--->一路回车--->chroot /mnt/sysimage--->vi /boot/grub/grub.conf编辑文件,

删除password行(去除或重设密码)--->reboot--->进入单用户模式

(开机-进入菜单界面-按e-选择第二项-e-在末尾输入空格1或空格single-回车)

--->passwd(设置系统用户root的密码)--->reboot

具体的步骤很简单就不显示了,去除或重设了grub密码,使用root密码就可以登陆系统了

四、mbr故障

[root@51cto ~]# dd if=/dev/zero of=/dev/sda bs=46 count=1

//模拟mbr故障

1+0 records in

1+0 records out

46 bytes (46 B) copied, 0.000197012 seconds, 233 kB/s

[root@51cto ~]# reboot

//重启系统查看

Broadcast message from root (pts/0) (Sun Oct 10 08:05:01 2010):

The system is going down for reboot NOW!

结果发现启动不了系统,于是进入救援模式:

通过如下两个命令就可以解决mbr故障了:

chroot /mnt/sysimage

grub-install /dev/sda

然后重启系统



登陆正常了,显示如下:



五、/etc/fstab文件错误

[root@51cto ~]# cat /etc/fstab //查看该文件

LABEL=/ / ext3 defaults 1 1

LABEL=/home /home ext3 defaults 1 2

LABEL=/boot /boot ext3 defaults 1 2

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

LABEL=SWAP-sda5 swap swap defaults 0 0

/dev/sdb1 /51cto ext3 ro,noexec 0 0

如果把该文件删掉重启系统:

[root@51cto ~]# rm /etc/fstab

rm:是否删除 一般文件 “/etc/fstab”? y

[root@51cto ~]# ll /etc/fstab

ls: /etc/fstab: 没有那个文件或目录

[root@51cto ~]# reboot

Broadcast message from root (pts/0) (Sun Oct 10 08:42:43 2010):

The system is going down for reboot NOW!



由于该文件的丢失,所以系统硬盘无法使用了,只有重新把/etc/fstab恢复,必须手写进去



然后重启系统查看:



六、/etc/inittab文件错误

[root@51cto ~]# cat /etc/inittab

#

# inittab

This file describes how the INIT process should set up

#

the system in a certain run-level.

#

# Author:

Miquel van Smoorenburg, <miquels@drinkel.nl.mugnet.org>

#

Modified for RHS Linux by Marc Ewing and Donnie Barnes

#

# Default runlevel. The runlevels used by RHS are:

#

0 - halt (Do NOT set initdefault to this)

#

1 - Single user mode

#

2 - Multiuser, without NFS (The same as 3, if you do not have networking)

#

3 - Full multiuser mode

#

4 - unused

#

5 - X11

#

6 - reboot (Do NOT set initdefault to this)

#

id:3:initdefault:

# System initialization.

si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0

l1:1:wait:/etc/rc.d/rc 1

l2:2:wait:/etc/rc.d/rc 2

l3:3:wait:/etc/rc.d/rc 3

l4:4:wait:/etc/rc.d/rc 4

l5:5:wait:/etc/rc.d/rc 5

l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE

ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes

# of power left.

Schedule a shutdown for 2 minutes from now.

# This does, of course, assume you have powerd installed and your

# UPS connected and working correctly.

pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.

pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

# Run gettys in standard runlevels

1:2345:respawn:/sbin/mingetty tty1

2:2345:respawn:/sbin/mingetty tty2

3:2345:respawn:/sbin/mingetty tty3

4:2345:respawn:/sbin/mingetty tty4

5:2345:respawn:/sbin/mingetty tty5

6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5

x:5:respawn:/etc/X11/prefdm -nodaemon

然后把文件删除,重启系统:

[root@51cto ~]# rm /etc/inittab

rm:是否删除 一般文件 “/etc/inittab”? y

[root@51cto ~]# reboot



结果显示不存在系统运行的进程,就是因为/etc/inittab的丢失造成的,当然修复的话不可能

手写进去了,那么多内容啊!

这时候进入救援模式,安装initscripts软件包,自动创建/etc/inittab文件

当然要通过mount /dev/dhc

/media/cdrom/挂载光驱,然后安装rpm包







登陆了系统,可以查看到该文件了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 休闲 RHCE