我有两台 64 位(硬件)机器。每台机器上都有一个新安装的 64 位 VM,运行 Ubuntu:
$ dpkg-query -W virtualbox
virtualbox 6.0.6-dfsg-1
$ uname -a
Linux zubu 5.0.0-13-generic #14-Ubuntu SMP Mon Apr 15 14:59:14 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
由于此虚拟机是全新硬件版本 Ubuntu 主机的试用实例,因此我正在针对 VirtualBox 进行测试(除其他外)。因此,这是一个不寻常的地方,我有:
- A base system (call it "host 0"), running VirtualBox, where:
- ...a guest host, call this "host 1", runs VirtualBox, where:
- ...another guest runs. "host 2".
在“主机 0”上,当我们启动一个新的虚拟机时,64 位版本会出现在选项列表中。
在那里,我们成功构建了一个 64 位 Ubuntu。据我所知没有问题。那是“主机 1”。据我所知,该 VM 作为 64 位实例出现。在其“设置...”窗口中,在“系统”->“加速”下,默认单击“启用 VM-x/AMD-V”框。如果有问题,“启用嵌套分页”也设置为默认“开启”。
但是,现在当我在此虚拟机中运行“VirtualBox”时,所有这些设置都会如上所示出现,但当我尝试从此过程创建虚拟机时,只会出现 32 位选项。因此:64 位(硬件)主机运行 64 位(虚拟)主机,它“拒绝”配置 64 位客户机。
我知道这是一种不寻常的布局,并且从长远来看没有意义,但我希望能够在实际运行之前在虚拟机上测试我的硬件。
是否存在我不知道的开关?
答案1
VirtualBox 不支持嵌套虚拟化,特别是虚拟化硬件加速。
其结果是 L1 客户机无法运行任何具有硬件加速的 VM,并且只能运行 32 位未加速的 VM,因为 64 位 VM 需要硬件加速。
如果您需要嵌套虚拟化,请考虑在主机和 L1 客户机中使用带有 virt-manager 的 KVM。为了获得额外加分,您可以在主机上设置 virt-manager,以通过 SSH 连接到 L1 客户机上的 libvirt,这样它就可以同时管理主机上的 VM 和 L1 客户机中的 VM。