如果没有VT-x支持,VirtualBox中的64位Windows guest虚拟机是否不可能?[重复]


8

我已经使用VirtualBox在VM中成功安装了Windows Vista 32位。现在,我正在尝试对64位Windows Vista进行同样的操作,但是它无法正常工作。我已经创建了VM,但似乎它不会从64位Vista ISO映像启动。它吐出此启动管理器错误。

一个

主机操作系统是64位Intel Core 2 Duo处理器上的Windows 7 64位。现在,我做了同样的事情,并在另一台计算机上安装了相同的VirtualBox版本,该版本也运行Windows 7 64位,创建了VM,然后...在VM设置过程中,我注意到它还有其他选项可供选择当我选择客人Os。这是屏幕截图。

b

您会在显示64位的位置之间看到这些选项,而另一台计算机上没有这些选项。现在,它运行一个高端型号Intel Core 2 Quad。它支持Intel虚拟化技术,而另一种则不支持。

这就是Core 2 Duo计算机上相同对话框的外观。这是屏幕截图。

C

这可能是原因吗?这是否意味着你不能模拟64位Windows客户机操作系统在VirtualBox中,除非您的处理器支持英特尔虚拟化技术?我知道这项技术可以使事情变得更快,但根本不能让您模仿该操作系统……这有点极端,不是吗?

如果是这样,您建议我改用什么?


@Ramhound您是否只是问我确定我正在运行64位操作系统,然后改变了主意?我在收件箱中收到了评论。那么,不管它的价值,是的,我相信两台计算机都运行Windows 7的64位版本
萨米尔

@Ramhound的硬件限制?因此,您同意,这与VT-x支持有关,还是缺少它?
萨米尔2014年

无论硬件限制如何,您都应该始终能够在软件中执行操作。这是虚拟化的好处之一,因为它使您可以完全替换软件中的物理硬件。我知道拥有Intel VT-x是一件好事,但是,即使运行速度非常慢,为什么也不能在所有软件中都在VirtualBox中模拟64位操作系统?他们为什么不允许您这样做?这是VirtualBox中的一个限制。
萨米尔2014年

恩...您的意思是“ 如果硬件不支持您就无法在软件中做某事”?
萨米尔2014年

Answers:


18

VirtualBox手册的3.1.2节明确指出,您需要硬件虚拟化支持才能使用64位来宾操作系统(添加了重点):

只要满足以下条件,VirtualBox甚至在32位主机操作系统上也支持64位来宾操作系统:

  1. 您需要一个具有硬件虚拟化支持的64位处理器(请参见第10.3节“硬件与软件虚拟化”)。

  2. 您必须为想要64位支持的特定VM启用硬件虚拟化。64位VM不支持软件虚拟化。

  3. 如果要在32位主机操作系统上使用64位来宾支持,则还必须为特定VM选择64位操作系统。由于在32位主机上支持64位会产生额外的开销,因此VirtualBox仅在明确请求时才启用此支持。

资料来源:https : //www.virtualbox.org/manual/ch03.html#intro-64bitguests

第10.3节也指出了这一点(加了强调):

VirtualBox的64位来宾支持(在2.0版中添加)和多处理(SMP,在3.0版中添加)都需要启用硬件虚拟化。(这并不是一个很大的限制,因为当今绝大多数64位和多核CPU都附带了硬件虚拟化功能;该规则的例外是例如较旧的Intel Celeron和AMD Opteron CPU。)

资料来源:https : //www.virtualbox.org/manual/ch10.html#hwvirt

因此,您需要一个支持VT-x或AMD-V的处理器才能将64位客户机与VirtualBox一起使用。但是,QEMU,Bochs和VMWare Player都支持64位来宾,而没有硬件虚拟化支持(至少根据此页面)。


是的...那很不幸。我认为这仅指32位主机上的64位来宾。但是从第10章开始,他们明确表示必须进行硬件虚拟化。我不知道,为什么这不是32位来宾的要求?为什么只有64位?
萨米尔2014年

即使我已经在自己的答案中张贴了此确切的文本,我也给了您赞成票。感谢您的努力!如果可以的话,我将与您的答案合并。
萨米尔

您是否知道可以在没有硬件虚拟化支持的情况下模拟64位Windows的其他任何虚拟化软件(最好是免费和开放源代码)?
萨米尔2014年

@sammyg看起来QEMU,Bochs和VMWare Player都支持它,请参阅我的最新修订版。
nc4pk

不对。VMware Player还需要虚拟化才能运行64位猜测,其他虚拟机管理程序也是如此。您只能在Bochs或qemu等模拟器或Xen en.wikipedia.org/wiki/Vt-x#Software-based_virtualization
phuclv 2014年

0

没有虚拟化,没有任何虚拟机管理程序在x86 CPU中支持64位虚拟机,因为没有虚拟机,就不可能隔离虚拟机

维基百科(重点是我的)中提到了原因:

x86-64的初始版本(AMD64)由于在长模式下缺少分段支持,因此不允许仅软件进行完全虚拟化,这使得无法对虚拟机管理程序的内存进行保护,尤其是对陷阱处理程序的保护在来宾内核地址空间中运行。

版本D和更高版本的64位AMD处理器(通常是90 nm或更短的处理器)增加了对长模式分段的基本支持,从而可以通过二进制转换在64位主机中运行64位客户机。 。英特尔没有为其x86-64实现(英特尔64)添加分段支持,从而使得在英特尔CPU上不可能进行仅64位软件的虚拟化,但是英特尔VT-x支持使在英特尔平台上可以进行64位硬件辅助的虚拟化。

VMWare还表示,缺乏虚拟化使其对虚拟机的保护提出了挑战

x86-64虚拟化的挑战

  • 最初的AMD64架构不包括64位模式下的分段
    • EM64T也缺少细分

我们如何保护VMM?

  • 64位来宾支持需要其他硬件帮助
    • 在较新的AMD处理器上以64位模式提供段限制检查
    • VT-x可用于保护EM64T上的VMM
      • 需要捕获和仿真方法而不是BT

阅读更多:

英特尔CPU在芯片和BIOS中需要EM64T和VT支持,才能运行64位虚拟机。本文可以帮助您确保处理器具有VT功能,并且还指导您如何启用此功能
http://kb.vmware.com/selfservice/microsites/search.do?language=zh_CN&cmd=displayKC&externalId=1003944


在这种情况下,唯一的方法是使用仿真器(例如QEMUBochs)或半虚拟化软件(例如Xen)。

阅读更多:在x86-32处理器上运行x86-64 ASM

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.