我可以在虚拟机内更新 BIOS 吗?

我可以在虚拟机内更新 BIOS 吗?

我有一台联想 Y510P,它运行的是 Linux(Antergos)。我读到我需要运行 Windows 才能更新 BIOS。

我猜答案是否定的,因为它是一个沙盒环境,但我想确定一下,因为我在启动菜单安装新操作系统时遇到了很多麻烦。

答案1

从技术上来说,是的,这是可能的。实际上,我尝试过的任何 VM 都无法做到这一点。

问题是,你需要

  1. 了解 BIOS 更新程序写入哪些硬件设备。(例如某些 NVRAM 设备。)
  2. 让您的主机操作系统了解该硬件。(就像将它们作为 /dev/ 中的文件一样。驱动程序仅适用于所连接的设备……例如总线。)
  3. 让您的虚拟机将这些设备传递给客户机。

使用 Linux 作为主机,如果硬件不是专有的或非常奇特的东西,步骤 1 和 2 应该是可行的。(例如 NVRAM 很容易。)问题是,据我所知,没有虚拟机可以通过随意的硬件。它们可以处理 USB、PCI 和驱动器等。但不是任何随机硬件。因为,这就是我的答案:VM 软件会需要一种“司机”来知道如何实际通过,同时监督客户允许做什么。

因此在实践中有两种选择:

  1. Linux 可以视为“正常”硬件的硬件……例如,NVRAM 可能只是您可以访问的正常块设备dd。您根本不需要 VM,可以直接从 Linux 进行更新。(但要小心,因为原始 BIOS 更新程序通常会进行一些非常重要的检查,例如它是否与硬件真正兼容等。否则,您可能会得到一块砖头。)
  2. 其他任何事情,您都必须为 KVM/qemu 做出贡献并为您的特定硬件添加直通。

TL;DR:一切皆有可能,只要你有足够的时间去做。除非它在你的事件视界之外。;)

或者更简短地说:不。

相关内容