为什么系统通常在 BIOS 设置中默认禁用虚拟化?

为什么系统通常在 BIOS 设置中默认禁用虚拟化?

我还没有看到默认配置启用 MMU 和定向 I/O 虚拟化的系统。如果您需要,例如在虚拟机上启用 64 位支持,通常需要重新启动并进入 BIOS 来启用它。

如果启用该功能并且不使用虚拟化,是否会产生某种重大的处理器开销?如果没有,那么默认情况下关闭该功能的原因是什么?

答案1

有一些概念验证型 rootkit,例如蓝色药丸不久前,人们发现可以拥有一个开启 VT 的系统。发现这一点后,大多数供应商开始在发货时禁用 VT,作为一般安全预防措施。

答案2

我们购买的所有刀片服务器都默认启用了虚拟化功能。这可能是因为我们的供应商做出了商业决定,以便节省大量支持电话。

它不是因为处理器命中而禁用的,而是取决于它的用途。它可能默认关闭,因为启用这些功能可能会影响外围设备访问。

答案3

请注意,根据其他帖子,它似乎也对性能产生了一些影响 https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

我觉得这很有意义,因为精简指令集更高效。我只是没想到更改 BIOS 选项会直接影响这一点。

我不知道影响是否显著,但考虑到这一点以及潜在的安全漏洞,默认禁用这种很少使用的功能对我来说是个不错的选择。

答案4

除了@MDMarra 回答中提出的安全问题之外,您还应该考虑另外两点:

  1. 任何已启用的可选功能都有可能与其他功能发生一些令人讨厌的意外交互,需要进行额外验证。PC 供应商在很少使用的功能上花费资源,客户端虚拟化就是其中之一。

  2. 我强烈怀疑,由于 #1,英特尔基本客户端固件/BIOS blob 已禁用 VT。因此,任何提供启用 VT 的客户端的供应商在准备其固件时都需要自定义该选项。

话虽如此,现在已经是 2019 年了;我发现越来越多的客户端默认启用了 VT。服务器则完全不同:我不仅发现 VT 总是处于启用状态,而且 VT-d 也经常处于活动状态。

相关内容