惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
V
V2EX
GbyAI
GbyAI
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
阮一峰的网络日志
阮一峰的网络日志
Hugging Face - Blog
Hugging Face - Blog
T
Tailwind CSS Blog
Y
Y Combinator Blog
C
Check Point Blog
爱范儿
爱范儿
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
美团技术团队
雷峰网
雷峰网
IT之家
IT之家
WordPress大学
WordPress大学
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
N
News and Events Feed by Topic
罗磊的独立博客
S
SegmentFault 最新的问题
S
Security Affairs
aimingoo的专栏
aimingoo的专栏
F
Fortinet All Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
H
Hacker News: Front Page
Google DeepMind News
Google DeepMind News
B
Blog
O
OpenAI News
C
Cisco Blogs
Simon Willison's Weblog
Simon Willison's Weblog
The Last Watchdog
The Last Watchdog
Hacker News: Ask HN
Hacker News: Ask HN
博客园_首页
人人都是产品经理
人人都是产品经理
C
Cybersecurity and Infrastructure Security Agency CISA
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Help Net Security
Help Net Security
月光博客
月光博客
J
Java Code Geeks
L
LangChain Blog
博客园 - 司徒正美
Stack Overflow Blog
Stack Overflow Blog
Security Archives - TechRepublic
Security Archives - TechRepublic
Apple Machine Learning Research
Apple Machine Learning Research
T
The Exploit Database - CXSecurity.com
N
News and Events Feed by Topic
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - PKICA

git实用命令 rust底层设计理念值得注意的几个地方总结 rust可变引用作为函数参数的机理详解 Rust内存重解释transmute C与Rust类型映射 Rust FFI 安全抽象范式 rust延迟初始化原语 rust重借用机制与原理 rust参数传递模型 汇编语言语法详解 gdb汇编调试 gdb-pwndbg的安装与使用指南 gdb调试插件gef C语言thread_local linux系统readelf命令使用指南 gcore转储进程内存 gdb查看命令 RGB与YUV颜色编码的区别 Rust原子类型 C++ STL求两个集合交集差集 gdb调试集锦 ubuntu24.0.4使用root用户登录 ubuntu24.0.4输入密码后跳回登录界面 AI内存压缩技术TurboQuant及存疑 在没有顶级科技大佬直接背书的情况下deepseek为啥能够异军突起? HuggingFace和deepseek的关系 当前主流AI大模型 Rust写时克隆Cow系列2
ubuntu切换到指定内核版本
PKICA · 2026-03-13 · via 博客园 - PKICA

当系统更新提示有安全更新时,自动更新了,更新了几个版本后,发现原有的一些软件不可用了。那么,咱就回滚内核吧。

1. 检查当前内核版本

在开始降级内核之前,首先需要确认当前系统中安装的内核版本。以下是在Ubuntu系统中查看当前内核版本的命令:

uname -r

这将显示当前运行的内核版本号。

2. 查询可用的内核版本

Ubuntu系统通常会保留一定数量的内核版本,以便用户在需要时进行降级。以下命令可以列出可用的内核版本:

dpkg --get-selections | grep linux-image

如果系统没有保留降级版本,可以尝试使用以下命令手动查找:

apt-cache search linux-image | grep <内核版本号>

其中<内核版本号>是你想要降级的内核版本。

3. 安装指定版本的内核

找到可用的内核版本后,可以使用以下命令进行安装:

sudo apt-get install <内核版本包名>

其中<内核版本包名>是从上一步查询结果中获取的内核包名。

获取内核相关的包

dpkg -l | grep -E "linux-(headers|image|modules-extra|tools)+" | grep 6.14.0-37 | awk '{print $2}'

预期输出:

linux-headers-6.14.0-37-generic
linux-image-6.14.0-37-generic
linux-modules-extra-6.14.0-37-generic
linux-tools-6.14.0-37-generic

如缺少,则需要安装相应包,比如:

 sudo apt install linux-image-6.11.0-29-generic

4. 修改内核启动顺序

法1:

安装指定版本的内核后,需要将其设置为默认启动内核。以下命令可以列出当前的内核启动顺序:

$sudo grep "menuentry 'Ubuntu, with Linux" /boot/grub/grub.cfg | nl

如果目标内核位于子菜单中,使用格式 "主菜单位置>子菜单位置"。子菜单位置:在输出的menuentry标签中找到你想要设置为默认启动的内核版本的序号n,,计算对应的submenu序号便为 n-1 , 并在“/etc/default/grub”中设置(下面例子假设子菜单位置为3,):

#GRUB_DEFAULT=0 #一般默认是 这个,把它注释掉即可。

GRUB_DEFAULT="1>2"

或者法2:

修改grub文件,设置默认启动内核,vim /etc/default/grub
把 GRUB_DEFAULT=0
修改为 GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 6.2.0-39-generic"

5. 生效grub配置

修改grub配置后,需要保存并重启生效:

sudo update-grub
sudo reboot

6. 移除不用的内核

为了优化系统性能和节省空间,可以移除不再需要的内核版本。以下命令可以列出所有可用的内核包:

dpkg --get-selections | grep linux-image

然后,使用以下命令卸载不需要的内核包:

sudo apt-get remove <内核版本包名>

其中<内核版本包名>是从上一步查询结果中获取的内核包名。

7. 关闭内核或包的自动更新

为了防止系统在下次更新时自动安装新的内核版本,可以关闭内核或包的自动更新。以下命令可以禁用内核的自动更新:

sudo apt-mark hold <内核版本包名>

其中<内核版本包名>是从上一步查询结果中获取的内核包名。