前言
我们在使用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不开启就可以了。
- 进入应急的shell, chroot /mnt/sysyimage , 进入我们错误系统的硬盘下,就可以进行文件操作。如修改配置文件之类的。
- 修改完毕之后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
- 1
- 2
- 3
- 4
- 5
- 6
3.忘记root密码:
解决方法:
chroot /mnt/sysimage/
echo "000000" | passwd --stdin root 或 passwd root
exit
reboot
- 1
- 2
- 3
- 4
- 5
- 6
- 7
4.因为文件错误导致系统无法启动
解决方法: