Linux:64位、32位混合+虚拟化?

Linux:64位、32位混合+虚拟化?

我在笔记本电脑上双启动 Windows 7 和 Ubuntu。笔记本电脑的 CPU 不支持硬件虚拟化。我使用 VMWare Player 允许在 Windows 中使用我的 Linux 分区(与在裸机上运行的分区相同)。如果没有硬件虚拟化支持,这仅适用于 32 位客户机,因此我安装了 32 位 Ubuntu。

有时,我需要在 Linux 下运行 64 位进程,并且愿意重新启动。我想避免维护 3 个单独的分区(用于裸机的 64 位 Linux、用于虚拟化的 32 位 Linux、Windows 7)。但是,大多数时候 32 位 Linux 对我来说就足够了。

是否有任何合理简单的方法可以在同一个 Linux 安装中同时安装 64 位和 32 位内核,让两个内核都出现在 Grub 中,将大部分用户空间保留为 32 位(库和开发工具除外,在这种情况下,我会保留两个版本安装)并允许 64 位进程在启动裸机上的 64 位内核时运行?理想情况下,即使在运行 64 位内核时,我也希望将默认软件包存储库和任何其他相关默认设置保留为 32 位。

如果这不可行,是否有其他解决方案不需要我维护两个 Linux 分区或升级我的硬件?

编辑:我尝试在 32 位 Ubuntu 上安装 64 位内核,效果出奇地好。但是,考虑到 Apt 似乎仍处于 32 位模式,我希望以某种合理/简单的方式安装 64 位开发工具和动态库。

答案1

Ubuntu 提供了一小部分 64 位库,首先是libc6-amd64 安装 libc6-amd64包。遗憾的是,他们不提供 64 位内核,而这是执行 64 位二进制文​​件所必需的。

您可以尝试从 amd64 发行版安装内核,例如Linux-镜像-2.6.32-26-服务器。我认为软件包管理工具不会让您无缝安装软件包,但您可以下载.deb并使用 进行安装dpkg -i --force-architecture ….deb。无论如何,软件包名称不能与您安装的 32 位内核的名称相同。您也可以完全不经过软件包管理来安装内核:使用 解压.debdpkg-deb将文件放到位并运行update-grub(如果该说明不够精确,我不建议使用此选项)。请记住在安全更新发布时再次执行此安装(通常所有内核映像都会同时更新,因此每次在常规渠道上看到 32 位内核更新时,请更新您的 64 位内核)。

Debian 确实提供了一个i386 架构上的 amd64 内核。因此,如果您愿意接受较少的桌面集成和较慢的发布周期,您可以切换到 Debian。

答案2

如果您仍需要一些 64 位软件包,则可以使用 debootstrap 准备 64 位安装并 (s)chroot 到它。它不需要是完整安装或单独的分区,只需您使用的构建工具即可。

pbuilder(或 sbuild)特别适用于构建 debian 软件包。它准备了极简环境,以便仅使用软件包明确需要的依赖项即可构建软件包。

相关内容