首先说一下起因吧:因为某小厂只提供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
依次输入以下命令,如提示 Y/N请输入 Y 并回车!
# 刷新软件源列表 sudo apt update # 升级所有可更新的软件包(推荐) sudo apt upgrade -y # 完整系统升级(处理依赖关系变更) sudo apt full-upgrade -y # 清理旧版本软件包 sudo apt autoremove -y # 执行完毕以上命令后重启服务器 reboot
执行升级命令
sudo do-release-upgrade
- 执行过程中临时启用1022端口,可以通过新的ssh窗口访问
- 中间过程会询问[yN] 输入y 回车即可
- 多项选择选择第一项即可
- 升级完毕后提示重启服务器,切记不要输入 y !!!
- 通过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
同样要先检查DNS配置
sudo vi /etc/systemd/resolved.conf
- 升级过程中选择通通 yes
- lxd配置在升级完毕重启通过fix-broken 修复即可。所以选择ok
20.04升级到22.04
无非是循环以上步骤而已
注意事项
某些版本在执行升级时可能会有提示
此时需要执行以下操作sudo vi /etc/update-manager/release-upgrades # 将文件中的Prompt=lts修改为Prompt=normal Prompt=normal