Ubuntu 22.04 升级到 Ubuntu 24.04 全流程指南

📌 1. 前言

Ubuntu 24.04 是最新的 LTS 版本,带来了内核更新、性能优化以及更强的安全性。本指南详细记录了从 Ubuntu 22.04 升级到 24.04 的完整过程,包括 升级前的准备、遇到的问题及如何选择最佳选项,避免升级失败或系统损坏。


🛠 2. 升级前的准备

✅ 2.1 备份重要数据

建议对 整个系统或重要目录 进行备份,以防升级失败后数据丢失。

备份整个系统:

sudo tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system /

仅备份 /home 目录(用户数据):

sudo rsync -aAXv /home /mnt/backup/

如果是 VMwareParallels Desktop 也可以直接备份文件夹。
如果是服务器,建议 使用快照(LVM、ZFS 或 VMware 快照)。


✅ 2.2 更新现有软件包

sudo apt update && sudo apt upgrade -y
sudo apt autoremove -y

然后,确保 update-manager-core 已安装:

sudo apt install update-manager-core -y

是否要重启系统?

  • 如果 apt upgrade 更新了内核,建议 重启
    sudo reboot
    
  • 如果只是普通的软件包更新,则 可以不重启,直接进入升级流程。

🚀 3. 执行 Ubuntu 版本升级

Ubuntu 提供了 do-release-upgrade 命令进行版本升级。

✅ 3.1 检查是否可以升级

sudo do-release-upgrade -c

如果输出:

Checking for a new Ubuntu release
No new release found

说明官方还未正式推送升级,你可以尝试强制升级

sudo do-release-upgrade -d

其中 -d 选项用于升级到最新的开发版(如果 24.04 仍是 Beta 版)。


✅ 3.2 开始升级

运行:

sudo do-release-upgrade

👉 升级过程中系统可能会遇到以下选项:

3.2.1是否自动重启服务?

建议选择 Yes,让系统自动重启受影响的服务。

选项说明适用场景
选择 “是”(自动重启服务)适用于 Ubuntu 桌面版或无关键服务器应用的情况。
选择“是”可以减少手动操作,使升级更加顺畅。
个人使用、开发环境
选择 “否”(不自动重启服务)如果系统运行关键服务(如数据库、Web 服务器等),建议选择“否”。
这样可以在升级完成后手动重启,避免因服务重启导致中断。
生产环境、服务器

在这里插入图片描述

3.2.2配置文件冲突(如 sshd_config)

选择建议

情况选项说明
如果你以前修改过 sshd_config,并且不想丢失修改(推荐)选择 “keep the local version currently installed”(保持当前已安装的本地版本)这样可以保留你的自定义 SSH 设置,避免覆盖导致 SSH 连接中断。
如果你不确定是否要修改 sshd_config,或者想要默认的新配置选择 “show the differences between the versions”“show a side-by-side difference”查看新旧版本的不同,评估新版本是否有重要变更,再决定保留本地版本还是更新。
如果你想要使用官方默认的 sshd_config选择 “install the package maintainer’s version”这样会 覆盖你现有的 SSH 设置,可能影响 SSH 访问权限等,需要手动重新配置。

推荐操作

建议说明
如果是远程连接(如 SSH 访问云台虚拟机)强烈建议 保持本地版本,以免导致 SSH 连接问题。
如果不确定或想对比版本可以选择 “show the differences” 先查看变更内容。

在这里插入图片描述


⚠️ 4. 升级过程中遇到的问题及解决方案

🛑 4.1 gnome-remote-desktop 安装失败

在这里插入图片描述

错误信息:

Failed to check if group gnome-remote-desktop already exists: Connection refused

解决方案:
系统升级成功以后,手动重新安装:

sudo apt install --reinstall gnome-remote-desktop

如果还是报错,那么手动创建用户组:

sudo groupadd -r gnome-remote-desktop
sudo useradd -r -g gnome-remote-desktop -s /usr/sbin/nologin gnome-remote-desktop
sudo apt install --reinstall gnome-remote-desktop

然后重启:

sudo reboot

🛑 4.2 fwupd.conf 配置文件冲突

在这里插入图片描述

错误信息:

The configuration file /etc/fwupd/fwupd.conf has changed.
Do you want to install the package maintainer’s version?

解决方案:

  • 如果不清楚该文件的用途,推荐选择 “D”,对比以后合并。
  • 如果对 fwupd.conf 做了定制(如固件更新策略),可以保留当前版本。

🛑 4.3 systemctl restart dbus 造成黑屏

执行 sudo systemctl restart dbus 后,整个系统黑屏,鼠标键盘失效。

解决方案:

  1. 切换到 TTY 终端(Ctrl + Alt + F3)
  2. 重新启动 GNOME 桌面
    sudo systemctl restart gdm
    
  3. 如果仍然黑屏,执行系统重启
    sudo reboot
    

🔍 5. 检查升级是否成功

✅ 5.1 确认 Ubuntu 版本

lsb_release -a

正确输出示例:

Ubuntu 24.04 LTS

✅ 5.2 检查内核版本

uname -r

示例输出:

6.8.0-55-generic

✅ 5.3 检查系统服务是否正常

systemctl --failed

如果输出:

0 loaded units listed.

说明所有系统服务正常运行。


🎯 6. 总结

🔹 这次升级的重点

  1. 系统升级需要备份,避免数据丢失。
  2. 遇到 libc6sshd_config 等配置文件冲突时,选择最适合自己的方式
  3. 升级完成后,检查 Ubuntu 版本、内核版本以及服务状态

🔹 遇到的主要问题

SSH 配置冲突 → 选择保留或覆盖
系统服务需要重启 → 选择 Yes
gnome-remote-desktop 组权限错误 → 手动创建

至此,Ubuntu 22.04 到 24.04 的升级顺利完成!🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每日学点HarmonyOS Next知识】Web跨域资源、Web长按菜单、Web拦截请求、禁止录屏、Base64图片宽高

1、HarmonyOS Web组件本地资源跨域问题? 关于资源跨域问题的解决,可以参考以下官网文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/web-cross-origin-V5 方法一 为了使Web组件能够成功访问跨域资源,开…

数据库查问题常用OS命令汇总

1、内存使用情况查看 top //查看活跃进程占用情况 free -mh //查看操作系统当前可用内存 2、cpu使用情况 lscpu //查看os cpu情况 sar -u -f sar文件名 -s hh:mm:ss -e hh:mm:ss //查看对应日期的历史cpu情况 top //查看当前活跃进程使用cpu情况 3、io情况 iostat …

nlp培训重点-5

1. LoRA微调 loader: # -*- coding: utf-8 -*-import json import re import os import torch import numpy as np from torch.utils.data import Dataset, DataLoader from transformers import BertTokenizer """ 数据加载 """cl…

CI/CD—Jenkins配置Maven+GitLab自动构建jar包

一、安装Maven插件通过Maven构建项目 1、在Jenkins上安装Maven Integration plugin插件 2、创建一个maven项目 2.1、填写构建的名称和描述等 2.2、填写连接git的url 报错:无法连接仓库:Error performing git command: git ls-remote -h http://192.168.…

ngx_regex_create_conf

ngx_regex_create_conf 定义在 src/core/ngx_regex.c static void * ngx_regex_create_conf(ngx_cycle_t *cycle) {ngx_regex_conf_t *rcf;ngx_pool_cleanup_t *cln;rcf ngx_pcalloc(cycle->pool, sizeof(ngx_regex_conf_t));if (rcf NULL) {return NULL;}rcf->p…

【数据结构】初识集合框架及背后的数据结构(简单了解)

目录 前言 如何学好数据结构 1. 什么是集合框架 2. 集合框架的重要性 3. 背后所涉及的数据结构以及算法 3.1 什么是数据结构 3.2 容器背后对应的数据结构 3.3 相关java知识 3.4 什么是算法 3.5 基本关系说明(重要,简单了解) 前言 …

P9242 [蓝桥杯 2023 省 B] 接龙数列--DP【巧妙解决接龙问题】

P9242 [蓝桥杯 2023 省 B] 接龙数列--DP 题目 解析什么时候该用 DP?动态规划 vs 其他方法代码 题目 解析 这题没思路,压根没想到DP 😦 看了大神的题解,利用dp记录每一个数结尾的长度,最后再用N-dp中的最大值&#xf…

用《设计模式》的角度优化 “枚举”

枚举应该都有用过,枚举主要的作用是为了方便用户查找和引用枚举。 案例一 下面的枚举逻辑很简单,就是通过枚举值返回不同的结果。 public enum OperationEnum {EQUAL_TO,CONTAINS,START_WITH,END_WITH;public String getOperationValue(String value)…

SQL根据分隔符折分不同的内容放到临时表

SQL Server存储过程里根据分隔符折分不同的内容放到临时表里做查询条件,以下分隔符使用“/”,可修改不同分隔符 --根据分隔符折分不同的内容放到临时表--------------- SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS id, LTRIM(RTR…

Ubuntu切换lowlatency内核

文章目录 一. 前言二. 开发环境三. 具体操作 一. 前言 低延迟内核(Lowlatency Kernel) 旨在为需要低延迟响应的应用程序设计的内核版本。Linux-lowlatency特别适合音频处理、实时计算、游戏和其他需要及时响应的实时任务。其主要特点是优化了中断处理、调…

基于Django创建一个WEB后端框架(DjangoRestFramework+MySQL)流程

一、Django项目初始化 1.创建Django项目 Django-admin startproject 项目名 2.安装 djangorestframework pip install djangorestframework 解释: Django REST Framework (DRF) 是基于 Django 框架的一个强大的 Web API 框架,提供了多种工具和库来构建 RESTf…

VUE3开发-9、axios前后端跨域问题解决方案

VUE前端解决跨域问题 前端页面需要改写 如果无效,记得重启服务器 后端c#解决跨域问题 前端js取值,后端c#跨域_c# js跨域-CSDN博客

DailyNotes 增加提醒功能

TODO:准备给 DailyNotes 增加一个提醒功能,准备接入 AI 来做一些事情。试了一下,非常靠谱。 具体 DailyNotes 和 Ollama 的交互方式,可以直接调用命令行,也可以走网络API。 rayuK2CD9WCYN4 ~ % ollama run deepseek-…

PY32MD320单片机 QFN32封装,内置多功能三相 NN 型预驱。

PY32MD320单片机是普冉半导体的一款电机专用MCU,芯片采用了高性能的 32 位 ARM Cortex-M0 内核,主要用于电机控制。PY32MD320嵌入高达 64 KB Flash 和 8 KB SRAM 存储器,最高工作频率 48 MHz。PY32MD320单片机的工作温度范围为 -40 ~ 105 ℃&…

OpenManus介绍及本地部署体验

1.OpenManus介绍 OpenManus,由 MetaGPT 团队精心打造的开源项目,于2025年3月发布。它致力于模仿并改进 Manus 这一封闭式商业 AI Agent 的核心功能,为用户提供无需邀请码、可本地化部署的智能体解决方案。换句话说,OpenManus 就像…

【贪心算法】简介

1.贪心算法 贪心策略:解决问题的策略,局部最优----》全局最优 (1)把解决问题的过程分成若干步 (2)解决每一步的时候,都选择当前看起来的“最优”的算法 (3)“希望”得…

springboot知识点以及源码解析(2)

web开发--静态规则与定制化 springboot对静态资源的映射规则:在类路径下面定义目录static或public或resources或者META-INF/resources,访问时项目根目录静态资源的名称 在springboot中,如果项目中存在同名的静态资源和同名的动态资源。那么我…

C++:string容器(下篇)

1.string浅拷贝的问题 // 为了和标准库区分,此处使用String class String { public :/*String():_str(new char[1]){*_str \0;}*///String(const char* str "\0") // 错误示范//String(const char* str nullptr) // 错误示范String(const char* str …

使用 vxe-table 导出 excel,支持带数值、货币、图片等带格式导出

使用 vxe-table 导出 excel,支持带数值、货币、图片等带格式导出,通过官方自动的导出插件 plugin-export-xlsx 实现导出功能 查看官网:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:htt…

JavaScript数据类型和内存空间

一、JavaScript 数据类型 基本数据类型:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol 引用数据类型:对象(Object)、数组(Array)、函数(Fun…