如何在不使用Windows的情况下更新计算机BIOS固件

我有一台搭载Ubuntu 20.04 LTS(Focal Fossa)的Dell Inspiron 3647台式电脑。

我如何在Ubuntu内部检查BIOS固件版本并进行更新(如果需要),而无需使用MS Windows?

2个回答

注意事项:

  • 本指南也适用于旧版本的Ubuntu,如16.04(Xenial Xerus)。
  • 尽管本指南专注于戴尔电脑,但也适用于其他厂商。
  • 在其他GNU/Linux发行版上也应该能正常工作。

警告:在BIOS固件安装过程中遇到停电可能会导致不可逆转的损坏!务必避免此情况发生!


1. 使用Linux供应商固件服务(LVFS)进行更新(适用于2015年以后的某些计算机)
  • 访问LVFS Devices Website,查看该服务可用的计算机型号。目前为止,戴尔和联想是覆盖范围最广的两个供应商。

    如果您的计算机在清单上,请继续进行本部分操作。如果不在清单上,请查看本指南的后续章节。

  • 安装fwupd(如果尚未安装):

      sudo apt install fwupd
    
  • 启动守护程序服务:

      sudo service fwupd start
    
  • 刷新可用固件更新的列表:

      sudo fwupdmgr refresh
    
  • 列出连接的设备并查看支持情况:

      fwupdmgr get-devices
    
  • 列出可用的更新(针对先前列出的设备):

      fwupdmgr get-updates
    
  • 安装固件更新(如果有可用更新):

      sudo fwupdmgr update
    

  • 图形界面替代方案:如果您不想通过终端(前面的步骤)进行更新,您可以尝试使用软件中心更新选项卡(如下图所示):

Software Center

  • 重新启动机器以完成更新安装过程。

  • 如果这一部分适合您,那么您应该在此时已经完成了。

这是最新且更方便的方法,可以在GNU/Linux操作系统中更新BIOS固件。这是许多硬件供应商为Linux用户提供开箱即用的更新所做出的努力。更多信息请参阅Linux Vendor Firmware Service (LVFS)

2. 检查已安装的BIOS固件版本

  sudo dmidecode -s bios-version

3. 检查已安装的 BIOS 固件发布日期

  sudo dmidecode -s bios-release-date

4. 在戴尔官网上查找最新的计算机 BIOS 固件版本

  • 前往戴尔支持网站,通过输入型号、服务标签或快速服务代码找到您的计算机。
  • 点击驱动程序和下载选项卡。
  • 操作系统下拉菜单中选择BIOS。系统将显示最新可用版本。
  • 如果您计算机上安装的版本已过时,请下载该文件。这是一个 Windows 可执行文件 (.exe)。

Dell Webpage Support

请确保通过运行校验和来检查下载文件的完整性:
  sha256sum [/path/to/file.exe] | grep [网页上提供的SHA-256哈希值]
如果输出哈希值以不同的颜色(如红色)打印出来,那么你可以继续操作。
5. 使用Flash Boot进行更新(适用于2015年以后的计算机)
如果您的BIOS在启动菜单中提供了“BIOS Flash Update”选项(如下图所示),则可以使用本节内容。

Bios Flash Update

  • 如果您的系统使用UEFI模式:将BIOS可执行文件复制到/boot/efi/目录。
  • 如果您的系统使用传统模式:将一个可启动的U盘格式化,并将BIOS可执行文件复制到其中。
  • 重新启动计算机。
  • 一旦显示出Dell标志,按下F12键以进入引导菜单。
  • 选择BIOS Flash Update
  • 选择BIOS可执行文件并执行它。新的BIOS固件将被安装,并在之后计算机将重新启动。
  • 您可以通过重复本指南的第2和第3部分来检查新的BIOS固件安装的版本和日期。
  • 如果这一部分适用于您,那么您应该已经完成了。

6. 使用FreeDOS进行更新(没有Flash Boot功能的BIOS - 旧硬件)

  • 访问FreeDOS操作系统网站并下载其Lite USB版本。
  • 使用类似于Startup Disk Creator (usb-creator package)的软件将下载的FreeDOS映像文件写入USB驱动器。
  • 将BIOS可执行文件复制到U盘。
  • 重新启动计算机。
  • 一旦显示Dell标志,输入F12以重定向到引导菜单
  • 选择从USB驱动器启动(如下图所示)。如果此选项在菜单中不可用,则可能需要将BIOS从UEFI模式切换为Legacy模式。

Boot Menu

在FreeDOS启动过程的开始,您将被要求继续安装或取消并离开DOS终端。请选择“否 - 返回DOS”(如下图所示),否则Ubuntu将被覆盖为FreeDOS。

FreeDOS

在DOS终端中,输入dir命令以列出USB驱动器中可用的目录和文件。除了FreeDOS文件之外,您应该能看到BIOS可执行文件。
为了继续进行BIOS固件安装,您可能需要当前USB分区上至少15MB的可用空间。如果您没有足够的可用空间,系统会发出警告并自动中止进程。在这种情况下,只需删除FreeDOS的Packages文件夹。您不需要它。
输入BIOS文件的名称并按回车键执行它。继续安装。在安装过程结束时,计算机将重新启动。
您可以通过重复本指南的第2步和第3步来检查新的BIOS固件安装的版本和日期。
如果这一部分适用于您,那么您现在应该完成了。

对于选项5,也可以将下载的可执行文件放置在EFI分区(/boot/efi)中。非常棒的帖子! - vanadium
@vanadium 谢谢夸奖!我花了几个小时来编写这个指南! 我听说过将BIOS文件复制到/boot/efi并从那里执行的选项,但我还没有尝试过。 - Felipe G. M. Maia
+1 谢谢帖子!多年来使用FreeDOS LiveBoot方法,终于更新了我的BIOS! - kashish

将下载的BIOS可执行文件复制到/boot/efi,然后按下F12键启动计算机进入BIOS闪存更新程序,这对我来说是最简单可靠的方法来更新戴尔BIOS。不需要麻烦地引导FreeDOS,也不需要麻烦地将USB存储设备挂载到BIOS闪存更新(在我的仅支持USB-C的XPS 13上从未成功过),也不需要临时更改任何BIOS设置。

欢迎来到Ask Ubuntu!您的文本更像是对主要答案的评论,而不是一个替代性的回答。请考虑删除回答,并将其重新发布为评论。 - Felipe G. M. Maia