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


81

我还没有看到一个系统的默认配置可以启用MMU和定向I / O虚拟化。通常,这需要重新引导并进入BIOS才能启用它,例如,VM上的64位支持。

如果打开电源并且您没有使用虚拟化,是否会发生某种形式的大量处理器开销?如果不是,那么默认情况下关闭它的原因是什么?

Answers:


52

有一些概念验证的rootkit,例如Blue Pill,它可以拥有一个启用了VT的系统。发现这一点之后,大多数供应商都开始在禁用VT的情况下发货,这是一般安全预防措施。


7
+1在台式机/笔记本电脑上使用VT的人除外。该机器易受病毒感染是规则。
克里斯·S

我突然对自己制造的这款闪亮的功能强大的新型开发机产生了新的想法,该机运行一堆启用了硬件虚拟化的VM。我不需要虚拟化,但我认为从长远来看,这可以节省我的时间,而不必每隔几个月重新安装一次。这有多大的问题?
Paperjam 2012年

2
几乎不存在(截至本评论)。蓝色药丸是概念的证明。我不知道在野外会发生什么。
MDMarra 2012年

1
这是Microsoft对安全问题的评估,包括建议在客户端角色系统上默认关闭VT的建议:msdn.microsoft.com/en-us/windows/hardware/gg463498.aspx
Jpsy 2013年

3
Microsoft的论文不再在其网站上提供,但是您可以根据需要在Internet存档上阅读。
2014年

5

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

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


4
这会影响哪些外围设备访问?我从来没有听说过。
MDMarra

提到外围设备访问时,您是否在谈论VT-d?
Zoredache

不,是MMU ...我记得最近有人在开车兜风。与Rasberry Pi有关。
西尔奇(Sirch)2012年

2

请注意,根据另一个线程,它似乎也对性能有一些影响 https://superuser.com/questions/545101/why-does-hp-recommend-that-i-keep-hardware-virtualization-off

这对我来说似乎很重要,因为减少指令集的效率更高。我只是没有想到更改BIOS选项会直接影响这一点。

我不知道影响是否重大,但考虑到这一点和潜在的安全漏洞,默认情况下禁用这样一个很少使用的功能对我来说是一个不错的选择。


2
链接答案的效率角度没有意义。指令高速缓存保存软件程序的指令。如果该程序不使用虚拟化指令,则对该缓存不起作用。此外,没有报告说有一个单独的执行单元可以处理虚拟化,也没有一部分指令解码器可以绕过,因此,任何一种方式都不应存在效率差异。
Nimrod '18


0

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

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

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

也就是说,我们现在是2019年;我看到更多默认情况下启用了VT的客户端。服务器则完全不同:我不仅总是发现启用了VT,而且还经常激活VT-d。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.