PCIe 扩展卡插上后 BIOS 前光标闪烁卡死,该怎么排查

整理 PCIe 扩展卡插上后主板卡在 BIOS 前光标闪烁、无法进入系统时的排查步骤,包括断开外接设备、关闭 CSM、禁用 Option ROM、强制 PCIe Gen2、开启 Above 4G Decoding 和更换插槽。

如果 PCIe 扩展卡插上后,机器连 BIOS 界面都进不去,只停在黑屏或主板启动前的光标闪烁界面,这通常不是 Linux 驱动问题,而是更早阶段的硬件级卡死。

这个阶段操作系统还没有加载,所以 pci=nomsipcie_aspm=off 这类 Linux 内核参数完全帮不上忙。问题发生在 POST(加电自检)阶段,常见卡点包括 PCIe 链路训练、PCIe 资源分配、Option ROM 加载、Legacy / UEFI 兼容性冲突,或者扩展卡本身异常。

换句话说:如果连 BIOS 都进不去,先不要急着改 Linux。要先让主板能完成自检。

先理解这个故障意味着什么

正常开机时,主板会扫描 PCIe 设备,给设备分配 bus、I/O、MMIO 等资源,并决定是否加载设备自带的 Option ROM。某些 SATA 扩展卡、HBA、网卡、采集卡或转接卡会带有用于启动支持或设备初始化的固件,主板固件可能会尝试读取它。

如果扩展卡、主板 BIOS、PCIe 插槽、电源、外接设备或 Option ROM 其中某一环不兼容,就可能卡在主板自检阶段。典型表现是:

  • 黑屏,只剩光标闪烁。
  • 卡在主板 Logo 前后。
  • DelF2F11F12 无法进入 BIOS 或启动菜单。
  • 拔掉这张 PCIe 扩展卡后一切正常。
  • 换回原来的 NVMe、显卡、网卡后都能启动。

这种情况可以理解为“主板还没来得及把控制权交给系统,就已经被这张卡卡住了”。

哪些 PCIe 扩展卡容易触发这个问题

这类 POST 卡死不只会出现在 JMB585 SATA 扩展卡上。凡是需要主板在开机阶段初始化、分配资源或加载 Option ROM 的 PCIe 设备,都可能触发类似问题。

比较常见的设备包括:

  • JMB585、ASM1166 等 PCIe SATA 扩展卡。
  • LSI / Broadcom HBA 或阵列卡。
  • 2.5G、10G、万兆电口或光口网卡。
  • PCIe 转 M.2 / U.2 / SATA 转接卡。
  • 视频采集卡。
  • USB 3.x 扩展卡。
  • 带 Option ROM 的老显卡、老 RAID 卡或服务器拆机卡。
  • 做工一般、固件魔改、EEPROM 异常的廉价 PCIe 卡。

这些设备的问题不一定是“坏了”,也可能只是和当前主板 BIOS、插槽通道、PCIe 速率、启动模式或地址资源分配不兼容。

为什么还没进系统,Linux 内核参数无效

pci=nomsipcie_aspm=offlibata.force 这类参数都属于 Linux 内核启动参数。它们必须等内核加载后才会生效。

而 BIOS 前光标闪烁、主板 Logo 前卡死、按键进不了 BIOS,说明系统还停在 POST 阶段。此时运行的是主板固件,不是 Linux 内核。换句话说,Linux 还没开始执行,自然也没有机会读取这些参数。

所以这类故障的排查重点不是先改 /etc/default/grub,而是先处理:

  • BIOS / UEFI 启动模式。
  • CSM / Legacy 兼容层。
  • PCIe Option ROM。
  • PCIe 链路训练。
  • PCIe 地址空间和资源分配。
  • 扩展卡、插槽、供电和外接设备。

第一步:拔掉扩展卡上的外接设备

先做最低风险的排查:只保留 PCIe 扩展卡插在主板上,把接在扩展卡上的 SATA 数据线、外接设备线缆或硬盘供电先断开,让这张卡处于“不挂设备”的状态。

然后开机测试:

  • 如果拔掉硬盘后能进 BIOS,说明扩展卡本身大概率没有把主板卡死,问题可能在某块硬盘、SATA 线、供电或启动盘识别上。
  • 如果仍然卡死,说明问题更可能在扩展卡和主板 PCIe / BIOS 兼容性上。

为什么硬盘也可能导致 POST 卡死?有几种常见原因:

  • 某块硬盘的引导扇区或分区表异常,主板 BIOS 误判为启动盘后读取卡死。
  • 多块机械盘同时上电,电源瞬时电流不足,导致 SATA 控制器或硬盘异常。
  • 某根 SATA 线接触不良,导致控制器初始化阶段等待超时。
  • 某块硬盘本身健康状态很差,拖慢整条初始化流程。

如果拔盘后能启动,可以再一块一块接回硬盘,找到具体是哪块盘或哪根线触发问题。

第二步:拔卡进 BIOS,关闭 CSM

很多 PCIe 扩展卡卡在 POST 阶段,和 CSM / Legacy 启动兼容层有关。

CSM 是 Compatibility Support Module,用来让 UEFI 主板兼容旧式 Legacy 启动。问题在于,一些廉价 SATA 扩展卡或魔改卡可能带有老旧 Option ROM。主板在 CSM 模式下会尝试加载这些旧式启动固件,结果和现代 UEFI 固件发生冲突。

CSM 和 Option ROM 为什么会卡住 POST

POST 阶段主板会枚举 PCIe 设备,并判断这些设备是否带有可启动固件。很多老式存储卡、RAID 卡、HBA、网卡和 SATA 扩展卡会提供 Option ROM,用来让主板在操作系统启动前识别设备,甚至支持从这张卡启动。

问题是,Option ROM 往往很依赖 BIOS 实现。有些扩展卡的 Option ROM 老旧、魔改、损坏,或者只在特定服务器主板上测试过。现代消费级主板在 CSM / Legacy 模式下尝试加载它时,就可能出现初始化死循环、黑屏、光标闪烁或键盘无响应。

关闭 CSM、禁用 Storage OpROM 的目的,就是让主板不要在启动前尝试执行这张卡自己的启动固件。只要系统盘不接在这张扩展卡上,多数 NAS 和数据盘场景并不需要从扩展卡启动,交给 Linux / Windows 进入系统后再识别通常更稳。

操作步骤:

  1. 关机断电,拔掉这张 PCIe 扩展卡。
  2. 使用主板原有显卡、核显或已有启动盘开机,进入 BIOS。
  3. 找到 CSMCompatibility Support ModuleLegacy Boot 相关选项。
  4. 将 CSM 设置为 Disabled
  5. 启动模式尽量改成 UEFI Only
  6. 保存 BIOS 设置并关机。
  7. 重新插上 PCIe 扩展卡测试。

如果关闭 CSM 后能正常过 POST,说明之前大概率是 Legacy Option ROM 或启动兼容层冲突。

第三步:禁用 PCIe / Storage Option ROM

有些 BIOS 会提供更细的 Option ROM 控制项,例如:

  • PCIe Option ROM
  • Storage OpROM
  • Mass Storage Controller Option ROM
  • Launch Storage OpROM Policy
  • Option ROM Messages

如果能找到类似选项,可以把扩展卡所在插槽或存储控制器相关 Option ROM 设置为:

1
Disabled

或:

1
Do Not Launch

这样做的意思是:不要尝试从这张扩展卡加载启动固件,只把它当成普通 PCIe 设备交给操作系统识别。

如果你的系统盘不接在这张扩展卡上,而只是用它挂数据盘、NAS 盘、仓库盘、网卡或采集设备,那么通常不需要从这张卡启动。禁用它的 Option ROM 反而更稳。

第四步:强制 PCIe 速率为 Gen2 或 Gen1

JMB585 是常见的 PCIe SATA 控制器,很多卡标称走 PCIe Gen3 x2。但主板、转接卡、线材、槽位和扩展卡做工不够好时,PCIe 链路训练可能在 Gen3 阶段谈不拢,主板就会卡在等待设备完成初始化的阶段。

PCIe Gen3 链路训练失败是什么表现

PCIe 设备插上后,主板和设备会协商链路宽度和速率,例如 x1、x2、x4,以及 Gen1、Gen2、Gen3。这个过程叫 Link Training。

如果设备、插槽、转接卡、主板走线或供电不稳定,双方可能在较高速率上无法完成协商。常见表现是:

  • 插卡后卡在 BIOS 前黑屏或光标闪烁。
  • 主板 Logo 停很久,按键无响应。
  • 偶尔能启动,偶尔完全卡死。
  • 强制 PCIe Gen2 后恢复正常。
  • 换到另一个槽位后恢复正常。
  • 同一张卡在短槽、芯片组槽上能用,在 CPU 直连大槽上不稳定,或反过来。

这不是操作系统层面的“掉盘”,而是主板和设备还没完成 PCIe 链路初始化。强制 Gen2 / Gen1 的目的,是降低信号速率,牺牲一点理论带宽换稳定启动。

更稳妥的做法是先让它降速:

  1. 拔掉这张 PCIe 扩展卡。
  2. 进入 BIOS。
  3. 找到对应 PCIe 插槽的速率设置,例如 PCIe SpeedPCIe Link SpeedMax Link Speed
  4. AutoGen3 改成 Gen2
  5. 如果 Gen2 仍不稳定,再尝试 Gen1
  6. 保存关机,重新插卡测试。

对 SATA 机械盘来说,Gen2 x1 或 Gen2 x2 通常已经够用。稳定性优先时,不必执着 Gen3。

如果 BIOS 没有提供 PCIe 速率设置,才考虑物理降速方案。有人会通过给扩展卡金手指部分引脚贴绝缘胶带,让卡退回 x1 模式,以此验证是否是第二条 PCIe lane 或高频信号质量导致卡死。这种方法有风险,容易贴错位置或造成接触问题,不建议作为第一选择。优先用 BIOS 降速。

第五步:开启 Above 4G Decoding

如果主板上同时有 NVMe、显卡、无线网卡、HBA、采集卡或多个 PCIe 设备,BIOS 在 POST 阶段需要给它们分配地址空间和 MMIO 资源。老主板或资源分配策略比较保守的 BIOS,可能因为资源不足或地址冲突卡住。

可以尝试开启:

1
Above 4G Decoding

常见位置在 BIOS 的 AdvancedPCIe SettingsPCI Subsystem SettingsChipset 或类似菜单下。

它的作用是允许 PCIe 设备使用 4GB 以上的地址空间,有助于缓解多设备环境下的资源分配问题。虽然这个选项常被显卡直通、矿卡、HBA 和多 PCIe 设备场景提到,但对某些 SATA 扩展卡卡 POST 的情况也值得尝试。

第六步:换 PCIe 插槽

不要只在一个槽位上反复试。不同 PCIe 插槽背后的通道来源可能不同:

  • 靠近 CPU 的长槽通常是 CPU 直连,优先给显卡使用。
  • 一些短槽或第二条长槽可能来自芯片组 PCH。
  • 某些槽会和 NVMe、SATA、Wi-Fi 或其他设备共享通道。

如果扩展卡插在 CPU 直连大槽上卡死,可以尝试插到芯片组引出的短槽或带宽较低的槽上。反过来也一样,如果 PCH 槽不稳定,也可以试试其他槽位。

同时建议查看主板说明书,确认是否存在“插了某个 M.2 后某个 PCIe 槽失效”之类的共享规则。

推荐的高效排查顺序

如果你想尽快恢复启动,可以按这个顺序来:

  1. 拔掉扩展卡上所有外接设备,例如 SATA 硬盘、U.2 盘、外接线缆,只留卡本体测试。
  2. 如果仍卡死,拔卡进入 BIOS。
  3. 关闭 CSM,切到 UEFI Only
  4. 禁用 Storage OpROM 或相关 PCIe Option ROM。
  5. 开启 Above 4G Decoding
  6. 把对应 PCIe 插槽强制改成 Gen2,不行再试 Gen1
  7. 保存关机,重新插上 PCIe 扩展卡测试。
  8. 如果能过 POST,再逐块接回硬盘。

这套路径优先处理最常见的两类问题:Legacy / Option ROM 冲突,以及 PCIe Gen3 链路训练不兼容。

如何判断是卡坏了还是主板兼容性问题

如果做完上面步骤仍然卡在光标闪烁,还可以做两个交叉验证:

  • 把这张扩展卡插到另一台电脑上测试。
  • 换一张确认正常的同类 PCIe 扩展卡插到当前主板上测试。

判断逻辑可以这样看:

  • 同一张卡在多台电脑上一插就卡死:更像扩展卡本身有硬件或固件问题。
  • 这张卡只在当前主板卡死,换电脑正常:更像主板 BIOS、插槽通道、PCIe 速率或资源分配兼容性问题。
  • 当前主板换其他同类扩展卡正常:更支持原卡异常。
  • 当前主板换其他 PCIe 设备也不稳定:要怀疑主板插槽、供电、BIOS 设置或 PCIe 通道共享问题。

如果这张卡在多台电脑上一插就卡死,而其他扩展卡在当前主板正常,基本可以怀疑:

  • 扩展卡 EEPROM / Option ROM 数据损坏。
  • 扩展卡存在短路或供电异常。
  • 金手指、焊点、晶振或电源芯片有硬件问题。
  • 卡的固件和多个主板 BIOS 都不兼容。

如果它只在某一台主板上卡死,则更可能是主板 BIOS、插槽通道、PCIe 速率、CSM 或资源分配问题。

不要把系统参数当成 BIOS 阶段解法

需要特别强调:只要机器还没进入 Linux,pci=nomsipcie_aspm=offlibata.force 这类内核参数都不会生效。

这些参数只能处理操作系统接管硬件之后的问题,例如 Linux 下掉盘、中断异常、PCIe ASPM 唤醒失败等。对于 BIOS 前光标闪烁、POST 阶段卡死,它们没有机会执行。

所以这类问题的排障重点是:

  • BIOS 设置。
  • PCIe 链路训练。
  • Option ROM。
  • 插槽和资源分配。
  • 扩展卡和硬盘的物理状态。

小结

PCIe 扩展卡插上后卡在 BIOS 前光标闪烁,本质上是 POST 阶段就被卡住。最常见的突破口是:

  • 断开所有 SATA 硬盘,排除硬盘或供电诱因。
  • 关闭 CSM,切换到纯 UEFI。
  • 禁用 Storage / PCIe Option ROM。
  • 将 PCIe 速率从 Auto / Gen3 降到 Gen2 或 Gen1。
  • 开启 Above 4G Decoding。
  • 更换 PCIe 插槽测试。

如果这些都无效,并且这张卡在其他电脑上也会卡死,就要高度怀疑扩展卡本身硬件或固件损坏。对 NAS 和存储服务器来说,稳定性比参数漂亮更重要。遇到这类 POST 级卡死,优先让主板能稳定过自检,再谈 Linux 里的内核参数和驱动排查。

记录并分享
使用 Hugo 构建
主题 StackJimmy 设计