可以从32位升级到64位安装吗?

根据标题,我想知道在成功安装32位版本并完成软件安装后,是否可以更新到64位版本。
我知道如何分区(实际上,其中一个解决方案是将“/”,“/etc”,“/home”,“/var/www”和“/opt”设置为单独的分区),我也知道干净安装比脏安装要好得多,但我想知道如何可能做到这一点。

2这是同一个问题,但不应被标记为重复,因为这里还有其他的备选答案:如何在不丢失设置的情况下从x86升级到x64? - rubo77
类似的问题在U&L上有:http://unix.stackexchange.com/q/244980/52956 - Wilf
10个回答

你会发现干净的安装比任何其他奇怪、模糊、不支持的方法更少麻烦。
分区配置文件、主目录等的建议可能是最好的想法,也可以在新安装上安装与其他安装相同的软件包。
另一方面,你请求的是可能的,在Debian系统的一些指南中有一些小建议,但请记住,“这真的是针对专业级系统管理员”,“这个过程在各个方面都是一个坏主意。如果它吃掉了你的长子,请别来找我哭诉...(祝你好运)”

3+1 给你。不适合胆小的人...我本来打算建议备份所有你关心的配置和数据文件(甚至你的apt日志),然后在apt sources.list中进行查找和替换,将其指向64位版本。然后我阅读了提到的教程,很快就放弃了那个想法... - gWaldo
2如果我没有长子,这是否意味着对我来说手术更安全?开玩笑的,问题是:如果你刚刚解决了32位的问题,为什么要经历地狱般的过程,只为了节省备份/恢复数据和重新安装的时间,最终这种方法并不更快。更快的方式是备份和重新安装。并且在长期来看会减少问题。 - Dmitriy Likhten
非常感谢:最终我成功备份了所有的数据,并重新分区并重装了系统。不过,现在需要一些麻烦来恢复数据库、网页服务器和其他一些服务。 - dag729
相信我,备份/恢复确实很麻烦,但比起其他选择来说还是少一些麻烦。只有在紧急情况下才会进行32位到64位的转换。即使是我们工作中的系统管理员也不会这样做,他们会备份、清除、安装,更加干净/安全。 - Dmitriy Likhten
我成功地使用了链接的指南从32位升级到64位(在Ubuntu 14.04上)。作为一名有20年Debian/Ubuntu经验的专业系统管理员,我可以说这并不是一项轻松的任务。我花了整整一天的时间来完成,但相比于重新配置、定制和恢复工作站上安装的所有配置、数据库等所需的努力,这个时间还算是可接受的。需要强调的是,这是我的开发工作站。如果在生产服务器上尝试这样的操作,我认为是非常冒险的。 - jdhildeb

我将施放复活术,因为这个帖子是“将Ubuntu升级到64位”的顶级搜索结果之一,而所选择的答案虽然可以说是明智之选,但并不是完整的故事。
事实上,从32位升级到64位是可能的。你是可以做到的。
我刚刚完成了这样的升级。
话虽如此,“可以”和“应该”看起来完全不同,这也适用于升级和全新安装。你能做到吗?可以。你应该这么做吗?嗯……
在不让我的系统爆炸的情况下,从32位升级到64位花费了我大部分时间。包括手动修复aptitude中600多个损坏的软件包,因为自动解析器开始循环,显然是由于已安装软件包所需的PERL:i386与您尝试安装的软件包所需的PERL:amd64不兼容。
这是在我手动安装了一堆软件包之后发生的,其中包括正确版本的PERL,以修复apt的问题:你知道,apt-get -f install(这是获取一个基本工作的64位系统所必需的)会卸载PERL32以安装PERL64...然后愉快地继续尝试移除1234个其他软件包,在最后才真正重新安装PERL。不用说,当apt系统的相当大一部分(还有其他很多东西)依赖于一个正常工作的PERL时,这不是一个好主意。
重新安装完全是从控制台进行的(当然是使用aptitude),因为控制台基本上只需要一个正常工作的bash(对于aptitude来说,还需要一个正常工作的curses,但如果你尝试这样做,curses将会非常丰富,你可以打赌),而X则需要太多的东西,不能指望它在你对系统进行开心手术时保持正常工作。
话虽如此,下面的Debian文章解释了如何进行系统交叉升级:

https://wiki.debian.org/CrossGrading

这篇文章与原始接受的答案中描述的不同,因为在此期间事情发生了变化,大多数是好的。

基本情况如下:

 dpkg --add-architecture amd64

 apt-get update

 apt-get install linux-image-amd64:amd64

 reboot

 apt-get clean

 apt-get --download-only install dpkg:amd64 tar:amd64 apt:amd64

 dpkg --install /var/cache/apt/archives/*_amd64.deb

在哪个时候你将能够做到这一点:
dpkg --print-architecture 

导致以下行:
amd64

耶!Ubuntu认为它是一个合适的64位系统。多可爱啊。当然,你知道得更好。
现在你可以运行:
apt-get update

这将下载所有64位软件包的列表,您需要使用它们来完成系统的交叉升级。

此时,您的系统看起来就像什么都没有发生一样,除了您无法安装任何东西。您现在有多个i386软件包,它们没有实际的多架构等效版本,因此您将被困在各种技术上“不可用”的依赖关系中。您已经安装了它们,所以您的系统可以运行,但在这个阶段...我不会比抛出它更相信apt。

该文章认识到了修复的必要性,并建议您这样做:

 apt-get -f install

这将导致apt尝试修复您刚刚制造的混乱。相信我,您刚刚制造了一场混乱。

此过程的一个小问题是,它将导致apt系统(和其他关键子系统)在部分卸载,在剩余的过程中引发错误(你不说),并让您陷入困境。

幸运的是,还有救济措施。您可以通过以下方式安装现在缺失的软件包:

dpkg -i/var/cache/apt/archives/(package)*amd64.deb

请注意,至少对我来说,网络在某些时候停止工作了。这是因为apt删除了一些必要的软件包,这些软件包对于保持网络正常工作是必需的(比如你的dhcp客户端)。
然后,apt愉快地告诉我它需要下载一些额外的软件包。而没有一个可用的网络。
如果这听起来像你已经完蛋了...那是因为你确实完蛋了。
除非你有一个有线网络(你的WiFi软件包已经被卸载了,而且WiFi的配置更加复杂),知道它的配置信息,并且能够使用ifconfig、route等命令。
只需不断尝试apt-get -f install,直到没有错误为止。
在apt满意你系统的状态之后,你可以运行aptitude并手动修复你会发现的600个损坏的软件包。显然apt和aptitude对于一个正常工作的系统有不同的理解。别问我为什么。
另外,正如我所提到的,如果您尝试让aptitude解析器自动完成其工作,它会进入一个无限循环。真的不能怪它,它的设计初衷是在一个正常工作的系统上帮助用户添加或删除一些软件包,而不是修复这种令人发指的问题。
这部分花了我几天时间逐步修复,使用另一个系统偶尔上网,以确保我不会意外地重新格式化家里的狗。
如果所有这些还没有让您灰心,注意这是我第二次尝试进行实时升级。
第一次尝试以mkfs结束。
暗示,非常明显的暗示。或者更确切地说,非常明显的mkfs提示。
但最终,它实际上是成功的。
系统正在运行,大多数使用64位软件包(有几个例外,我以后会修复),可以运行需要64位安装的应用程序。
这是可能的。
如果由于某种原因这是您唯一的选择,您可以按照上述过程操作-如果您具备所需的领域知识。
如果你不知道“sync”和“rsync”的区别,如果你对insmod不熟悉,如果你不知道如何使用“ifconfig”,如果你通常更喜欢aptitude而不是那个我现在想不起名字的图形安装程序...只需备份你的数据并重新安装系统。
这样做会少很多麻烦,节省大量时间,并且会给你一个全新的安装,没有任何意外残留物可能在11个月后给你带来麻烦。
如果你已经备份了你不想丢失的东西,并且别无选择 - 或者只是喜欢通过撞墙来学习(尤其是撞头)...嗯,你可以试试。
说不定还能奏效。

我喜欢这个问题,七年过去了,它变得越来越好。现在已经进入2018年,我也想将我的系统从32位转换为64位。Debian有一篇很棒的维基文章在这里,基本上是一个关于在运行中的系统上转换架构的HOWTO指南。我遇到的一个问题是,尽管我添加了两种架构并运行了apt-get update命令,但某些软件包对于其中一种架构根本没有显示出来。 - gcode

这可能是一个更合理的做法,一旦多架构规范得到实施。https://wiki.ubuntu.com/MultiarchSpec - 目前推迟到11.04,但请记住它已经推迟了大约6个版本。话虽如此,10.10确实取得了实际进展,所以也许这次会发生。
在那之前,不要费心了。备份您的数据,重新分区(如果需要),然后重新安装。

1迫不及待地期待着多架构的实施! - dag729
我相信11.10现在确实使用了多架构技术。 - Knowledge Cube
假设我是一个时间旅行者,现在距离你的回答大约5年,现在是不是"更合理"了?还是仍然需要重新安装? - Camilo Martin
1现在至少可以强制手动安装来自其他架构的软件包,而不会破坏apt。但是,不,你应该重新安装。 - Scott Ritchie

不,你不能从32位升级到64位。必须进行干净的安装。
在进行之前,请确保您的系统支持64位操作系统,并检查Ubuntu 64的最低要求。您可以在这里进行查看。
32位和64位是指计算机的CPU处理信息的方式。64位版本比32位系统更好地处理大量的RAM。如果您正在运行32位版本的Ubuntu,则只能升级到另一个32位版本的Ubuntu。同样,如果您正在运行64位版本的Ubuntu,则只能升级到另一个64位版本的Ubuntu。
如果您想从32位Ubuntu迁移到64位Ubuntu,您需要备份文件,并进行64位Ubuntu的干净安装。

你现在可以通过最新的安装程序相对容易地完成这个操作(至少从我刚使用过的13.10版本开始)。进入64位镜像DVD(或者USB驱动器等),选择第一个选项重新安装,保留你的个人文件。即使你没有独立的/home分区,这也是可行的。
这将重新安装大部分系统,包括应用程序,但它会在重装之前列出你已安装的软件包,并通过仓库重新安装它们,所以只要软件包在当时有64位版本可用,你重启后就应该能得到大部分应用程序。根据我的经验,一些软件包没有被安装-主要是那些通过第三方仓库安装的软件包,比如Google Chrome,但手动安装这些软件包不会花费太多时间。

你能分享一个关于如何做这个/注意事项的指南吗? - isomorphismes
我在14.04 LTS上检查了一下,不幸的是,这个已经不能再做了。有关详细信息,请参阅我下面的回答。 - filofel

升级Ubuntu 32位到64位是可能的,但会有很多不需要的文件,需要手动清理。事实上,这是个“头疼”的问题。
我绝对不会推荐给新手。
无论你做什么,首先备份重要数据。然后进行操作系统的研究。
首先尝试64位的Live CD。如果可以正常运行,建议进行全新安装。
还有一些软件仍然是32位的。所以在64位操作系统上安装32位软件需要进行一些反向处理...这也是个麻烦事。
花点时间思考一下:你的需求是什么,你打算做什么,在64位操作系统上制定下一个计划/工作。

1“在64位操作系统上安装32位软件,我们需要进行一些向后兼容处理”是什么意思?x86_64应该是x86_32的超集,所以,事情应该可以正常工作,不是吗? - Camilo Martin

你的操作系统仍然是32位的,因为你是从32位升级过来的 - 请参考评论中的答案获取更多信息。
顺便问一下,32位的Windows和64位的Ubuntu可以共存吗?
当然可以 - 这被称为双启动 - 在登录时你可以选择使用其中之一。
下载并刻录64位的iso文件,然后用它启动,它会提示你选择不同的选项 - 你应该选择“与现有系统并存”的选项。

https://help.ubuntu.com/community/GraphicalInstall


我刚刚尝试了上面Nick(Oct 19'13)建议的解决方案:使用Ubuntu 64位Live CD进行64位重新安装。
我使用的是Ubuntu 14.04.4 Live CD。但是,如果第一个选项确实被称为"重新安装",它更准确地显示为:

Erase Ubuntu 14.04.4 LTS and reinstall  
Warning: This will delete all your Ubuntu 14.04 programs, documents,
photos, music, and all other files.  

安装程序在Live CD上提供的另外两个选项是:
  • 并行安装(双系统选项)
  • 擦除磁盘并安装Ubuntu
为了确保,我尝试使用一个测试磁盘,事实上,“重新安装”选项的第一步就是重新格式化现有的ext4分区。没有运气。
所以我担心Nick建议的“原地升级到64位”的解决方案在14.04中已经不存在了。
顺便说一下,Canonical,我几乎看不出安装程序同时具有所谓的“重新安装”选项和“擦除磁盘并安装”选项的意义。两者似乎做的事情差不多。

太糟糕了,因为这样一个原地升级到64位的选项本来可以非常好!


你需要使用64位版本的Ubuntu进行全新安装。只要32位的Windows和64位的Ubuntu不共享同一块硬盘或分区,就可以实现这种组合,原因显而易见。请参考文档了解如何进行双系统启动。

https://help.ubuntu.com/community/WindowsDualBoot

重要的是,您安装的计算机上的CPU支持64位指令集(现代大多数CPU应该支持)。

2你甚至都懒得读问题吗? - dag729