当前位置: 首页 > news >正文

如何在 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&#xff1a;找到需要移除的数组元素&#xff0c;将右侧全部元素向左覆盖 int removeElement(vector<int>& nums, int val) {int size nums.size();for (int …...

大模型专栏--Spring Ai Alibaba介绍和功能演示

Spring AI Alibaba 介绍和功能演示 背景 Spring AI Alibaba 开源项目基于 Spring AI 构建&#xff0c;是阿里云通义系列模型及服务在 Java AI 应用开发领域的最佳实践&#xff0c;提供高层次的 AI API 抽象与云原生基础设施集成方案&#xff0c;帮助开发者快速构建 AI 应用。…...

Redis设计与实现第17章 -- 集群 总结2(执行命令 重新分片)

17.3 在集群中执行命令 接收命令的节点会计算出命令要处理的数据库键属于哪个槽&#xff0c;并检查这个槽是否指派给了自己&#xff1a; 如果是的话&#xff0c;直接执行这个命令 否则&#xff0c;节点向客户端返回一个MOVED错误&#xff0c;指引客户端转向redirect至正确的节…...

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的&#xff0c;现在重新搭建一个2.0版本的&#xff0c;学如逆水行舟&#xff0c;不进则退&#xff0c;废话不多说&#xff0c;开搞 1、 nacos2.x搭建 1&#xff0c;首先第一步查询下项目之间的版本对照&#xff0c;不然后期会…...

3.建立本地仓库及常用命令

1.建立本地仓库 要使用Git对我们的代码进行版本控制&#xff0c;首先需要获得本地仓库 1&#xff09;在电脑的任意位置创建一个空目录&#xff0c;作为我们的本地Git仓库 2&#xff09;进入这个目录&#xff0c;右键点击Git Bash 窗口 3&#xff09;执行命令git init 4) 如果创…...

linux arm下获取屏幕事件(rk3588)

1、找到屏幕设备名称 cat /proc/bus/input/devices我的屏幕设备是ILITEK ILITEK-TP&#xff0c;它的设备名称是event1. 2、读取屏幕事件。 方法1&#xff1a; cat /dev/input/event1 | hexdump方法2&#xff1a; 3、c代码实现 #include <stdio.h> #include <unis…...

【机器学习】人工智能与气候变化:利用深度学习与机器学习算法预测和缓解环境影响

&#x1f4dd;个人主页&#xff1a;哈__ 期待您的关注 目录 &#x1f525;引言 1.1 背景介绍 1.2 人工智能与机器学习的崛起 1.3 本文内容概述 &#x1f528;气候变化的挑战 2.1 现今气候变化带来的影响和挑战 2.2 引发关注的气候变化趋势和数据 &#x1f916;人工智能…...

物联网射频识别和RFID开发(二):RFID原理及硬件组成

一、RFID无线识别的原理 &#xff08;一&#xff09;读写器与标签之间的无线电波交互方式 1、电感耦合 2、电磁反向散射耦合 &#xff08;二&#xff09;标签是如何将数据反馈给读写器的 1、电感耦合中的负载调试 2、电磁反向散射耦合中的负载调制 二、RFID无线通信中的调制…...

LeetCode763. 划分字母区间(2024冬季每日一题 23)

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xff1a;将所有划分结果按顺序连接&#xff0c;得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 示例 1&a…...

python调用GPT-4o实时音频 Azure OpenAI GPT-4o Audio and /realtime

发现这块网上信息很少&#xff0c;记录一下 微软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单机部署&#xff08;手动部署&#xff09;1. 下载Zookeeper安装包到Linux2. 解压zookeeper安装包3. 配置zookeeper配置文件4. 配置Zookeeper系统环境变量5. 启动Zookeeper6. 停止Zookeeper在这里插入图片描述 注意 前言 本文将详细介绍Zookeeper的…...

LuaJava

一、什么是LuaJava LuaJava是一个Java脚本工具。该工具的目标是允许用Lua编写的脚本操纵用 Java开发的组件。LuaJava允许使用与访问Lua的本机对象相同的语法从Lua访问Java组件&#xff0c;而不需要任何声明或任何类型的预处理。 LuaJava还允许在Lua中实现任何Java接口&#x…...

Maven下载安装、环境配置(超详细)(包括Java环境配置(Windows)、在IDEA中配置Maven)

目录 一、引言 二、下载和安装 Maven &#xff08;1&#xff09;首先保证 Java 的环境是正常的。 1、电脑桌面上右击 " 此电脑 "&#xff0c;点击属性。 2、点击高级系统设置。 3、点击环境变量。 4、找到系统变量中的 Path。 5、点击新建&#xff0c;然后把想要配置…...

Python中的实例方法、静态方法和类方法三者区别?

1、实例方法 不用classmethod和staticmethod修饰的方法为实例方法。在类中定义的方法默认都是实例方法。实例方法最大的特点是它至少要包含一个self参数&#xff0c;用于绑定调用此方法的实例对象&#xff0c;实例方法通常可以用类对象直接调用。 2、类方法 采用classmethod…...

【学习Go编程】

了解Go语言的基本概念&#xff1a; 学习Go的基本语法、数据类型、控制结构等。可以参考官方文档或基础教程来入门。 安装Go环境&#xff1a; 访问Go语言的官方网站&#xff0c;下载并安装适合你操作系统的Go编程环境。配置好环境变量&#xff0c;确保可以在命令行中使用go命令…...

Linux系统:网络

目录 一、网络协议 1.网络协议概念 2.协议分层 3.OSI七层模型和TCP/IP五层&#xff08;或四层&#xff09;模型 4.为什么要有网络协议&#xff1f; 5.网络通信协议的原理 二、网络传输的基本流程 1.局域网的网络传输流程 1.MAC地址 2.局域网通信原理&#xff08;以太网…...

shodan2-批量查找CVE-2019-0708漏洞

声明&#xff01; 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&#…...

面向对象(二)——类和对象(上)

1 类的定义 做了关于对象的很多介绍&#xff0c;终于进入代码编写阶段。 本节中重点介绍类和对象的基本定义&#xff0c;属性和方法的基本使用方式。 【示例】类的定义方式 // 每一个源文件必须有且只有一个public class&#xff0c;并且类名和文件名保持一致&#xff01; …...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...