10
2月
2026
如何在 Linux 中更新计算机的 BIOS/EFI/固件
15:11

如何在 Linux 中更新计算机的 BIOS/EFI/固件

10 2月 2026 15:11

如何从 Linux 刷新 BIOS? 从 Linux 更新个人计算机的 BIOS/EFI/固件的说明。

简介

要支持新的处理器型号,必须更新计算机的 BIOS。 例如,必须在安装原始 BIOS 版本不支持的更现代、更强大的处理器之前更新 BIOS。

有时,开发公司会发布新的 BIOS 版本来消除错误或添加新功能(例如,“超频”处理器的能力)。

该更新始终以自解压存档 (EXE) 文件的形式在 Internet 上的主板制造商网站上提供,其中包含固件实用程序(可执行 EXE 文件)、固件本身(二进制文件)和 autoexec.bat(命令文件)。

通常使用 DOS 启动盘更新 BIOS 的方法现在变得不方便,因为它需要很长时间:

  • 首先你需要购买一个闪存盘,
  • 下载FreeDOS,
  • 使用 Rufus 将 FreeDOS IMG 文件刻录到 USB 驱动器,
  • 然后将实用程序 EXE 文件和固件文件与 BIOS 固件一起从存档中提取到可启动 USB 闪存驱动器上,
  • 从带有固件的 USB 闪存驱动器启动,EXE 实用程序将自动刷新计算机的 ROM。

如果您的 PC 安装了 LInux,则可以通过一种节省时间的方法从终端窗口将新的 BIOS 版本刷新到计算机 ROM 中。

1. 准备工作

1.1 查明主板型号

您可以通过两种方式查找主板型号:
1)硬件。 打开电脑机箱,找到主板并阅读铭文 - 主板的制造商和型号,
2) 软件 - 安装 lshw 软件包并使用“-C system”开关运行同名实用程序。

sudo apt安装lshw
sudo lshw -C system | head -7

其中“head -7”将输出限制为前 7 行。

sudo lshw -C 系统 |头-7
绿色专业
描述:台式电脑
产品:H55M-S2H
制造商: 技嘉科技有限公司
位深度:64 位
功能:smbios-2.4 dmi-2.4 smp vsyscall32
配置: boot=普通机箱=桌面 uuid=...

我的产品是技嘉科技有限公司的H55M-S2H。

1.1 查找BIOS固件版本号

带有 -t BIOS 开关的 dmidecode 实用程序显示 BIOS 固件版本。

sudo apt install dmidecode
sudo dmidecode -t bios | head -12

闪烁前

1.2 从制造商网站下载固件版本

在互联网上,访问主板制造商的网站 - 支持部分,输入或查找您的型号 - 下载 BIOS 更新。
当然,您需要下载最新版本的BIOS固件。

千兆字节

1.2 从更新存档中提取二进制固件文件

右键单击 EXE 文件 - 在此提取。
解压1
转到文件夹
解压2
我们注意到固件文件。 他的 姓名 可以复制到剪贴板。 使用鼠标右键-“重命名”-选择文件名-复制到剪贴板。
解压3

1.3 安装固件实用程序

需要安装包 flashrom

sudo apt install flashrom

Flashrom应用说明:

识别、读取、写入、擦除和测试BIOS/ROM/闪存芯片。
闪存 是一款识别、读取、写入、检查、擦除闪存芯片的工具。
它通常用于在使用受支持主板的系统上刷新 BIOS/EFI/coreboot/firmware/optionROM 映像,但也支持刷新网络接口卡 (NIC)、SATA 控制器和其他可以对闪存芯片进行编程的外部设备。

它支持各种使用LPC、FWH、并行闪存或SPI等协议的DIP32、PLCC32、DIP8、SO8/SOIC8、TSOP32/40/48和BGA芯片。

例如,该工具可用于刷新 BIOS/固件映像 - 无论是专有 BIOS 映像还是 coreboot 映像(以前称为 LinuxBIOS)。

还可以用于从闪存芯片读取当前现有的BIOS/固件。

主页: http://www.flashrom.org.

2.BIOS/EFI/固件

2.1 从 ROM 读取并将旧版本 BIOS/EFI/固件保存到磁盘

ROM 是计算机的只读存储器或闪存。 我使用该实用程序读取了旧版本的固件 flashrom:

cd Downloads
sudo flashrom -p internal -r h55ms2h.f1

哪里 h55ms2h.f1- 本例中第一个版本的固件文件的名称为“F1”(为简单起见,您可以使用文件名“bios.old”)。

读

2.2 将新版本的BIOS/EFI/固件写入ROM

就我而言,固件版本 F7 的文件名为 h55ms2h.f7

!!在将固件写入ROM之前,请确保固件文件匹配 型号 主板。

如果PC的RAM容量较小,请关闭除终端之外的所有不必要的程序,以免发生交换,即将内存内容转储到硬盘上的交换文件中。

使用 flashrom 实用程序启动固件:

sudo flashrom -p internal -w h55ms2h.f7

在固件安装过程中我们永远不会关闭计算机! 我们正在等待“擦除/写入完成”和“正在验证闪存...已验证”字样出现。
写

3. 重新启动电脑

sudo reboot

sudo shutdown -r now

4.检查BIOS/EFI/固件版本

sudo dmidecode -t bios | head -12

结果:
闪烁后

五、问题及解决方案

5.1 Flashrom错误:mmap“不允许操作”

根据BIOS的内存芯片,用read命令读取ROM时
sudo flashrom -p internal -r bios.old
可能会发生错误 “mmap 失败:不允许操作”

找到芯片组“Intel ICH7/ICH7R”。
启用闪存写入...访问 ICH RCRB 时出错,0x00000000fed1c000 处的 0x4000 字节
/dev/mem mmap 失败:不允许操作
失败了!
致命错误!
错误:程序员初始化失败。

解决方案:

添加内核参数

iomem=relaxed

为此,请在屏幕上显示“Grub 正在加载”消息之后。 和“欢迎来到 Grub”,
在Grub2菜单中,按“e”并添加linux内核参数:

linux /boot/vmlinuz-x.xx.xx ... ro quiet iomem=relaxed

然后点击 F10 继续加载Linux。

5.2 如果BIOS有两个芯片,如何同时刷新两个芯片

对于“影子”影子BIOS,使用了两个ROM 芯片。
当不带 -c 参数调用时,flashrom -p 实用程序将报告此情况。
读取或写入时,需要指定附加键-c“芯片名称”。
我刷了两个芯片。

示例:

sudo flashrom -p internal -w 1394.ROM -c "Pm25LD040(C)" 
sudo flashrom -p internal -w 1394.ROM -c "Pm25LV040" 

免费插图: publicdomainvectors.org