CentOS UEFI系统如何在Dell服务器BIOS模式下成功引导

一、前言

现象:业务软件无法访问,dell服务器报错No boot found 找不到启动项

原因:服务器用Legary(bios)模式才能在启动项中找到raid,但是centos操作系统是基于efi安装的所以在legary模式下进入内核会报错linuxefi error

下图为UEFI模式下F11的启动项,可以看到没有识别到Raid磁盘的启动项

二、调试过程

1、先检查硬件状态

开机如果黑屏不显示大概率是内存问题需要重新插拔内存条在试试。

如果能看到自检按F2进入BIOS看下Raid 状态是否正常,有时raid阵列丢失会导致机器找不到磁盘自然也就进不去系统。如果发现阵列卡识别到了并且阵列都是Ready那就说明硬盘没坏,阵列OK

如果发现阵列卡无法识别,换槽位重新插拔,如果发现阵列卡识别到了但raid阵列没了参考下列文章进行重新导入

Dell服务器因raid阵列丢失无法找到磁盘的处理方法_服务器做了raid但找不到硬盘-CSDN博客

2、检查系统是否还在

准备一个Centos系统启动盘(U盘或光盘)然后进入救援模式

选择Troubleshooting

选择Rescue a CentOS Linux system

(1)开启网络服务和SSH服务,并配置IP

使用nmtui工具去配置IP,然后去激活网卡

按ESC回到这里,然后选择Activate a connection 激活一个连接

在网口信息上回车即可,前面带*表示已经连接。

(2)配置和启用SSH

bash 复制代码
cp -p /etc/sshd/sshd_config.anaconda /etc/sshd/sshd_config   # 拷贝SSH配置文件

systemctl start sshd   #启动SSH服务

这样就可以用ssh远程连接救援模式了

lsblk先确认原来的磁盘中系统是否还在,如果能看到分区则标识系统没丢

通过chroot命令切换到老系统中进行操作 ,光盘救援模式的切换方法:

bash 复制代码
chroot /mnt/sysimage 

在本次事件中,lsblk 和 blkid 的结果中都仅看到了/boot分区无/boot/efi 并且/etc/fstab 中也无相应的挂载信息但是/boot/efi/EFI/centos/目录存在且下面还包含了相关文件如grub.cfg

这就很疑惑了,如果是UEFI安装为什么会没有相应的分区和挂载信息,如果是Legary安装的为什么会有/boot/efi/EFI/centos目录存在,但既然服务器现在只能使用Legary(bios)模式找到raid,那么只能让系统内核也支持Legary

操作方法:

确保现在要操作的环境是chroot后的

1、强制安装 Legacy GRUB

这句命令的意思是:无论我现在的环境是什么,我要指定安装传统的 BIOS/MBR 引导程序,这里的sda要写成你的老系统磁盘标识

bash 复制代码
grub2-install --target=i386-pc /dev/sda

2、重新生成配置文件

bash 复制代码
grub2-mkconfig -o /boot/grub2/grub.cfg

3、检查/boot/grub2/grub.cfg 文件,如果发现对应内核还是linuxefi 那么就手动替换一波

先拷贝原来的文件,然后直接将对应的字段进行替换

bash 复制代码
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

sed -i 's/linuxefi/linux16/g' /boot/grub2/grub.cfg
sed -i 's/initrdefi/initrd16/g' /boot/grub2/grub.cfg

4、成功执行后退出chroot然后重启机器试试

bash 复制代码
exit
reboot 

最终成功进入系统

三、后续

事发突然待同事阿伯茨到达现场已是21点多,最终熬到半夜1点,但看到业务软件跑起来让人兴奋不已,美美收拾便下班了。结果第二天早晨眼睛还没睁开就被消息炸醒说是系统又进不去了....、

毕竟是一个常年在机房但没用的机器,排查到是CMOS电池电量不足并且内存条氧化层也严重,这就导致了服务器改好的BIOS配置在下电后会被重置又变成了UEFI。而内存条接触不良有时会被系统识别为没有内存报错。解决方法就是卸下内存条擦拭金手指然后放回,因现场需验收演示故CMOS电池也无法立即更换,于是便通过留下了操作文档结束了此事

下图为无法识别内存的报错图(某些机器会直接黑屏,只能听到风扇声但不显示,如果显示器确认接好并且信号源正确的话,可能就是内存导致)

四、总结

本文介绍了强制将EFI安装的Centos7系统改为Legary启动的方法,对这块认识不深,如果大佬们有处理方法欢迎分享,致谢

相关推荐
RuiZN7 分钟前
Muduo---Channel类
运维·服务器·c++
一直在努力学习的菜鸟8 分钟前
阿里云2G2核的服务器可以做什么?
linux·运维
可涵不会debug21 分钟前
【LangChain系列】 零基础入门实战:从环境搭建到 LCEL 链式完整 Demo 详解
运维·服务器·langchain·vibe coding
tedcloud12333 分钟前
Orca 部署指南:开源 AI 推理服务的 Linux 部署实践
linux·运维·服务器·人工智能·开源·自动化·excel
公众号:fuwuqiBMC1 小时前
(转自“服务器BMC”)服务器BMC芯片——AST2800
运维·服务器
HiDev_1 小时前
【非标自动化】2、认识元器件(流量传感器)
运维·自动化
xlq223221 小时前
高并发服务器day8(含服务器完整架构)
运维·服务器·php
Shell运维手记2 小时前
交换机(二层交换机)完整工作原理
运维·网络·网络协议·macos·交换机
飞飞传输2 小时前
金融数字化转型新基建:替代FTP的国产传输软件筑牢数安全防线
大数据·运维·安全
码农学院2 小时前
GEO团队SOP、绩效考核与知识沉淀:技术团队管理体系化工程实践
运维·人工智能·windows