![如何在 centos 6 上将 32 位转换为 64 位 arch?](https://linux22.com/image/138248/%E5%A6%82%E4%BD%95%E5%9C%A8%20centos%206%20%E4%B8%8A%E5%B0%86%2032%20%E4%BD%8D%E8%BD%AC%E6%8D%A2%E4%B8%BA%2064%20%E4%BD%8D%20arch%EF%BC%9F.png)
目前我在VM中安装了Centos 6.9 32位操作系统,我想在同一台机器上转换为64位架构。
我在互联网上查了很多东西,但没有找到任何相同的论坛,特别是针对 CentOS 的论坛。
设置64位arch的方法有哪些?
注意:无法在 Debian/ubuntu 上转换
答案1
我在 Debian 上进行了 32 位到 64 位的转换,这是我认为您实际上可以希望使用的唯一发行版(由于非常严格的 Debian apt 打包规则和极其强大的 apt 工具),甚至在那里,甚至尽管从技术上来说它是有效的,因为我没有重新安装操作系统,但它花费了如此长的时间,并且需要如此多的修复,以至于我的下一个 32 到 64 转换我只是复制了所有 /etc 文件进行备份,然后创建了一个过滤的包列表(过滤掉lib文件,一般是程序的依赖项)。接下来我对新的 64 位系统进行了基本安装,然后安装了软件包列表。然后,我在需要更新配置和各种其他文件的地方使用了备份,但请注意,您不想盲目地重复使用 32 位配置,因为您不知道 64 位中发生了什么变化或可能有所不同。这两种方法都很乏味,但我永远不会再进行 32 到 64 位的交叉升级,尽管作为一个测试来确认它可以完成是很有趣的。但即使在那里,大多数配置最终都需要被清除,所以它实际上与从包列表中重建一个全新的安装并没有太大的不同,这就是我进行第二次跨级的方式。
对于 rpm/CentOS,我想说,您达到我上面引用的最佳情况的几率非常接近于零,在这种情况下,您在技术上保留安装,同时交叉升级到 64 位,并且您之后肯定会后悔就你花费的时间而言。
我不同意有人说如果 32 是你开始使用的,它可能仍然没问题,这不是我的经验,内核中的 PAE (> 4gB) ram 支持过去和现在都变得越来越有问题,所以你被限制在 4gB 稳定ram,虽然我用PAE跑的比较多,但是它的稳定性问题越来越严重,因为在现实世界中基本上几乎没有人使用它,所以一年来内核支持中的bug越来越严重。此外,某些应用程序不再获得 32 位支持,而且这种情况也逐年变得更糟,这就是为什么我最终放弃了我的主要 32 位系统。
顺便说一句,你找不到 CentOS 转换的任何内容的原因是 rpm/CentOS 无法处理它,特别是在那个时代。你可以找到一些不错的 Debian 操作指南,但正如我发现的那样,即使这些指南也相当乐观,而且非常挑剔和复杂,但理论上是可能的,因为 apt 非常强大。
答案2
最简单的解决方案是全新安装。
如果您不想这样做,请启动生命系统并安装 64 位程序。您还可以从 64 位内核开始。 64 位内核应该运行 32 位二进制文件,并且您可以保留多个内核,以便在它不起作用时可以切换回来。
还要考虑一下这种好处是否值得为此付出代价。 64 位 x86 已经面世约 15 年了。如果您在新机器时没有安装 64 位,则可能不需要它。
答案3
CentOS 上从 32 位直接转换/迁移到纯 64 位机器/VM 是行不通的。
主要障碍是 rpm/yum 包数据库的内部结构依赖于整数。它们的大小不同,并且两种结构之间不可互换。
附言。我将 40 台 Debian 机器从 32 位热迁移到 64 位。这不是一个小壮举,但是 Debian 仅使用(或当时使用)内务文本文件。
PS2。我同意@Lizardx 的观点,保留 32 位虚拟机是有成本的。除了他提到的之外,拥有同质基础设施是金科玉律,而使用 64 位虚拟机管理程序运行 32 位虚拟机可能会降低性能。