
手头这台超聚变2288H V5之前一直跑得好好的RAID10阵列有六块盘系统装在阵列上双口万兆连着业务网。结果一次机柜断电后重启服务器卡在POST界面屏幕上写着类似“No bootable device found”的提示进不了系统。看到这个提示的第一反应是阵列可能掉了但进RAID卡配置界面看了一圈虚拟磁盘状态正常六块盘都在线Virtual Drive状态是Optimal。那就不是盘的问题问题大概率出在启动项上。这类故障在2288H V5上其实挺典型尤其是折腾过UEFI、Legacy启动方式或者插拔过硬盘、改过RAID卡引导顺序之后很容易出现启动项丢失的情况。这篇文章就把这次完整的排查过程、UEFI和Legacy两种启动方式的差异、具体修复步骤都整理出来给用同型号或者同系列服务器的朋友一个排查参考。1. 故障现象与启动项丢失的底层逻辑1.1 启动项丢失看起来是什么样的先说现象。服务器上电后前面板电源灯正常亮起风扇转速从全速降回正常说明自检流程基本走完了。但到快要引导操作系统那个环节显示器会直接停在纯色背景或者黑屏状态可能出现下面几种情况屏幕提示 “Boot Device Not Found” 或 “No bootable device”提示 “No bootable device found. Please reboot the system properly...”在POST阶段能看到RAID卡自检信息但随后找不到任何可引导目标偶尔会出现直接进到BIOS Setup界面的情况不进系统。如果机器面板有液晶屏通常也会显示一串类似“Boot failed”的错误代码。关键是进RAID卡配置界面看底层存储是健康的——虚拟驱动器状态Optimal、物理盘全部Online这时候基本可以断定问题出在固件层级的引导入口和硬盘数据本身没有直接关系。1.2 为什么断电之后启动项会丢RAID服务器里启动项并不是一个简单的“开机选哪个盘”的问题。它至少包含两层信息一层是主板UEFI/BIOS里记录的Boot Option引导项另一层是系统引导器如GRUB和操作系统之间衔接的引导逻辑。断电后出现启动项丢失比较常见的原因有这么几个RAID卡Option ROM加载时序变化。部分RAID卡需要固件先加载Option ROM才能把虚拟磁盘作为可引导设备暴露给主板。如果服务器上次配置了某一种引导模式断电重启后加载时序有细微差异就可能导致主板枚举不到虚拟磁盘这个Boot Device。引导模式不是全局一致。2288H V5同时支持UEFI和Legacy两种模式。如果之前安装系统用的是UEFI模式后来BIOS被重置或者被人改成Legacy主板根本不会去找UEFI引导分区里的文件自然提示没有启动项。BIOS的Boot Option列表被清空。有些情况下服务器检测到硬件变化比如RAID卡固件升级过、硬盘线缆重新插拔过会触发BIOS重置默认值原来手动添加的启动项会从列表中消失。Secure Boot安全启动状态变化。系统装在UEFI模式下但Secure Boot被意外打开而系统引导程序和驱动没有正确签名也会造成能识别硬盘磁盘却无法引导的现象。注意RAID盘数据本身没有丢和“阵列崩溃、硬盘掉线”是完全不同的两个概念。启动项丢失不需要重建阵列也不需要重新做系统只要把引导入口修对就行。1.3 超聚变2288H V5的引导架构特点超聚变2288H V5其实就是FusionServer Pro 2288H V5的后续产品线硬件架构和华为的FusionServer系列一脉相承BIOS是Phoenix定制的海思/Intel平台固件。它的引导管理有几个比较特殊的地方开机按F11可以进入启动项选择界面这里能看到当前固件能枚举到的所有可引导设备。按Delete进BIOS Setup图形界面里可以调整引导模式和启动顺序。在BIOS的“Boot”菜单里UEFI模式下面会列出UEFI Boot OptionLegacy模式下显示的是Legacy Boot Device两者不互通。2288H V5的RAID卡一般是SR450C-M、SR430C等型号虚拟磁盘的引导支持依靠BIOS和RAID卡的交互如果RAID卡设置了“隐藏Option ROM”或者纯UEFI模式Legacy侧就看不到这个盘。正是因为板卡引导模式之间的隔离机制才导致了一次简单的断电重启也能让原来的启动项突然“人间蒸发”。2. 故障定位先确认问题到底出在哪一层2.1 从RAID卡状态查起遇到“No bootable device”这种报错不要慌也不要立刻盲改BIOS。先按照从存储层到固件层、再到系统引导层的顺序一步步排查最大程度避免误操作。第一步是确认RAID阵列的健康状态开机自检时看到RAID卡型号和固件信息刷屏的时候按CtrlR进入RAID配置界面在虚拟磁盘列表里看VD的状态选中对应的Virtual Drive按F2或者用菜单查看属性确认状态是否正常用CtrlP切换回物理磁盘视图检查所有物理盘是否都在Ready或者Online状态。我这次排查中VD状态是Optimal物理盘全部在线这一步就排除了阵列故障和数据丢失的可能。2.2 检查当前启动模式与系统安装模式是否匹配这一步是整个排查链路的核心。服务器同时支持UEFI和Legacy问题是系统当初到底是用哪种模式装上去的登录BIOS Setup界面找到“Boot”菜单查看“Boot Mode”或“Boot Type”选项。它的值无非两种状态UEFI系统需要依赖GPT分区表硬盘上会存在EFI System PartitionESP分区引导文件存放在FAT格式分区里的EFI目录下。Legacy系统通常使用MBR分区表主板直接读取硬盘第一个扇区的引导代码。确定安装模式有个土办法如果之前电脑上能正常启动就说明当前模式肯定是和安装模式匹配的。故障发生后我进BIOS时发现Boot Mode已经被重置成了Legacy而记忆里这台机器装系统时是UEFI模式果不其然这就是问题所在。这里提醒一下可以顺便看一眼RAID卡固件版本和配置界面里的“Boot Support”相关选项。部分RAID卡在UEFI模式下的驱动加载比较慢如果BIOS版本和RAID卡固件之间的兼容性不够好偶尔也会出现启动项丢失但这种情况占比不高。2.3 UEFI与Legacy模式下启动项丢失的差异诊断用一张表把两种模式下的故障表现和排查重点列清楚实际操作时会对号入座很多排查项UEFI模式丢失启动项Legacy模式丢失启动项BIOS中Boot Mode状态多数停在UEFI但Boot Option列表为空BIOS可能被重置为UEFI与实际引导不匹配固定列表里看到的设备可能看不到RAID卡的UEFI启动项能看到硬盘设备但无法引导引导文件所在位置EFI分区内EFI/BOOT/BOOTX64.EFI硬盘MBR前446个字节的引导代码是否与安全启动有关高度相关Secure Boot开启会影响非签名驱动无关最常见诱因BIOS重置/固件升级后Boot Option丢失BIOS被切成UEFI模式、RAID卡Option ROM未加载这个表的意义在于它能直接告诉我们下一步该干什么。如果BIOS里Boot Mode是Legacy但你非常确定系统是UEFI安装的那就不要犹豫直接切回UEFI如果当前本身就是UEFI但启动项列表里空空的那就需要手动添加一个指向EFI文件的Boot Option。3. UEFI/Legacy切换修复全过程实录3.1 进BIOS做模式切换的标准动作超聚辨2288H V5重启后按Delete进入BIOS Setup界面操作步骤很明确重启服务器看到超聚变Logo或者自检信息时连续按键盘上的Delete键进入BIOS图形界面后使用方向键和回车键导航找到 “Boot” 菜单选择 “Boot Mode” 或 “Boot Type”把选项改成与实际系统安装模式一致的模式我这里是UEFI按下F10保存退出或者选择“Save Exit”。保存退出后机器会自动重启。这时候别急着走观察屏幕如果能看到GRUB引导菜单或者操作系统的启动Logo说明模式切换已经生效如果还是报“No bootable device”继续看下一步。注意切换Boot Mode前最好把Secure Boot一起检查了。2288H V5的Secure Boot选项一般在“Security”菜单下面如果系统里装的Linux驱动没有签名Secure Boot处于开启状态会拦截加载表现也是启动失败。自己内部实验环境用的机器建议直接Disabled。3.2 UEFI模式下手动添加丢失的启动项有时候机器模式没问题但Boot Option列表里空无一物。这种情况下即便UEFI模式正确主板也不知道该去找哪个设备引导。此时可以在BIOS里手动添加引导项进入BIOS Setup到“Boot”菜单找到“Boot Option”列表如果里面显示“No bootable device”看下方是否有“Add Boot Option”或者类似的按钮选择输入一个名称比如“RAID10 Boot”选择文件系统此时需要定位到UEFI引导分区——它会显示为一个FAT类型的文件系统进入分区目录找到EFI\BOOT\BOOTX64.EFI文件并选中保存设置。不同BIOS版本菜单名称略有差异有的版本是“UEFI Boot Configuration”下有一个“Add New Boot Option”选项。在超聚变2288H V5的图形版BIOS里我试过直接用这种方式把UEFI引导项加回来比用Shell命令简单太多。不过也有不方便的时候有的BIOS版本虽然允许增删Boot Option但图形界面里找不到文件浏览入口只能用UEFI Shell来添加这部分在下面展开。3.3 用UEFI Shell修复启动项的命令行方案如果BIOS界面不支持图形化添加Boot Option那就用UEFI Shell。2288H V5的UEFI Shell可以内嵌在BIOS里也可以在启动项中选择“UEFI Shell”进入。进入后出来的是一个类似DOS的命令行Shell fs0: FS0:\ ls第一件事是找到EFI分区在哪块磁盘上。执行map -r重新映射所有设备然后输入map查看块设备映射Shell map -r Shell map输出里会看到类似FS0:、FS1:这样的设备别名也可能看到BLK0:、BLK1:等不属于文件系统的存储设备。UEFI Shell里能直接识别到文件系统的FAT分区会显示为FSNTFS等通常不会显示为FS。确定EFI分区后进入该分区验证引导文件FS0:\ ls EFI\BOOT\如果能看到BOOTX64.EFI说明系统引导文件完好。接下来使用bcfg命令把启动项写进NVRAMFS0:\ bcfg boot add 0 FS0:\EFI\BOOT\BOOTX64.EFI Windows Boot Manager这行的含义是把BOOTX64.EFI作为第0个启动项写入NVRAM显示名称为“Windows Boot Manager”。如果系统是Linux且使用GRUB引导一般是找EFI\ubuntu\shimx64.efi或者EFI\centos\grubx64.efi路径取决于装的是哪个发行版FS0:\ bcfg boot add 0 FS0:\EFI\ubuntu\shimx64.efi Ubuntu添加后执行bcfg boot dump查看NVRAM中现有的启动项列表确认无误后输入exit离开重启机器。3.4 两种修复方案怎么选给一个更直接的决策表场景推荐方案原因BIOS模式被切错直接改Boot Mode一行设置解决无需进入ShellUEFI模式下Boot Option列表为空BIOS支持图形化添加BIOS界面手动添加简单直观不容易误操作UEFI模式下Boot Option列表为空BIOS无图形化添加入口UEFI Shell bcfg命令行可控无需外部介质Secure Boot开启导致UEFI引导失败临时关闭Secure Boot验证快速定位是不是签名问题系统引导文件损坏进入系统修复模式重建GRUB/BCDShell与NVRAM操作无法解决文件损坏3.5 Legacy模式下没有启动项的特殊处理Legacy模式下的“启动项”和UEFI不太一样它没有NVRAM里那一串Boot Option而是靠BIOS直接枚举设备并按优先级逐个尝试引导。如果Legacy模式找不到RAID虚拟磁盘常见原因是RAID卡的Option ROM没有加载成功。操作上可以这样进RAID配置界面确认RAID卡上虚拟磁盘的“Bootable”属性被设置好在BIOS的Boot菜单下把“Legacy Boot Device Order”里的硬盘控制器排到第一位有些型号的RAID卡需要在RAID配置界面里设置“Boot Device”为对应的虚拟磁盘具体操作是选中VD后按F2选择“Set as Boot Device”。另一个重点Legacy模式下主板能不能从RAID卡引导取决于RAID卡固件里的“Option ROM”是否启用。如果RAID配置里有个选项叫“Option ROM Configuration”检查它没有被设置成“Disabled”。对于纯UEFI系统RAID卡Option ROM可能不需要但在Legacy模式下就一定要开着。4. 实操中反复踩过的坑与排查技巧4.1 系统装的是UEFI还是Legacy怎么确认如果不记得当初是UEFI还是Legacy装的系统在启动项丢失之前也没来得及记录有几个办法可以帮你判断看之前安装系统时分区表类型UEFI对应GPTLegacy通常是MBR找另一台机器把故障盘挂上去用diskpart的list disk或者Linux的gdisk -l /dev/sdX看分区表能看到EFI系统分区的基本就是UEFI安装2288H V5的BIOS里有一个“Boot Type”优先级的提示如果系统支持UEFI和Legacy两种方式可以优先选择UEFI试试因为新的Linux和Windows安装基本都是UEFI。如果不确定用“先切到UEFI看是否能进系统”的方法试探是最省事的——如果EFI引导文件还在秒进如果不在BIOS还是提示没启动项这时候再切回Legacy看能不能通过MBR引导启动。4.2 Secure Boot对UEFI启动项的影响到底有多大Secure Boot是UEFI规范里的一个安全机制它要求所有在操作系统启动前加载的驱动、引导程序都带合法签名。在实际机房运维时我发现Secure Boot造成的启动问题远比预想的多。Ubuntu、CentOS等系统安装时默认可能不启用Secure Boot兼容有些第三方内核模块比如网卡驱动、RAID工具签名不完整。BIOS里开启Secure Boot后即使Boot Option正确GRUB引导时也可能被拦掉。排查技巧在BIOS设置里找到“Secure Boot”选项先改成Disabled保存重启。如果这时候能进系统说明就是Secure Boot的锅至于要不要重新开启取决于单位的合规要求个人实验环境完全没必要开。注意Secure Boot状态变化后如果原来能在UEFI下正常启动而现在不行优先检查此选项优先级高于重做系统。4.3 断电后BIOS被重置的隐患这次故障中BIOS被重置是直接原因。很多时候机房意外断电后重新上电服务器固件会检测到“AC Power Loss”类事件并回退到默认配置而默认配置里Boot Mode往往不是用户之前手选的UEFI。对这类隐患最有效的防范措施是做完配置后进BIOS保存一份配置备份。超聚变2288H V5的BIOS里有“Save/Load BIOS Configuration”类选项可以把当前设置导出到U盘等外部介质。服务器数量多的时候这个习惯非常重要它能让你在批量故障时几分钟内恢复统一配置。如果不想每次断电都担心还可以在BIOS的Power Management里找到“After Power Loss”或“AC Power Recovery”设置把断电恢复后的行为改成“Always On”或“Last State”这样来电后服务器至少会自动上电不会停留在待机状态等人去手动开机。4.4 用ipmitool/BMC远程排查时的注意事项2288H V5自带BMC管理口支持远程控制台、虚拟媒体等功能。当机器没法进操作系统时通过BMC的远程KVM去操作BIOS反而是最舒服的方式。远程操作时要注意BMC的KVM会话里用Delete进BIOS可能会有键盘输入延迟按需要时多按几下别按多了触发别的操作远程挂载ISO镜像时确认虚拟光驱启动优先级在RAID虚拟磁盘之前否则系统会试图从虚拟光驱引导直接卡住用BMC的“强制重启”功能代替物理断电避免异常断电造成更多Boot Option丢失问题。我这次故障排查时就是用BMC远程KVM操作的全程不需要跑道机房省了很多时间。4.5 RAID控制器驱动和UEFI引导的直接关联这里说一个容易忽视的知识点服务器从RAID虚拟磁盘引导和从单块SATA盘引导的路径是不一样的。普通台式机直接由主板读取硬盘MBR/GPT引导但服务器主板需要通过RAID卡的驱动和Option ROM协作才能“看懂”虚拟磁盘。如果RAID卡固件太老可能不完全兼容某些版本的BIOS UEFI引导流程导致Boot Option列表里看不到虚拟磁盘。建议把RAID卡固件和BIOS都升级到超聚变官网提供的最新稳定版本升级后启动项丢失的概率会明显降低。升级固件前务必备份RAID配置虽然绝大多数固件升级不会动配置但机房操作备份永远是对的。5. 快速排查清单与必备命令把整个排查过程浓缩成一份可以直接照着操作的清单下次再遇到启动项丢失完全可以按这个顺序来开机按CtrlR进RAID配置界面确认VD状态为Optimal、物理盘在线重启按Delete进BIOS Setup记录当前“Boot Mode”UEFI还是Legacy根据系统安装时的模式把“Boot Mode”切换为一致的模式检查Secure Boot状态如果之前正常启动过、现在不正常优先尝试Disabled保存重启观察是否出GRUB菜单或系统Logo如果仍然没启动项回到BIOS看“Boot Option”列表尝试手动添加指向EFI\BOOT\BOOTX64.EFI的启动项BIOS不支持图形化添加的话用UEFI Shell执行bcfg boot add命令以上全部无效时才考虑挂载系统安装镜像进修复模式重建GRUB或Windows BCD引导。提示如果重启后屏幕出现类似“PXE boot”的提示说明BIOS已经把网卡启动作为最后兜底方案这时候代表前面所有本地设备都没被识别为可引导设备不要干等它回头检查BIOS启动设置。6. 这次故障复盘与后续预防措施这次故障最后就是通过把BIOS的Boot Mode切回UEFI解决的。退出BIOS后重启GRUB菜单正常出现系统完整起来数据没有任何损失整个处理过程大概十几分钟。但事情不能处理完就不管了回头看有几个可以优化的地方第一服务器的BIOS配置最好做备份。这次如果提前导出了BIOS配置发现启动失败后直接导入配置就能解决根本不用手敲这么多设置。第二建议给部署在机房的服务器建立硬件配置档案记录每台服务器的Boot Mode、RAID配置、硬盘序列号、BIOS版本这些基础信息。故障发生时有档案和没档案的排查效率可以差好几倍。第三对老旧固件进行主动升级。RAID卡固件、主板BIOS的更新会修复大量偶发性的引导问题不要等到出了故障才想到升级。第四规范意外断电处理流程。能通过BMC远程软重启就尽量不做物理断电确实是物理断电之后开机时务必关注自检过程的引导阶段如果发现异常马上安排排查不要拖到业务中断才处理。启动项丢失这种东西听着吓人实际上一旦摸清了UEFI和Legacy那点底层逻辑基本就是对着错误提示顺手改几个设置的事。怕就怕根本没搞清楚系统原有的引导模式瞎切一通把本来没坏的问题也搞坏了。我自己在服务器维护的道路上也曾经因为把这个弄错而白白重装了一遍系统那种感觉希望你们永远不要体会。希望这篇记录能帮大家少走点弯路。