首先说一下起因吧:因为某小厂只提供14.04和16.04镜像,多次沟通拒绝提供LTS版本。无奈只能通过ssh方法进行升级。

注意事项

  • 与服务器连接成功首先检查DNS设置:
sudo vi /etc/systemd/resolved.conf

  • 修改DNS项为
DNS=114.114.114.114
DNS=.8.8.8
# 保存后重启服务
systemctl restart systemd-resolved
  • EOL版本可能需要修改为old-releases的软件源仓库
# 备份源文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak`
# 替换仓库地址
sudo sed -i -e 's/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g /etc/apt/sources.list
#ARM架构仓库地址
sudo sed -i -e 's/ports.ubuntu.com\/ubuntu-ports/old-releases.ubuntu.com\/ubuntu/g' /etc/apt/sources.list

16.04升级到18.04

  1. 依次输入以下命令,如提示 Y/N请输入 Y 并回车!
# 刷新软件源列表
sudo apt update
# 升级所有可更新的软件包(推荐)
sudo apt upgrade -y
# 完整系统升级(处理依赖关系变更)
sudo apt full-upgrade -y
# 清理旧版本软件包
sudo apt autoremove -y 
# 执行完毕以上命令后重启服务器
reboot

ubuntuupdate 2. 执行升级命令

sudo do-release-upgrade

do-release-upgrade

  • 执行过程中临时启用1022端口,可以通过新的ssh窗口访问
  • 中间过程会询问[yN] 输入y 回车即可
  • 多项选择选择第一项即可 sshd_
  1. 升级完毕后提示重启服务器,切记不要输入 y !!! reboot
  • 通过1022临时ssh端口进入服务器
  • 编辑/etc/ssh/sshd_config,如果不编辑此处升级后无法通过ssh连接服务器!!!
# 编辑/etc/ssh/sshd_config
sudo vi /etc/ssh/sshd_config
# 编辑 
#PermitRootLogin prohibit-password
# 修改为
PermitRootLogin yes
# Esc :wq   reboot

18.04升级到20.04

  1. 同样要先检查DNS配置
sudo vi /etc/systemd/resolved.conf
  1. 升级过程中选择通通 yes
  • lxd配置在升级完毕重启通过fix-broken 修复即可。所以选择ok

20.04升级到22.04

无非是循环以上步骤而已

注意事项

  • 某些版本在执行升级时可能会有提示 lts 此时需要执行以下操作
sudo vi /etc/update-manager/release-upgrades
# 将文件中的Prompt=lts修改为Prompt=normal
Prompt=normal

prompt

截止2025.04,ubuntu new release 24.10