系统安装: 分两种情况
1)、没有lvm,手动设置分区 ,以这个为主。下图是这种方式的/etc/fstab文件
RHCE 排错强化训练!_休闲
 
2)、有lvm,系统默认方式安装,下图是默认方式安装的/etc/fstab文件,不同情况在具体问题中有说明
RHCE 排错强化训练!_休闲_02
几种故障,包括但不止于:
一、grub.conf文件丢失
二、grub目录丢失
三、boot目录丢失
四、/etc/fstab 文件丢失
五、/etc/inittab 文件丢失
六、mount 文件被修改
七、综合实验
一、grub.conf文件丢失
启动时提示
RHCE 排错强化训练!_休闲_03
1 没有LVM情况
RHCE 排错强化训练!_排错训练_04
2  LVM的情况 注意上下两种情况区别在 root= “  ” 这一句。具体内容参照/etc/fstab文件中的内容
RHCE 排错强化训练!_休闲_05
重启利用光盘进入rescue模式
RHCE 排错强化训练!_排错训练_06
RHCE 排错强化训练!_排错训练_07
RHCE 排错强化训练!_职场_08
RHCE 排错强化训练!_休闲_09
RHCE 排错强化训练!_RHCE_10
     二,grub目录丢失
正常grub 目录下的文件
RHCE 排错强化训练!_职场_11
      
       重启进入系统提示:RHCE 排错强化训练!_休闲_12
 
在提示符中按照grub文件丢失的处理方式进入系统。提示:RHCE 排错强化训练!_职场_13
重启进入rescue模式,并chroot 进入真实环境模式
RHCE 排错强化训练!_RHCE_14
进入/boot/grub目录,发现目录内容是空的,需要在chroot环境下重新安装grub: grub-install /dev/sda
RHCE 排错强化训练!_职场_15
RHCE 排错强化训练!_职场_16
参照grub.conf文件丢失的方式,重新写入grub.conf文件
1 没有LVM情况
RHCE 排错强化训练!_休闲_17
2  LVM的情况 注意上下两种情况区别在 root= “  ” 这一句。具体内容参照/etc/fstab文件中的内容RHCE 排错强化训练!_职场_18
重启正常系统
三、boot目录丢失
重新进入系统,提示
 
RHCE 排错强化训练!_排错训练_19
发现找不到vmlinuz 等文件
进入rescue模式,发现/boot下面没有任何文件
RHCE 排错强化训练!_职场_20
需要重新安装kernel 包,然后安装grub-install ,最后编辑grub.conf文件
这里通过启用网络,从ftp服务器上下载rpm包,然后安装到系统中,具体步骤:
     chroot /mnt/sysp_w_picpath
        service network restart
        ( 3 )   lftp 192.168.0.254 ; 通过ftp登录系统,
        ( 4 )
RHCE 排错强化训练!_职场_21
 (5 ) 退出chroot模式
RHCE 排错强化训练!_排错训练_22
       6)安装rpm
rpm –ivh --force --root /mnt/sysp_w_picpath /mnt/sysp_w_picpath/kernel-2.6.18-53.el5.i686.rpm
RHCE 排错强化训练!_职场_23
(7) 输入exit 重启系统,正常进入系统
四、/etc/fstab 文件丢失
删除/etc/fstab文件,关机再开机,如果直接重启,会发现没有/etc/fstab文件也可以进入系统
(1)    没有lvm情况,开机提示:注意两个红色的FAILED
RHCE 排错强化训练!_排错训练_24
       mkdir /test
 
RHCE 排错强化训练!_RHCE_25
#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
RHCE 排错强化训练!_RHCE_26
重新编辑etc/fstab 文件,本实验中,该文件位于/test/etc/fstab
RHCE 排错强化训练!_职场_27
       重启正常进入系统
五、/etc/inittab 文件丢失
重启系统提示:
 
RHCE 排错强化训练!_职场_28
进入rescue模式
       重新安装initscripts-8.45.17.EL-1.i386.rpm  参照修复/boot/grub目录方式从ftp服务器上下载rpm包,然后安装。
 
六、mount 文件被修改
重启提示:
RHCE 排错强化训练!_职场_29
进入rescue模式
rpm -Vf --root /mnt/sysp_w_picpath /bin/mount  发现有问题
rpm -qf --root /mnt/sysp_w_picpath /bin/mount  
查找该文件属于哪个RPM安装包
RHCE 排错强化训练!_RHCE_30
七、综合: 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
splashp_w_picpath=(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密码的话是可以直接编辑菜单选项的:


RHCE 排错强化训练!_休闲_31 

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


RHCE 排错强化训练!_排错训练_32 

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


RHCE 排错强化训练!_RHCE_33 

输入“e”:


RHCE 排错强化训练!_RHCE_34 



这样就可以设置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
splashp_w_picpath=(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/sysp_w_picpath--->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/sysp_w_picpath
grub-install /dev/sda
然后重启系统

RHCE 排错强化训练!_排错训练_35 

登陆正常了,显示如下:

RHCE 排错强化训练!_职场_36 


五、/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!

RHCE 排错强化训练!_休闲_37 

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

RHCE 排错强化训练!_职场_38 

然后重启系统查看:

RHCE 排错强化训练!_排错训练_39 

六、/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

RHCE 排错强化训练!_RHCE_40 


结果显示不存在系统运行的进程,就是因为/etc/inittab的丢失造成的,当然修复的话不可能
手写进去了,那么多内容啊!
这时候进入救援模式,安装initscripts软件包,自动创建/etc/inittab文件
当然要通过mount /dev/dhc
/media/cdrom/挂载光驱,然后安装rpm包



RHCE 排错强化训练!_RHCE_41 


RHCE 排错强化训练!_RHCE_42RHCE 排错强化训练!_职场_43 

登陆了系统,可以查看到该文件了!