Linux系统分析和排查系统故障

一、MBR扇区故障。

故障原因:病毒、木马等造成的破坏 不正确的分区操作、磁盘读写误操作

故障现象:找不到硬盘,启动中断 无法加载操作系统,开机后黑屏

解决思路:应提前作好“异地”备份文件 以 CentOS 7安装光盘引导进入急救模式 从备份文件中恢复

模拟MBR扇区故障
关机添加新磁盘            //存放MBR备份数据
# fdisk /dev/sdb        //新磁盘分区
# mkfs -t xfs /dev/sdb1      //格式化新磁盘
# mount /dev/sdb1 /backup/    //挂载到目录
# dd if=/dev/sda of=/backup/sda.mbr bs=512 count=1    //备份mbr到其他目录
# dd if=/dev/zero of=/dev/sda bs=512 count=1        //模拟mbr文件故障

operating system not found...    

单用户模式:基于现有系统的系统文件,windows安全模式
急救模式:基于光盘镜像文件,windows 安全模式
使用光盘进入急救模式,
#mkdir /123
#mount /dev/sdb1 /123
#dd if=/123/sda.mbr of=/dev/sda
#reboot

二、GRUB引导故障。

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

故障现象:系统引导停滞,显示“grub>” 提示符

解决思路:尝试手动输入引导命令 进入急救模式,重写或者从备份中恢复 grub.conf 向 MBR 扇区中重建 grub 程序


模拟GRUB引导故障
# cd /boot/grub2/
# mv grub.cfg grub.cfg.back
# cd /boot/grub/        //centos 6为该命令
# mv grub.conf grub.conf.back    //centos 6为该命令

# reboot
重启后出现grub> 说明grub引导文件损坏
重启进入bios 调整光驱为第一启动项,进入第三行进行急救模式
#chroot /mnt/sysimage
#cd /boot/grub2
#cp grub.cfg.back grub.cfg
#grub2-install /dev/sda            //安装grub引导文件到sda中
#exit
#关机。调整bios为硬盘启动,成功启动系统

#cd /boot/grub                //centos 6为该命令
#cp grub.conf.back grub.conf        //centos 6为该命令
#grub-install /dev/sda            //CentOS 6为该命令

三、遗忘root用户密码。

故障原因:遗忘 root 用户的密码

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

解决思路:进入单用户模式,重设密码

重设centos 7root用户登录密码:
方法1:单用户模式:
开机读秒时选择第一行按"e"
在linux16这一行,将之前的"ro",改为"rw init=sysroot/bin/sh",然后按ctrl+x、
输入:chroot /sysroot
输入:passwd root          //输入新密码
exit 
reboot        //重启系统即可输入新密码登录
方法2:
通过光盘进入急救模式  
输入:chroot /mnt/sysimage
passwd root        //修改密码后重启即可
#exit
#reboot

四、修复文件系统。

故障原因:非正常关机、突然断电、设备读写失误等文件系统的超级块(super-block)信息被破坏

故障现象:无法向分区中读取或写入数据 启动后提示“Give root password for maintenance”

解决思路:根据提示输入 root 口令,进入修复状态 使用xfs_repair命令进行修复

修复文件系统:
模拟故障:
# fdisk /dev/sdb
#mkfs -t xfs /dev/sdb1
#vim /etc/fstab            //设置磁盘开机检测
/dev/sdb1               /opt                    xfs    defaults        0 1
# dd if=/dev/zero of=/dev/sdb1 bs=512 count=4    //在执行时确定该分区未挂载
#reboot

重启后由于sdb1磁盘超级块损坏,导致系统报错,无法启动,这是在当前命令行输入root用户密码进入shell
#xfs_repair /dev/sdb1            //centos 7 修复
#fsck -y -t ext4 /dev/sdb1        //修复损坏的超级块,CentOS 6执行该命令
#reboot                    //重启后恢复正常

五、磁盘资源耗尽故障。

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

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

解决思路:清理磁盘空间,删除无用、冗余的文件 转移或删除占用大量 i 节点的琐碎文件 进入急救模式进行修复 为用户设置磁盘配额

当一个文件系统磁盘空间耗尽后 将无法继续在该分区创建新的文件数据 比如当根分区/ 中的磁盘耗尽 可能导致部分程序乃至整个系统无法正常启动或运行不了 因为一些系统启动的临时性文件创建不了
当根分区资源耗尽无法正常启动系统时可以进入急救模式删除一些不关紧要的文件 从而减轻磁盘占用率

I节点故障
一个分区创建了太多的细小目录文件等将会占用分区的I节点从而系统将不能创建新的文件或目录
解决方式 ---删除没用的文件或目录或者加大磁盘空间等
创建文件目录时会提醒:
touch:无法触碰 "设备名称": 设备上没有空间
模拟i节点耗尽故障
#fdisk /dev/sdb            //分区,大小为3M左右,在系统中通过df查看为24M左右,可容纳的I节点为6013个左右
#mkdir /root/123        
#mkfs -t ext4 /dev/sdb1
#mount /dev/sdb1 /root/123
使用脚本创建若干空文件,用于占满分区,模拟i节点故障
#vim /root/123/a.sh        //新建shell脚本
以下为脚本内容:
#!/bin/bash
i=1
while [ $i -le 6013 ]
do
touch /root/123/file$i
let i++
done
保存退出
#sh /root/123/a.sh        //执行脚本文件
#mkdir /root/123/aaa        //再次创建文件时,提示报错空间不足
#df -hT                //查看挂载情况,发现sdb1磁盘占用100%
修复i节点耗尽故障:
#rm -rf /root/123/file*        //删除无关的文件,恢复磁盘i节点数量

六、检测磁盘坏道。

故障原因:磁盘设备中存在坏道(逻辑的或物理的)

故障现象:读取磁盘中的数据时,磁盘设备发出异常声响。 访问磁盘中的某个文件时,反复读取且出错,提示文件损坏 对于新建立的分区无法完成格式化 系统使用该磁盘时频繁死机

解决思路:检测硬盘中是否存在坏道 修复硬盘,或更换新的硬盘

检测磁盘坏道情况
#badblocks -sv /dev/sdb

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值