首先说一下起因吧:因为某小厂只提供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

    ubuntuupdate

  • 执行升级命令

    sudo do-release-upgrade

    do-release-upgrade

  • 执行过程中临时启用1022端口,可以通过新的ssh窗口访问
  • 中间过程会询问[yN] 输入y 回车即可
  • 多项选择选择第一项即可
    sshd_
  • 升级完毕后提示重启服务器,切记不要输入 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
  2. 升级过程中选择通通 yes
  3. 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

最后修改:2025 年 04 月 29 日
如果觉得我的文章对你有用,请随意赞赏