linux启动失败故障分析修复

前言

  我们在使用linux服务器工作中难免会遇到某一天服务器故障无法启动的情况。我们遇到这种问题要知道如何去找到无法启动的原因,从而解决问题。本文将列出最常见的问题linux启动问题。

问题分析

硬件问题:

  硬件无非就是由主板、cpu、内存、硬盘、电源以及其他板载设备构成。
常见排查问题扥方法可分为:

①从主板排查: 服务器主板上有自带检测卡 ,无法正常开机会有显示错误代码。
②内存:一般双通道、四通道。服务器大部分为双路 CPU 内存分A B 类插槽 例如总共24个内存插槽 A1-A12为 一组 B2-B12。 A1插一个 另一个要插在B2上。或者就是内存松动,没有插好,擦拭内存条金手指,重新插入
③硬盘: 硬盘一般都插在阵列卡上,如果没有识别到硬盘,就要到阵列卡里进行设置,具体操作可以百度阵列卡的型号
④cpu: 这个一般不会坏,这个是服务器上最稳定的一个硬件,可以直接忽略。
⑤电源: 启动没有反应,散热风扇不会动,usb没有输出供电,这个没法修,只有更换。

系统问题:

①引导分区出问题:MBR分区损坏或者丢失
②启动所依赖的的grup损坏
③文件系统损坏,或者其他分区损坏
④忘记登陆密码
⑤应为文件错误导致无法启动

在解决问题之前,我们先了解下linux的启动过程,有助于判断我们进行到哪一步,或是在哪一步出了问题。
linux的启动过程大概分为4步骤
第一步
bios硬件自检 (耗时最长)
硬件排查,大概一两分钟时间就可以结束,结束标志:看到group界面

第二步
启动引导管理器 :cetos6 为GRUB centos7为GRUB2
系统启动引导包含的文件 ,开机后选择哪个内核进入

第三步
内核与镜像文件系统加载
①确定启动分区 (大部分是第一个分区)
②加载内核文件(获得硬件的支持)调度算法 cpu 内存管理
③镜像文件系统(获得设备驱动支持,识别磁盘,文件系统配置等)
第四步
系统初始化以及文件的加载
①第一个进程
centos6 为 init (启动速度慢,只能串行启动等)
centos7 为 systemd
②系统初始化 (主机名、网络支持、时钟支持、逻辑券支持)
centos6 sysinit的脚本完成初始化
centos7 systemd加载服务单元
③进入运行级别,例如windos的F8安全模式
centos6有这个级别,
centos7或8没有运行级别,直接定义模式 mod 要么图形模式,要么字符模式
④启动系统网卡、加载nfs、启动ssh终端、启动httpd等。

二.解决方案:

一.系统的救援模式

1.进入救急模式,在biso中选择boot项,将光盘或者u盘设置为第一启动项,前提是u盘或者光盘有相同版本的系统。我这里以光盘为例。选择后重启即可。
在这里插入图片描述
2. 进入救援模式
这里注意下,进入的救援模式的系统内核是在光驱或者光盘上,并不是进入了我们损坏的系统,通过光驱的系统挂载损坏的硬盘,从而进行文件操作。(类似于windos的pe盘)。
cenros6选择Rescue installed ysytem 进入救援模式
centos7选择Troubleshooting 进入救援模式

在这里插入图片描述
在这里插入图片描述
3. 选择语言English,这里基本就是一只下一步就可以了,其中有一项Setup Networking是否开启网络,这里注意选择no不开启就可以了。
在这里插入图片描述

  1. 进入应急的shell, chroot /mnt/sysyimage , 进入我们错误系统的硬盘下,就可以进行文件操作。如修改配置文件之类的。
    在这里插入图片描述
  2. 修改完毕之后exit ,进入bios改回硬盘启动模式。
二.常遇到系统启动的问题

1. MBR损坏修复
在这里插入图片描述
当引导扇区被破坏后就无法启动
①病毒进行破坏。
②硬盘损坏
③当装双系统时候。
模拟破坏:使用对拷 dd命令 把前446字节擦掉,指令如下
dd if=/sev/zero of=/sev/sda bs=1 count=446
擦掉后查看
hexdump -C -n 512 /dev/sda
在这里插入图片描述
解决方法:
cenros7:
grub2 -install /dev/sda 把linux系统程序写到根boot loader 引导下即可恢复
centos6:
grub -install /dev/sda 把linux系统程序写到根boot loader 引导下即可恢复

2.其他分区损坏,或者文件系统损坏:

解决方法:

Fsck -y /dev/sda2

Fsck -y /dev/sda3

Fsck -y /dev/sda4

3.忘记root密码:
解决方法:

chroot /mnt/sysimage/

echo "000000" | passwd --stdin root 或 passwd root

exit

reboot

4.因为文件错误导致系统无法启动
解决方法:
将原有文件考入相同路径,给予权限即可

======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,如果对你有帮助,请顺手点个赞吧 (σ゚∀゚)σ…:*☆

猜你喜欢

转载自blog.csdn.net/qq_26129413/article/details/112131931