有没有办法将我的 32 位版本的 Ubuntu 升级到 64 位版本?我使用的是 Ubuntu 9.10。
如果没有简单的方法,如果我简单地将我的主目录和/etc
目录复制到新安装中,它会起作用吗?
答案1
不幸的是,与其他操作系统一样,没有“升级路径”可以做到这一点。您几乎肯定需要重新安装。
至于保存您的数据,与任何其他数据一起备份您的主目录是一个好主意,并且可以轻松导入到您的新安装中。
在尝试任何事之前请务必备份您的数据!
答案2
/etc
如果软件包的 64 位编译配置要求略有不同,我不会直接复制,而是复制一份,然后diff
根据新安装的 64 位系统运行该副本。更改的数量可能并不多,因此这样做并手动进行所需的更改希望不会有太大困难。
按照您的建议进行复制/etc
应该没问题 - 出于谨慎,我还是会绕远路。复制是/home
从一个安装迁移到另一个安装时主要关注的方面,但复制很可能是完全安全的。
如果您只是想转到 64 位以使用更多 RAM,而不是因为您特别需要使用 64 位应用程序,那么您只需使用带有 32 位用户空间的 64 位内核即可。Debian 实际上在其 i386 存储库中提供了 a64 内核包,因此可以像 一样简单地完成aptitude install linux-image-2.6-amd64
,但不幸的是 Ubuntu 没有提供,因此您必须编译自己的内核,如果您没有那么多技术经验,这可能不值得花费时间和精力(即这个是很简单,但是仅有的如果您之前编译过自己的内核,并且熟悉该过程)。如果您运行带有 32 位用户空间的 64 位内核,单个应用程序仍然最多只能访问 ~3Gb(在某些情况下只有 ~2Gb),但整个系统(所有进程加上内核的内容,如 IO 缓存和缓冲区)可以使用尽可能多的空间。出于这些目的,每个 VMWare VM 都算作一个应用程序 - 我以这种方式运行我的一个较旧的 VM 主机(VM 总共使用 ~7Gb,具有 64 位内核、32 位用户空间和 32 位 VMWare),因为当我将机器的 CPU 升级到支持 64 位的 CPU 并添加额外的 RAM 时,它比完整的 64 位主机操作系统升级更快 - 我猜类似的 VM 解决方案也会以同样的方式运行。
答案3
上个月我将我的机器从 32 位 10.10 重新安装到 64 位 10.10,没有丢失任何数据。唯一的技巧是在重新安装 64 位 ubuntu 10.10 时选择磁盘大小调整工具,而不是格式化整个磁盘。
答案4
在 64 位内核上运行 32 位用户空间可能会在系统设施介入时引发问题。例如,在 64 位内核上使用 32 位 libalsa 几乎可以正常工作,但会非常不可靠和不稳定,因为在 64 位和 32 位架构下编译时,asound.h 中定义的 ioctl 数据结构的大小和排列方式不同。
因此,在 64 位内核上调用 32 位实用程序时,使用 jackd -d alsa -X alsaraw(或其 jackd2 等效项)将因断言失败而中止。由于缓冲区计数解释错误,标准音频操作将变得非常不可靠。
一般来说,任何内核数据结构都必须以某种方式声明,使得它们的大小在 32 位和 64 位内核之间没有差异,或者 32 位代码必须智能地使用与内核架构相对应的不同结构定义。
总而言之,您最好从头开始重新安装并传输您的主分区/目录。