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启动的方法,对这块认识不深,如果大佬们有处理方法欢迎分享,致谢

相关推荐
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz2 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_2 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈2 天前
Unix 与 Linux 异同小叙
linux·服务器·unix
施努卡机器视觉2 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
程序猿阿伟2 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome