Linux故障排查

常见故障排除

步骤

1、确定故障的问题特征

2、重现故障

3、使用工具进一步收集信息,确定故障的根源

4、排除不可能的原因

5、定位故障

   从最简单的故障入手

  一次只尝试一种方式

        1、修改配置,备份原文件

        2、尽可能的借助工具    
可能会出现的故障

1、管理员密码忘记

解决方法:单用户模式修改密码

2、系统文件无法正常启动

a、grub损坏\(MBR损坏、grub配置文件丢失、第二段文件损坏\)

b、/etc/rc.d/init.d 系统初始化故障\(某文件系统无法正常挂载,驱动不兼容\)

c、服务故障

d、用户无法登陆\(bash程序故障\)

3、命令无法运行

4、编译过程无法继续(开发环境缺少基本组件)

MBR损坏

备份MBR dd if=/dev/sda of=/root/mbr.bak count=1 bs=512

  注意:备份的位置与原文件不能在同一分区

故意损坏MBR dd if=/dev/zero of=/dev/sda count=1 bs=512

修复

1、借助其他主机修复

2、使用紧急救援模式:使用grub的安装命令

a、boot.iso,需要网络中的一台服务器提供安装环境

b、使用系统安装光盘启动

在boot提示符下输入:linux rescue 类似于winPE -->mini Linux环境

在`linuix rescue`模式下 /\\(根\\)一般挂在载`/mnt/sysimage`下,`ro`方式挂载

如果需要修改/下文件,需要以读写方式挂载

此时没有没有设备文件,无法识别设备,原因没有加载/etc/rc.sysinit脚本文件

手动创建设备文件 mknod

    光盘启动-->boot:linux rescue --> 选择语言、键盘-->是否开启网络接口-->选择网卡并进行配置
-->rescue environment尝试搜索及挂载linux 根文件系统,将其挂在载mini linux的某个目录下,此时需要
    -->提示挂载成功以及挂载的位置-->进入挂载的Linux(chroot /mnt/sysimage下)-->进入grub的命令行(grub)

-->指定根的位置(find 查找设备,含有kernel文件与initrd文件,find (hd0,0-)
    -->root(hd0,0)/)-->setup (hd0,0)
-->grub安装成功-->quit退回命令行模式-->sync,reboot
grub配置文件丢失或者损坏

1、系统开机进入grub提示符界面

find 找到kernel所在分区

grub>find (hd0,0)

2、指定kernel

grub>kernel /kernel_file ro root=/dev/vol0/root rhgb quiet

如果无法确定根的位置,可省去ro后面的参数

3、指定initrd文件

grub>initrd /initrd_name

4、boot重启

5、系统启动后,手动创建grub.conf文件

default=0 #默认启动的系统
timeout=10#超时
title RHE 6.5
root \(hd0,0\)
kernel /vmlinuz-2.6.32-573.el6.x86\_64 ro root=/dev/vol0/root rhgb quiet
initrd /initrd-2.6.32-573.el6.x86\_64kdump.img
/boot/grub目录下其他文件丢失

从其他目录复制

比如 stage2

/usr/share/

系统初始化故障

kernel panic

在grub提示符下进入一级别emergency,不会加载rc.sysinit脚本

修改rc.sysinit文件内容,将相应的行注释

将默认级别设为0或者6

进入单用户级别,编辑inittab文件

将/etc/rc.d/下的某个目录误删

进入单用户模式,修复目录系统

某个服务故障导致启动中断

比如:senmail配置文件时间戳检查无法通过

1、进入单用户级别,关闭或者修复sendmail

2、根据开机提示,在开机过程中进入交互模式(按"I",连续敲击 RHE 5)

系统询问是否需要启动服务

POST-->BIOS(根据启动设备顺序依次查找其MBR中的bootloader)-->加载kernel(结合initrd文件,完成根文件系统的切换,运行/sbin/init进程)-->/etc/inittab-->/etc/init.d/rc.local(开机启动程序,Level 3或5) s99local
/etc/rc.local文件语法错误或者逻辑错误

进入单用户模式,修复文件

用户无法登陆

比如:误删/bin/bash

现象:无法关机

       开机无法进入`Level 1`,`shell`是`bash`程序的链接
修复

进入紧急救援模式,重新安装bash

无网络:挂载光盘,光盘内有bash的rpm包

    注意光盘的接口:`IDE/SATA`

有网络:下载bash的rpm包

1、rpm -ivh --replacepkgs --root /mnt/sysimage PATH/TO/BASH_RPM

2、以其他的shell执行chroot /mnt/sysimage

命令无法运行

一般需要导入环境变量PATH

export PATH=/usr/bin

重新指定PATH

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin

注意

1、如果不是更改的配置文件,另起终端重新登陆

2、修改了配置文件/etc/profile,使用完整路径执行命令,修改文件

版本管理工具

SVN

GIT

缺少编译组件

查看报错信息

results for ""

    No results matching ""