如何在 Ubuntu 中更新 Linux 内核
Linux内核是操作系统的基础,对操作系统的性能起着至关重要的作用。Linux开发人员通过补丁和更新不断增强内核,解决安全性、功能性和速度问题。及时了解这些发展对于确保机器以最佳方式运行至关重要。
本文教您如何使用三种不同的方法更新 Ubuntu 中的 Linux 内核。
先决条件
- Ubuntu 系统。
- 访问终端。
- 具有sudo 权限的用户帐户。
方法 1:使用系统更新流程
系统更新过程是一种将所有软件包(包括 Linux 内核)更新到最新可用版本的直接方法。在开始之前,请使用uname命令检查当前内核版本:
uname -r

输出包括:
- 6.2.0——内核版本号。
- 37-内核的特定版本或版本号。
- generic - 表示内核风格。generic风格是常规桌面和服务器系统的常见选择
步骤 1:更新系统软件包
用于更新本地软件包索引。该命令从系统上配置的存储库sudo apt update中检索有关最新可用软件包版本的信息。
使用此命令:
sudo apt update

如果有较新的内核版本,该命令会找到它并将其标记为可供下载和安装。但是,该命令不会安装或升级任何软件包。
第 2 步:运行升级
要将已安装的软件包(包括内核)升级到存储库中可用的最新版本,请运行:
sudo apt upgrade

此命令安装最新的 Linux 内核版本。使用 验证更改uname -r。
uname -r

在这种情况下,输出没有改变,因为内核已经是最新版本。
注意: 如果除了更新内核版本之外,你还要升级到新的 Ubuntu 版本(例如,从Ubuntu 20.04升级到22.04),请使用sudo apt-get dist-upgrade。此命令处理依赖项的更改并管理主要系统升级。
方法 2:使用系统更新过程强制更新 Ubuntu 内核
有时,会发布较新的内核,但尚未针对您的Ubuntu 版本进行测试。例如,用户可能使用 Ubuntu 22.04,并知道 Ubuntu 23.10 有较新的内核版本可用。
这种方法可以升级内核,但是该过程需要更多的工作,包括备份重要文件。
步骤 1:使用软件更新程序
备份文件后,请按照以下步骤操作:
1. 按下超级键(大多数键盘上的Windows键)并搜索以找到软件更新程序。

2. 启动软件更新程序。

3. 确认是否不需要更新或是否必须执行必要的更新。在我们的例子中,系统是最新的。

4.单击“设置 和Livepatch”按钮并继续下面的步骤2。

步骤 2:配置软件更新程序
点击“设置和 Livepatch”按钮后,将出现一个新窗口。请按照以下步骤配置设置:
1. 导航到“更新”选项卡。

2. 找到已订阅下拉菜单并选择所有更新。
3. 在选项卡的底部,找到下拉菜单“通知我新的 Ubuntu 版本”。

4. 选择两者之一,但不要选择“从不”:
- 适用于长期支持版本。当稳定性至关重要,并且您更喜欢更可预测且经过彻底测试的环境时。
- 对于任何新版本。如果您能接受偶尔的更改,乐于尝试新功能,并容忍潜在的问题。
5. 关闭此窗口然后重新打开。如果系统需要更新,应用程序会提供升级到最新版本的选项。
步骤3:强制升级
如果系统不提供升级,请强制升级:
sudo do-release-upgrade
注意:该sudo do-release-upgrade命令有时会打印ERROR: failed to read '/etc/update-manager/release-upgrades'。要解决此问题,请在您选择的文本编辑器中访问/etc/update-manager/release-upgrades并将该行替换为。Prompt=ltsPrompt=normal
系统显示新内核和 Ubuntu 版本的发行说明。例如,在此示例中,终端显示有关新 Ubuntu 版本 Ubuntu 23.04 Lunar Lobster 的详细信息。

要升级,请向下滚动到底部并选择y以获取最新的 Ubuntu 和内核版本。

方法 3:手动更新内核(高级步骤)
要升级到最新的(未经测试的)内核并接受风险,还有第三个程序,即使用 Mainline 选择和安装新内核。
这个用户友好的工具简化了 Linux 内核的更新,但它并未预装在大多数 Linux 系统上。请按照以下部分中此方法的步骤进行操作。
步骤 1:安装并启动 Mainline
如果您的系统上没有 Mainline:
1. 使用以下命令将 cappelikan 维护的 PPA 添加到软件源或存储库列表中:
sudo add-apt-repository ppa:cappelikan/ppa

此 PPA 由用户 cappelikan 维护,包含 Mainline 内核安装程序。添加此 PPA 后,即可在 Ubuntu 系统上安装 Mainline 软件。
2. 使用以下命令刷新数据库:
sudo apt update
3. 使用以下命令安装 Mainline:

4. 使用以下方式启动 Mainline:
sudo mainline
Mainline 界面会启动并显示可用的 Linux 内核版本。如果没有显示,请按Super键(Windows键)并搜索 Mainline 来访问界面。

第 2 步:安装内核
要获取特定内核,请在列表中找到并选择它。接下来,单击右侧的“安装”按钮。

内核安装完成后,重新启动系统。
步骤3:卸载内核
如果出现问题,请从启动屏幕中选择以前的内核版本来恢复该过程。具体操作如下:
1. 重新启动系统并按住 Shift 键或 Esc 键(具体取决于Linux 发行版)。
2. 选择Ubuntu 的高级选项。

3. 选择以前的内核(通过版本号标识)。
另一种方法是使用 Mainline删除 Ubuntu 上的旧内核。为此,请单击先前安装的(或任何较旧的)内核版本,然后在右侧选择“卸载” 。

结论
阅读本教程后,您现在知道如何使用不同的方法更新 Linux 内核。
相关文章:
如何在 Ubuntu 中更新 Linux 内核
Linux内核是操作系统的基础,对操作系统的性能起着至关重要的作用。Linux开发人员通过补丁和更新不断增强内核,解决安全性、功能性和速度问题。及时了解这些发展对于确保机器以最佳方式运行至关重要。 本文教您如何使用三种不同的方法更新 Ubuntu 中的 L…...
FilterListenerAjax
今日目标: 能够使用 Filter 完成登陆状态校验功能能够使用 axios 发送 ajax 请求熟悉 json 格式,并能使用 Fastjson 完成 java 对象和 json 串的相互转换使用 axios + json 完成综合案例1,Filter 1.1 Filter概述 Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、…...
27. 移除元素 C++
文章目录 一、题目链接二、参考代码三、所思所悟 一、题目链接 链接: 27. 移除元素 二、参考代码 思路1:找到需要移除的数组元素,将右侧全部元素向左覆盖 int removeElement(vector<int>& nums, int val) {int size nums.size();for (int …...
大模型专栏--Spring Ai Alibaba介绍和功能演示
Spring AI Alibaba 介绍和功能演示 背景 Spring AI Alibaba 开源项目基于 Spring AI 构建,是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践,提供高层次的 AI API 抽象与云原生基础设施集成方案,帮助开发者快速构建 AI 应用。…...
Redis设计与实现第17章 -- 集群 总结2(执行命令 重新分片)
17.3 在集群中执行命令 接收命令的节点会计算出命令要处理的数据库键属于哪个槽,并检查这个槽是否指派给了自己: 如果是的话,直接执行这个命令 否则,节点向客户端返回一个MOVED错误,指引客户端转向redirect至正确的节…...
微服务搭建----springboot接入Nacos2.x
springboot接入Nacos2.x nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞 1、 nacos2.x搭建 1,首先第一步查询下项目之间的版本对照,不然后期会…...
3.建立本地仓库及常用命令
1.建立本地仓库 要使用Git对我们的代码进行版本控制,首先需要获得本地仓库 1)在电脑的任意位置创建一个空目录,作为我们的本地Git仓库 2)进入这个目录,右键点击Git Bash 窗口 3)执行命令git init 4) 如果创…...
linux arm下获取屏幕事件(rk3588)
1、找到屏幕设备名称 cat /proc/bus/input/devices我的屏幕设备是ILITEK ILITEK-TP,它的设备名称是event1. 2、读取屏幕事件。 方法1: cat /dev/input/event1 | hexdump方法2: 3、c代码实现 #include <stdio.h> #include <unis…...
【机器学习】人工智能与气候变化:利用深度学习与机器学习算法预测和缓解环境影响
📝个人主页:哈__ 期待您的关注 目录 🔥引言 1.1 背景介绍 1.2 人工智能与机器学习的崛起 1.3 本文内容概述 🔨气候变化的挑战 2.1 现今气候变化带来的影响和挑战 2.2 引发关注的气候变化趋势和数据 🤖人工智能…...
物联网射频识别和RFID开发(二):RFID原理及硬件组成
一、RFID无线识别的原理 (一)读写器与标签之间的无线电波交互方式 1、电感耦合 2、电磁反向散射耦合 (二)标签是如何将数据反馈给读写器的 1、电感耦合中的负载调试 2、电磁反向散射耦合中的负载调制 二、RFID无线通信中的调制…...
LeetCode763. 划分字母区间(2024冬季每日一题 23)
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1&a…...
python调用GPT-4o实时音频 Azure OpenAI GPT-4o Audio and /realtime
发现这块网上信息很少,记录一下 微软azure入口 https://learn.microsoft.com/zh-cn/azure/ai-services/openai/realtime-audio-quickstart?pivotsprogramming-language-ai-studio sdk文档 https://github.com/azure-samples/aoai-realtime-audio-sdk?tabread…...
Hadoop生态圈框架部署 伪集群版(四)- Zookeeper单机部署
文章目录 前言一、Zookeeper单机部署(手动部署)1. 下载Zookeeper安装包到Linux2. 解压zookeeper安装包3. 配置zookeeper配置文件4. 配置Zookeeper系统环境变量5. 启动Zookeeper6. 停止Zookeeper在这里插入图片描述 注意 前言 本文将详细介绍Zookeeper的…...
LuaJava
一、什么是LuaJava LuaJava是一个Java脚本工具。该工具的目标是允许用Lua编写的脚本操纵用 Java开发的组件。LuaJava允许使用与访问Lua的本机对象相同的语法从Lua访问Java组件,而不需要任何声明或任何类型的预处理。 LuaJava还允许在Lua中实现任何Java接口&#x…...
Maven下载安装、环境配置(超详细)(包括Java环境配置(Windows)、在IDEA中配置Maven)
目录 一、引言 二、下载和安装 Maven (1)首先保证 Java 的环境是正常的。 1、电脑桌面上右击 " 此电脑 ",点击属性。 2、点击高级系统设置。 3、点击环境变量。 4、找到系统变量中的 Path。 5、点击新建,然后把想要配置…...
Python中的实例方法、静态方法和类方法三者区别?
1、实例方法 不用classmethod和staticmethod修饰的方法为实例方法。在类中定义的方法默认都是实例方法。实例方法最大的特点是它至少要包含一个self参数,用于绑定调用此方法的实例对象,实例方法通常可以用类对象直接调用。 2、类方法 采用classmethod…...
【学习Go编程】
了解Go语言的基本概念: 学习Go的基本语法、数据类型、控制结构等。可以参考官方文档或基础教程来入门。 安装Go环境: 访问Go语言的官方网站,下载并安装适合你操作系统的Go编程环境。配置好环境变量,确保可以在命令行中使用go命令…...
Linux系统:网络
目录 一、网络协议 1.网络协议概念 2.协议分层 3.OSI七层模型和TCP/IP五层(或四层)模型 4.为什么要有网络协议? 5.网络通信协议的原理 二、网络传输的基本流程 1.局域网的网络传输流程 1.MAC地址 2.局域网通信原理(以太网…...
shodan2-批量查找CVE-2019-0708漏洞
声明! 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
面向对象(二)——类和对象(上)
1 类的定义 做了关于对象的很多介绍,终于进入代码编写阶段。 本节中重点介绍类和对象的基本定义,属性和方法的基本使用方式。 【示例】类的定义方式 // 每一个源文件必须有且只有一个public class,并且类名和文件名保持一致! …...
RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
服务器--宝塔命令
一、宝塔面板安装命令 ⚠️ 必须使用 root 用户 或 sudo 权限执行! sudo su - 1. CentOS 系统: yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh2. Ubuntu / Debian 系统…...
C++使用 new 来创建动态数组
问题: 不能使用变量定义数组大小 原因: 这是因为数组在内存中是连续存储的,编译器需要在编译阶段就确定数组的大小,以便正确地分配内存空间。如果允许使用变量来定义数组的大小,那么编译器就无法在编译时确定数组的大…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
淘宝扭蛋机小程序系统开发:打造互动性强的购物平台
淘宝扭蛋机小程序系统的开发,旨在打造一个互动性强的购物平台,让用户在购物的同时,能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机,实现旋转、抽拉等动作,增…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...
