如何使用 systemctl 和 systemd 从 Linux 访问和更新固件(BIOS/UEFI)设置

最后更新: 09/06/2025
作者: 艾萨克
  • 从以下位置访问固件 Linux 由于 UEFI 和 systemd,这变得更容易了。
  • 更新 BIOS/UEFI 和微码需要预防措施和官方来源。
  • systemctl restart --firmware-setup 允许在支持的情况下直接重新启动到固件设置。

UEFI BIOS

在操作系统领域,从 Linux 访问固件设置(BIOS/UEFI),尤其是通过 comandossystemctl reboot --firmware-setup,是一种需求量日益增大的资源。 随着超快速启动技术的出现,诸如开机时反复按键之类的传统方法可能变得无效或不切实际。因此,用户正在寻求一种直接、安全且现代化的方式,使用 systemd 与现代发行版的固件进行交互。

在本文中,我将详细全面地介绍与访问、管理和更新当代 Linux 系统上的固件(BIOS/UEFI)和微码相关的所有内容。 此外,你还将学习了解 引导、UEFI 的功能、systemd 的作用以及相关的风险和预防措施,以便您能够安全准确地操作系统。本文包含一些高级技巧, 技巧 为新手用户和高级系统管理员提供有用且清晰的解释。

什么是固件以及它为什么重要?

固件是计算机内置的基本软件。 硬件 它在低水平上控制其运行。 在最知名的固件类型中,我们发现 BIOS (基本输入/输出系统)或其后继者 UEFI(统一可扩展固件接口)。此外,计算机的每个组件(硬盘、网卡、CPU 等)都可以拥有自己的固件。

更新固件以及访问其设置至关重要。 确保硬件以最佳方式、安全地运行,并与新版本的操作系统和应用程序兼容。

什么是 UEFI 以及它有何变化?

UEFI的到来,彻底革新了老旧的BIOS。 UEFI 不仅包含新功能,还引入了更安全、更快速、更灵活的启动流程。其主要优势包括支持大容量磁盘、ESP(EFI 系统分区)分区系统,以及能够运行 EFI 应用 外部、扩展的功能和比传统 BIOS 所能提供的更高级的设置。

另外, UEFI 允许操作系统对启动进行一些控制。 甚至可以从系统本身进行固件管理,例如,可以直接重新启动到固件设置,而无需在启动期间快速按下特定键。

现代 Linux 系统的启动过程

启动 Linux 系统是一个分为几个阶段的过程:

  • 固件(BIOS/UEFI): 初始化并检查硬件。
  • 引导加载程序(如 GRUB2): 加载操作系统内核和initramfs/initrd。
  • 系统初始化: 通过大多数当前发行版中的 systemd,它管理系统和用户服务和单元。

在 UEFI 机器上,一切都从固件读取 ESP 分区开始。 查找引导加载程序。内核加载完成后,systemd 将作为 PID 1 启动,成为所有服务的父进程。

  如何逐步更改 Windows 11 中系统文件夹的默认位置

systemd、systemctl 和固件访问

systemd 现在是许多 Linux 发行版中的默认启动和服务管理系统 (Debian、Ubuntu、Arch、Fedora 等)。

命令 systemctl reboot --firmware-setup 允许在受支持的计算机上直接重新启动系统以进入 UEFI 固件配置,而无需按任何奇怪的键或中断启动。

并非所有设备都支持此功能。 这取决于固件实现以及你的发行版和内核是否启用了该选项进行编译。不过,就可用性和可访问性而言,这是一个巨大的改进。

使用 systemctl 从 Linux 访问 UEFI 固件设置的步骤

请按照以下步骤确保您可以从 Linux 访问固件设置:

  1. 验证您的计算机是否以 UEFI 模式启动。您可以通过运行来检查 ls /sys/firmware/efi;如果出现内容,则表示您正在使用 UEFI。
  2. 阿布雷纳 终端 具有管理员权限。 在大多数发行版中,你可以使用 sudo 在命令之前。
  3. 跑:
    sudo systemctl reboot --firmware-setup

    系统应重新启动并自动进入 UEFI 固件设置屏幕。

  4. 如果该命令不起作用,则您的固件可能不支持它,或者您的内核/发行版可能不是最新的。 请查阅主板的具体文档并考虑升级您的系统。

从 Linux、Windows 和 Mac 进入 BIOS/UEFI 的其他方法

可以通过其他操作系统或手动方法访问固件:

  • 从 Windows 10/11 开始: 前往“设置”→“更新和安全”→“恢复”→“高级启动”。重启后,选择“疑难解答”→“高级选项”→“UEFI 固件设置”。
  • Mac: 关闭计算机,按下电源按钮,并在启动时按住 CMD+OPT+O+F 以访问提示。
  • 传统方法: 根据制造商的不同,在启动过程中按下特定键(Delete、F2、Esc、F10 等)。此方法仍然有效,但如果启动速度太快或启用了快速启动,可能会失败。

根据制造商访问固件的常用密钥

  • 克隆和华擎、华硕、宏碁、技嘉、微星、索泰: F2 或删除 (Del)
  • 戴尔: F2或F12
  • HP: F10
  • 联想 Lenovo: Portátiles:F2/Fn+F2;台式机:F1;ThinkPad:Enter+F1
  • 微软Surface: 按住音量 +
  • 三星、东芝、索尼 VAIO: F2 或 F1(取决于型号)

更新固件前的注意事项和风险

更新固件或刷新 BIOS/UEFI 并非没有风险。 虽然损坏设备的可能性正在降低,但更新过程中的故障(例如意外断电)可能会导致 “砖”,导致设备无法使用。

升级前的重要提示:

  • 始终从官方来源或设备制造商的网站下载固件。 永远不要相信来源可疑的文件。
  • 检查固件是否适合您的型号。 使用不正确的二进制文件可能会导致系统无法启动。
  • 如果可能,请使用 UPS(无条件电源) 更新时避免断电时出现问题。
  • 备份您的设置。

如何了解固件的当前版本

在Linux中,您可以轻松检查BIOS/UEFI版本和其他固件信息:

  • 图形工具: AIDA64、CPU-Z、CPU-X、Hardinfo.
  • 从终端:
    • 使用 dmidecode -t bios 了解详细的 BIOS/UEFI 信息。
    • 使用 sudo dmesg | grep -i firmware 搜索相关消息。

从 Linux 和 Windows 更新固件

从Windows

  1. 访问固件(BIOS/UEFI)以了解当前版本。
  2. 请访问制造商的网站以获取更新的版本。
  3. 下载更新文件,通常为 ZIP 格式。
    • 如果它是可执行文件:运行该程序并按照说明进行操作,事先关闭所有应用程序和防病毒软件。
    • 如果它是要从 UEFI 本身更新的文件:将其解压缩到 USB(格式化为 FAT32),启动 PC 并从相应的菜单中使用 BIOS/UEFI 更新实用程序。
  4. 重新启动并验证更改是否生效。

来自 GNU/Linux

  1. 从制造商官方网站下载固件文件 (ZIP、图像或二进制)。
  2. 安装 闪存盘 如果你没有:
    sudo apt install flashrom
  3. 备份当前固件:
    sudo flashrom -p internal -r backup_bios.bin
  4. 刷新新固件:
    sudo flashrom -p internal -w firmware_nuevo.bin
  5. 重新启动系统并检查版本。

推荐的附加工具: fwupd、BIOSDisk、UEFITool、FWTS.

CPU微码更新

微码是CPU的内部固件。 它可以与 BIOS/UEFI 一起自动更新,通过操作系统更新或通过特定的软件包进行更新。

微码更新通常会随操作系统更新自动安装。 对于 ARM 或 RISC-V 系统,请咨询特定制造商的支持。

固件管理和诊断工具

  • FWTS(固件测试套件): 允许您检查固件的健康状态并检测错误或不兼容性。
  • UEFI工具: 方便固件映像的操作和管理。
  • 日志控制: 对于咨询有用 日志 系统(journalctl -b 查看上次启动,或者 journalctl --file=/ruta/var/log/journal/ 分析未安装磁盘上的日志)。
  • dmesg: 检查启动消息以及与硬件和固件相关的问题。选项 dmesg --pager 可以自动分页输出。

配置并理解 systemd 来管理启动

systemd 是一个服务管理器,它将启动过程组织成声明单元和依赖项,而不是通过像旧的 SysVinit 这样的程序脚本。

  • 主要单位 他们在 /lib/systemd/system y /etc/systemd/system.
  • 命令 systemctl 它用于查询、激活、停止和重新启动服务、设备、套接字和目标。 这篇文章是关于双启动的 了解如何管理团队中的不同系统会很有帮助。
  • 要查看服务的状态(例如 NetworkManager): systemctl status NetworkManager

systemd 提供与旧版 /etc/init.d/ 脚本的兼容性,并允许轻松转换为现代单元。 此外,它还采用了先进的日志记录系统 系统日志,存储内核和服务日志。

引导和模块管理的其他关键方面

系统初始化还包括加载内核模块。 (驱动程序 和驱动程序)以获得硬件支持:

  • modprobe的:允许您手动加载和卸载模块。
  • lsmod.:显示系统中已加载的模块。
  • 修改信息:提供有关特定模块的详细信息。
  • 自动模块加载配置在 /etc/modprobes.d/ y /etc/modules.

udev 系统自动检测硬件并加载必要的模块。

访问和更新其他设备(路由器、打印机等)的固件

路由器、打印机和其他设备的固件通常需要自己的更新程序:

  1. 识别设备的 IP(对于路由器,通常为 192.168.1.1 或 192.168.0.1),使用 IPCONFIG 在Windows上 ip路由显示 在 Linux 上或从移动系统上的网络设置中。
  2. 使用相应的用户名和密码登录(通常在设备下方的标签上找到或作为制造商的默认值)。
  3. 在设置页面中,查找“固件更新”部分或类似内容。
  4. 从官方网站下载适合您型号的固件,如果是 ZIP 则解压缩,然后使用“浏览/更新”选项加载它。
  5. 等待该过程完成,如有必要,请重新启动设备。
  6. 完成此过程后检查固件版本。

许多制造商提供特定的实用程序或软件中心来促进更新。 以及设备上的驱动程序和固件的管理。

更新后的系统安全和维护

固件、BIOS/UEFI 或微代码更新后,最好检查系统是否正确启动以及日志中是否没有警报或错误。 使用 dmesg y journalctl 监控可能出现的警告。如果检测到问题,请尝试从备份中恢复之前的固件。

Linux 中的固件和微码管理及更新功能已显著改进,用户可以使用日益复杂且易于访问的工具和命令来确保系统安全并保持最新状态。systemd 和 systemctl 的支持使添加以前需要手动操作或重启的功能变得更加轻松,从而节省了时间并最大限度地降低了过程中的风险。

Windows 引导加载程序:双启动时如何更改默认操作系统
相关文章:
双启动 Windows 和 Linux:如何选择默认操作系统
  如何在 Windows 11 中将图像转换为文本(OCR)而无需安装任何东西