计算机拒绝在 UEFI 模式下启动 - 给出有关英特尔千兆网卡的错误

Fah*_*tha 9 boot network-adapter uefi

我只是尝试在 UEFI 模式下启动我的机器,但收到此消息:

系统找不到附加网络设备的 UEFI 驱动程序 [0x10D38086]

我正在运行 Debian Linux,但我不确定这是否相关。我不确定我的系统是否已经到了 Linux 部分。

这是lspci我的网卡的相关输出

0a:00.0 以太网控制器:英特尔公司 82574L 千兆网络连接

我认为主板本身支持 UEFI。这是dmidecode主板的输出。

dmidecode --type 2
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
        Manufacturer: ASUSTeK COMPUTER INC.
        Product Name: SABERTOOTH 990FX R2.0
        Version: Rev 1.xx
        Serial Number: 130309723501985
        Asset Tag: To be filled by O.E.M.
        Features:
                Board is a hosting board
                Board is replaceable
        Location In Chassis: To be filled by O.E.M.
        Chassis Handle: 0x0003
        Type: Motherboard
        Contained Object Handles: 0
Run Code Online (Sandbox Code Playgroud)

bwD*_*aco 20

这里的问题是您的网络适配器的固件或选项 ROM不支持 UEFI。

附加卡可以有自己的可执行代码以在预引导环境中使用。显卡上的 VBIOS 用于初始化 GPU 并在启动时显示,就是这种可选 ROM 的一个例子。在网卡上,这通常用于实现PXE。UEFI 通常1要求卡的固件包含特制的驱动程序,但您的 NIC 是为传统 BIOS 系统制造的,因此它不包含任何此类驱动程序。因此,它不适用于不使用兼容性支持模块(传统 BIOS 兼容层)且需要更新的 UEFI 系统。

深入挖掘,我发现错误消息中提供的代码,0x10D38086,是网卡的 PCI ID。8086:10D3 是英特尔千兆 CT 台式机适配器

搜索可用于此卡下载,找到固件更新,可以将其安装到 NIC 上以更新选项 ROM,使其支持 UEFI。下载并解压Preboot.tar.gz并按照说明更新固件。根据发行说明,选项 ROM 包括 UEFI 驱动程序,它应该可以解决您遇到的错误。

在您的情况下,刷新combo提供 UEFI 和 PXE 支持的固件:

bootutil64e -up=combo -all -FILE=BootIMG.FLB
Run Code Online (Sandbox Code Playgroud)

实用程序返回的消息仅指示现有固件提供的功能。在刷机过程中会被覆盖;这是正常的。

刷入固件后,在本机 UEFI 模式下重新启动系统,看看它是否有效。如果没有,则需要更换网络适配器。


更新:您已在聊天中指出您在尝试刷新固件时遇到此错误:

Connection to QV driver failed - please reinstall it!
Run Code Online (Sandbox Code Playgroud)

看起来固件闪存程序需要 iQV 调试驱动程序 ( iqvlinux) 才能运行。驱动程序可以在这里下载,但您需要自己编译和加载驱动程序。该install脚本是单独下载的,是执行安装所必需的;不要只是提取驱动程序包并运行make.


1 EFI 驱动程序也可以位于 EFI 系统分区或主板本身的 UEFI 固件中。但是,对于 PCI 和 PCIe 卡,它通常在卡的固件中提供。