如何将远程服务器从8.10升级到更高版本?

我有一台远程服务器,仍在运行Ubuntu 9.04,我只能通过SSH访问。
如果我运行apt-get update命令,会出现一堆404错误的软件包。我在Server Fault上提了几个问题,但没有得到解决。以下是我已经做过的事情:
  1. 运行apt-get update,返回如下错误:

    Err http://gb.archive.ubuntu.com intrepid/main Packages 404 Not Found
    [其他许多软件包也是同样的错误]

  2. 运行do-release-upgrade,返回:

    检查新的Ubuntu版本
    升级工具签名失败
    升级工具失败
    下载完成
    正在解压缩'jaunty.tar.gz'
    解压缩失败
    升级过程中出现了问题。可能是网络或服务器出现了问题。

  3. 编辑/etc/update-manager/release-upgrades,将Prompt=normal更改为Prompt=lts(建议参考此处)。更改后再次运行do-release-upgrade,返回:

    检查新的Ubuntu版本
    在meta-release文件中未找到当前版本
    没有发现新版本

  4. (更新) 我已经按照这个问题的建议更改了/etc/apt/sources.list,将其从intrepid更改为jaunty。然而,该版本也已经不在线了。那里的评论说我必须按照时间顺序升级...

所以基本上,看起来我无法升级,因为我的当前发行版已经过时并且不再支持。有没有办法直接升级到10.x或11.x?请注意,由于这是一个服务器,我只能通过命令行访问

更新 24/11:我成功从8.10升级到9.04。Ubuntu的EOL Upgrades页面提供了一些apt源的备用URL。我还需要更新 /var/lib/update-manager/meta-release 将其指向 old-releases 服务器。

然而,现在我无法从9.04升级到9.10。运行 do-release-upgrade 产生了与上述问题#2相同的错误,只是它显示“Failed to fetch”(meta-release中的URL是有效的)。Ubuntu Jaunty 升级页面表示必须使用CD镜像进行升级。我按照这里的说明操作,但没有成功:

发生致命错误 请将此错误报告为错误,并包含以下文件:/var/log/dist-upgrade/main.log和/var/log/dist-upgrade/apt.log在您的报告中。升级已中止。您的原始sources.list已保存在/etc/apt/sources.list.distUpgrade。
Traceback (most recent call last): File "/tmp/tmp.JLhTwVUugb/karmic", line 7, in sys.exit(main()) File "/tmp/tmp.JLhTwVUugb/DistUpgradeMain.py", line 132, in main if app.run(): File "/tmp/tmp.JLhTwVUugb/DistUpgradeController.py", line 1590, in run return self.fullUpgrade() File "/tmp/tmp.JLhTwVUugb/DistUpgradeController.py", line 1506, in fullUpgrade if not self.doPostInitialUpdate(): File "/tmp/tmp.JLhTwVUugb/DistUpgradeController.py", line 762, in doPostInitialUpdate self.quirks.run("PostInitialUpdate") File "/tmp/tmp.JLhTwVUugb/DistUpgradeQuirks.py", line 83, in run for plugin in self.plugin_manager.get_plugins(condition): File "/tmp/tmp.JLhTwVUugb/computerjanitor/plugin.py", line 167, in get_plugins filenames = self.get_plugin_files() File "/tmp/tmp.JLhTwVUugb/computerjanitor/plugin.py", line 120, in get_plugin_files basenames = [x for x in os.listdir(dirname) OSError: [Errno 2] No such file or directory: './plugins'

虽然确实建议报告这个错误,但由于这是一个旧的不受支持的版本,我不知道是否值得去做。然而,有没有办法绕过这个问题,从9.04升级到9.10(然后最终升级到10.04 LTS)。


1可能是重复的问题:从Ubuntu 8.10升级到10.04的方法 - qbi
@qbi那个问题并不能解决问题,因为Jaunty存储库不再可用。该页面上的评论建议我必须按顺序安装升级... - DisgruntledGoat
1如果服务器在封闭网络上,最好不要碰它。它的工作做得很好 :) 如果你想使用LTS版本,请备份数据并进行全新安装。无论如何,都不要试图跳过升级版本,否则只会给你带来严重的头痛。 - fossfreedom
@fossfreedom,问题是,我在使用一些软件(webmin)时遇到了一些问题,这些软件依赖于我无法安装的一些东西。 - DisgruntledGoat
好的...那么重新安装仍然是我的建议。对于服务器,我建议使用LTS版本,因为它提供了5年的支持,而不是18个月...如果你能在问题中解释一下服务器上有哪些软件,也许有人可以指导你如何将数据从一个软件版本迁移到LTS版本。 - fossfreedom
在你最后一个链接中,你使用了do-release-upgrade命令,然而对于服务器来说,建议是下载备用光盘并执行sudo ./cdromupgrade --frontend=DistUpgradeViewText命令。你已经下载了备用光盘吗?推荐的服务器升级方法会有所不同吗? - fossfreedom
@foss 我的意思是我先运行了 do-release-upgrade,但当那不起作用时,我随后按照链接的说明运行了你提到的命令。 - DisgruntledGoat
3个回答

从'Ubuntu Server 9.04' (Jaunty) 升级到 'Ubuntu Server 10.04 LTS' (Lucid)。

基于:

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

http://echenh.blogspot.com/2010/04/how-to-upgrade-ubuntu-server-904-to-910.html

步骤1:安装update-manager-core

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install update-manager-core

第二步:从9.04(Jaunty)升级到9.10(Karmic)
编辑/etc/apt/sources.list,将"jaunty"替换为"karmic"。
sudo apt-get update
sudo do-release-upgrade

第三步:9.10(Karmic)升级到10.04 LTS(Lucid)

编辑/etc/update-manager/release-upgrades文件,并设置Prompt=lts

文件应至少包含以下内容:

[DEFAULT]
Prompt=lts

编辑/etc/apt/sources.list文件,将"karmic"替换为"lucid"。
sudo apt-get update
sudo do-release-upgrade

附加说明:

检查服务器版本:(每个阶段)

lsb_release -a

1谢谢,这几乎完全正常!唯一额外的事情是当从“karmic”切换到“lucid”时,我需要将sources.list改回使用gb.archive.ubuntu.com,而不是old-releases.ubuntu.com - DisgruntledGoat

下载一张光盘,然后进行升级安装。但是务必先备份数据!
我建议升级到10.04(Lucid Lynx):
1. 这是一个更接近的升级版本,不太可能出现问题。 2. 这是一个长期支持版本,不经常更新的服务器应该使用长期支持版本。
下一个长期支持版本将是12.04,但10.04在那之后仍将继续获得更新支持一年。
(编辑以更正版本号 - 愚蠢的错误 - 感谢mikewhatever)

1Lucid Lynx 是 10.04 版本。:~) - mikewhatever
1这是一个Ubuntu服务器,只能通过命令行访问,所以光盘不是一个选择! - DisgruntledGoat
你能通过USB连接一个CD驱动器吗?或者插入一个带有10.04.3 LTS的USB闪存吗? - david6
是的,我相信应该和ubuntu.com上当前版本的安装说明一样。能否从USB启动取决于您特定机器上的BIOS/固件/其他设置。 - ams
@david6 不好意思,我没有机器的访问权限,只能通过SSH进行操作。我以为我已经表达清楚了,抱歉。另外,正如更新中所提到的,我尝试通过挂载ISO镜像来运行CD安装程序,但是没有成功。 - DisgruntledGoat
哦,升级一个远程服务器?那确实让事情变得复杂了... :( - ams

我曾经遇到过同样的问题,只需进行一些微小的调整,便可以像往常一样将我的Jaunty(9.04)服务器和桌面安装升级到最新的LTS。
我已经在{{link1:如何顺利升级Jaunty到Karmic(即使EOL)在另一个答案中}}中提供了所有详细信息。