我有一台安装了 32 位 Linux (ubuntu 11.04) 的计算机 (Intel core i5),我想在其上安装 64 位 Linux 虚拟机,以便我可以在其上测试 64 位命令行应用程序。
答案1
两个都虚拟机和虚拟盒子如果您有 64 位处理器,则可以在 32 位主机系统上运行 64 位虚拟机。对于 VirtualBox,您的处理器必须具有硬件虚拟化支持(AMD-V或者VT-x,在Linux下显示为 和svm
);除了早期的处理器之外,大多数 x86-64 处理器,特别是我认为所有核心 i5 型号都具有此支持。vmx
flags:
/proc/cpuinfo
如果做不到这一点,您可以使用在软件中模拟 x86-64 处理器的虚拟机技术,例如 Qemu。但如果你不需要它,这不是一个好主意:它很慢,占用内存,而且很尴尬。
我的建议是购买 64 位主机或至少 64 位内核。您可以在 x86-64(又名 amd64)内核上运行 32 位应用程序,实际上您可以在 amd64 Linux 内核上运行完整的 32 位 Linux 用户区。
Ubuntu 在其 i386 发行版中不提供 64 位内核(Debian 提供)。您可以从 amd64 发行版中获取内核,应用程序应该可以运行,但是在 natty 下,该软件包不容易安装。
因此,运行 64 位应用程序的最简单方法是并行安装 amd64 Ubuntu。将其安装在单独的分区上,同时保留现有的 32 位安装。在64位系统中,挂载现有分区,然后设置32 位 schroot(请参阅本指南)) 运行 32 位程序。
答案2
Gilles 指出,我错误地认为 VirtualBox 和 VMware 在 32 位主机上支持 64 位客户机。 VirtualBox 可在 Ubuntu 存储库中的软件包中找到virtualbox-ose
。
VirtualBox 的文档提供有关运行 64 位操作系统的以下建议:
VirtualBox 支持 64 位客户操作系统,甚至在 32 位主机操作系统上,前提是满足以下条件:
您需要具有硬件虚拟化支持的 64 位处理器(请参阅“硬件与软件虚拟化”部分)。[您的处理器满足此要求。]
您必须为需要 64 位支持的特定 VM 启用硬件虚拟化; 64 位 VM 不支持软件虚拟化。
如果要在 32 位主机操作系统上使用 64 位来宾支持,还必须为特定 VM 选择 64 位操作系统。由于在 32 位主机上支持 64 位会产生额外的开销,因此 VirtualBox 仅在明确请求时才启用此支持。
在 64 位主机(通常具有硬件虚拟化支持)上,无论设置如何,始终支持 64 位来宾操作系统,因此您只需在来宾中安装 64 位操作系统即可。
警告
在任何主机上,您都应该为要在 64 位模式下使用的虚拟机启用 I/O APIC。对于 64 位 Windows VM 尤其如此。请参阅“高级”选项卡部分。此外,对于 64 位 Windows 客户机,您应该确保 VM 使用 Intel 网络设备,因为 AMD PCNet 卡没有 64 位驱动程序支持;请参阅“虚拟网络硬件”部分。如果您使用 VirtualBox 图形用户界面的“创建 VM”向导(请参阅“创建您的第一个虚拟机”部分),VirtualBox 将自动为每个选定的 64 位操作系统类型使用正确的设置。
如果必须使用软件虚拟化,可以qemu
从 Ubuntu 存储库安装该软件包。有几个 GUI 包可用于控制它(我更喜欢aqemu
),但您也可以从命令行使用它。
或者,考虑运行 64 位版本的 Linux。 Ubuntu x86_64 支持运行 32 位二进制文件,无需任何虚拟化。