理论上来讲,我们从入手云服务器到部署镜像安装软件环境后,只要服务器没有大的故障我们是不会升级镜像的。但是随着时间的推移,旧款镜像有不兼容软件,或者官方停止更新升级。如果我们直接重新格式化安装系统再部署软件和恢复数据是需要比较长的时间。
较为稳定的办法就是直接从旧款的镜像升级。比如在这里老蒋将一台Ubuntu18.04,升级到 Ubuntu20.04,把这个过程记录下来。
这里我们登陆旧款服务器镜像后,直接先升级一下源。
apt update && apt dist-upgrade -y
然后我们需要安装升级管理器。
apt install update-manager-core
这里我们需要检查文件:/etc/update-manager/release-upgrades
需要看到 Prompt=lts,前面没有 # 符号。
do-release-upgrade
执行命令升级。
这里有提示:
root@ubuntu-s-1vcpu-1gb-lon1-01:~# do-release-upgrade
Checking for a new Ubuntu release
You have not rebooted after updating a package which requires a reboot. Please reboot before upgrading.
root@ubuntu-s-1vcpu-1gb-lon1-01:~#
这就是说需要重启服务器(reboot),然后再执行:
o-release-upgrade
这样才可以开始升级。
在升级 Ubuntu20.04过程中,需要有几次回车、输入 y 回车。这里我们一一照做。
包括LXD也需要升级到4.0,这些照做。
升级完毕之后重启服务器。
lsb_release -a
执行命令检查当前的服务器镜像。
root@ubuntu-s-1vcpu-1gb-lon1-01:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
root@ubuntu-s-1vcpu-1gb-lon1-01:~#
可以看到当前已经是20.04版本。这里还有一个问题,如果我们服务器有安全组的,需要放行1022端口。
iptables -I INPUT -p tcp --dport 1022 -j ACCEPT
包括有安全组也需要放行。
最后我们检查服务器中旧数据和软件是否正常。当然在升级之前,我们最好通过快照或者镜像备份服务器,万一升级失败还可以复原。