Ubuntu 内核版本降级

该文详细介绍了在Ubuntu系统中如何从当前内核版本5.4.0-120-generic降级到5.4.0-148-generic。步骤包括检查已安装内核、搜索目标内核包、安装指定内核版本、修改GRUB启动菜单顺序以及更新启动配置。最后,通过重启系统验证内核降级成功。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、背景介绍

经常使用Ubuntu 作为开发平台,有降低内核版本的需求。下面介绍 Ubuntu 怎么降级到指定的 Linux 内核版本。

2、实际操作

ubuntu@ubuntu:~/Downloads$ uname -r 
5.4.0-120-generic  # 默认内核版本是: 5.4.0-120  现更改内核版本为: 5.4.0-148
# 每个内核版本都有一个带 -generic 和不带 -generic 的内核头文件,对于同一版本内核的这两个文件
# 夹都只是头文件,并不是源代码。带有 -generic 的目录里面均是指向不带 -generic 文件夹内容的
# 符号链接
ubuntu@ubuntu:/lib/modules$ uname -r 
5.4.0-120-generic
ubuntu@ubuntu:/lib/modules$ cd 5.4.0-120-generic
ubuntu@ubuntu:/lib/modules/5.4.0-120-generic$ ls
build   kernel         modules.alias.bin  modules.builtin.bin      modules.dep      modules.devname  modules.softdep  modules.symbols.bin
initrd  modules.alias  modules.builtin    modules.builtin.modinfo  modules.dep.bin  modules.order    modules.symbols  vdso
ubuntu@ubuntu:/lib/modules/5.4.0-120-generic$ ls -l 
total 5812
lrwxrwxrwx  1 root root      40 610  2022 build -> /usr/src/linux-headers-5.4.0-120-generic
drwxr-xr-x  2 root root    4096 610  2022 initrd
drwxr-xr-x 17 root root    4096 619  2022 kernel
-rw-r--r--  1 root root 1403204 619  2022 modules.alias
-rw-r--r--  1 root root 1380114 619  2022 modules.alias.bin
-rw-r--r--  1 root root    8105 610  2022 modules.builtin
-rw-r--r--  1 root root   10257 619  2022 modules.builtin.bin
-rw-r--r--  1 root root   63668 610  2022 modules.builtin.modinfo
-rw-r--r--  1 root root  610840 619  2022 modules.dep
-rw-r--r--  1 root root  853423 619  2022 modules.dep.bin
-rw-r--r--  1 root root     330 619  2022 modules.devname
-rw-r--r--  1 root root  219972 610  2022 modules.order
-rw-r--r--  1 root root     947 619  2022 modules.softdep
-rw-r--r--  1 root root  615433 619  2022 modules.symbols
-rw-r--r--  1 root root  748480 619  2022 modules.symbols.bin
drwxr-xr-x  3 root root    4096 619  2022 vdso
ubuntu@ubuntu:/lib/modules/5.4.0-120-generic$ ls -l /usr/src/linux-headers-5.4.0-120-generic/
total 1612
drwxr-xr-x 3 root root    4096 619  2022 arch
lrwxrwxrwx 1 root root      40 610  2022 block -> ../linux-hwe-5.4-headers-5.4.0-120/block
lrwxrwxrwx 1 root root      40 610  2022 certs -> ../linux-hwe-5.4-headers-5.4.0-120/certs
lrwxrwxrwx 1 root root      41 610  2022 crypto -> ../linux-hwe-5.4-headers-5.4.0-120/crypto
lrwxrwxrwx 1 root root      48 610  2022 Documentation -> ../linux-hwe-5.4-headers-5.4.0-120/Documentation
lrwxrwxrwx 1 root root      42 610  2022 drivers -> ../linux-hwe-5.4-headers-5.4.0-120/drivers
lrwxrwxrwx 1 root root      37 610  2022 fs -> ../linux-hwe-5.4-headers-5.4.0-120/fs
drwxr-xr-x 4 root root    4096 619  2022 include
lrwxrwxrwx 1 root root      39 610  2022 init -> ../linux-hwe-5.4-headers-5.4.0-120/init
lrwxrwxrwx 1 root root      38 610  2022 ipc -> ../linux-hwe-5.4-headers-5.4.0-120/ipc
lrwxrwxrwx 1 root root      41 610  2022 Kbuild -> ../linux-hwe-5.4-headers-5.4.0-120/Kbuild
lrwxrwxrwx 1 root root      42 610  2022 Kconfig -> ../linux-hwe-5.4-headers-5.4.0-120/Kconfig
drwxr-xr-x 2 root root    4096 619  2022 kernel
lrwxrwxrwx 1 root root      38 610  2022 lib -> ../linux-hwe-5.4-headers-5.4.0-120/lib
lrwxrwxrwx 1 root root      43 610  2022 Makefile -> ../linux-hwe-5.4-headers-5.4.0-120/Makefile
lrwxrwxrwx 1 root root      37 610  2022 mm -> ../linux-hwe-5.4-headers-5.4.0-120/mm
-rw-r--r-- 1 root root 1620851 610  2022 Module.symvers
lrwxrwxrwx 1 root root      38 610  2022 net -> ../linux-hwe-5.4-headers-5.4.0-120/net
lrwxrwxrwx 1 root root      42 610  2022 samples -> ../linux-hwe-5.4-headers-5.4.0-120/samples
drwxr-xr-x 8 root root   12288 619  2022 scripts
lrwxrwxrwx 1 root root      43 610  2022 security -> ../linux-hwe-5.4-headers-5.4.0-120/security
lrwxrwxrwx 1 root root      40 610  2022 sound -> ../linux-hwe-5.4-headers-5.4.0-120/sound
drwxr-xr-x 3 root root    4096 619  2022 tools
lrwxrwxrwx 1 root root      41 610  2022 ubuntu -> ../linux-hwe-5.4-headers-5.4.0-120/ubuntu
lrwxrwxrwx 1 root root      38 610  2022 usr -> ../linux-hwe-5.4-headers-5.4.0-120/usr
lrwxrwxrwx 1 root root      39 610  2022 virt -> ../linux-hwe-5.4-headers-5.4.0-120/virt
# 查看已经安装的内核镜像
ubuntu@ubuntu:~$ dpkg --get-selections | grep linux-image
linux-image-4.18.0-15-generic			deinstall
linux-image-5.4.0-120-generic			install
linux-image-5.4.0-147-generic			install
linux-image-5.4.0-148-generic			install
linux-image-5.4.0-45-generic			deinstall
linux-image-5.4.0-47-generic			deinstall
linux-image-5.4.0-52-generic			deinstall
linux-image-5.4.0-53-generic			deinstall
linux-image-5.4.0-58-generic			deinstall
linux-image-5.4.0-60-generic			deinstall
linux-image-5.4.0-62-generic			deinstall
linux-image-5.4.0-65-generic			deinstall
linux-image-5.4.0-66-generic			deinstall
linux-image-5.4.0-67-generic			deinstall
linux-image-5.4.0-70-generic			deinstall
linux-image-5.4.0-72-generic			deinstall
linux-image-5.4.0-81-generic			deinstall
linux-image-5.4.0-89-generic			deinstall
linux-image-5.4.0-90-generic			deinstall
linux-image-5.4.0-91-generic			deinstall
linux-image-5.4.0-92-generic			deinstall
linux-image-generic-hwe-18.04			install
linux-image-unsigned-6.3.3-060303-generic	install
# 查看指定版本的内核包 ,我需要的是 : 5.4.0-148
ubuntu@ubuntu:~$ apt-cache search linux | grep 5.4.0-148

linux-buildinfo-5.4.0-148-generic - Linux kernel buildinfo for version 5.4.0 on 64 bit x86 SMP
linux-buildinfo-5.4.0-148-lowlatency - Linux kernel buildinfo for version 5.4.0 on 64 bit x86 SMP
linux-cloud-tools-5.4.0-148-generic - Linux kernel version specific cloud tools for version 5.4.0-148
linux-cloud-tools-5.4.0-148-lowlatency - Linux kernel version specific cloud tools for version 5.4.0-148

linux-headers-5.4.0-148-generic - Linux kernel headers for version 5.4.0 on 64 bit x86 SMP

linux-headers-5.4.0-148-lowlatency - Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
linux-hwe-5.4-cloud-tools-5.4.0-148 - Linux kernel version specific cloud tools for version 5.4.0-148
linux-hwe-5.4-headers-5.4.0-148 - Header files related to Linux kernel version 5.4.0
linux-hwe-5.4-tools-5.4.0-148 - Linux kernel version specific tools for version 5.4.0-148

linux-image-5.4.0-148-generic - Signed kernel image generic

linux-image-5.4.0-148-lowlatency - Signed kernel image lowlatency
linux-image-unsigned-5.4.0-148-generic - Linux kernel image for version 5.4.0 on 64 bit x86 SMP
linux-image-unsigned-5.4.0-148-lowlatency - Linux kernel image for version 5.4.0 on 64 bit x86 SMP
linux-modules-5.4.0-148-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
linux-modules-5.4.0-148-lowlatency - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
linux-modules-extra-5.4.0-148-generic - Linux kernel extra modules for version 5.4.0 on 64 bit x86 SMP
linux-tools-5.4.0-148-generic - Linux kernel version specific tools for version 5.4.0-148
linux-tools-5.4.0-148-lowlatency - Linux kernel version specific tools for version 5.4.0-148

# 安装指定的内核版本
sudo apt-get install linux-headers-5.4.0-148-generic linux-image-5.4.0-148-generic

# 当前系统中内核的启动顺序
ubuntu@ubuntu:~$ grep menuentry /boot/grub/grub.cfg
if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-79c7761d-9676-433e-884c-516b6c45d576' {
submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 6.3.3-060303-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.3.3-060303-generic-advanced-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 6.3.3-060303-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.3.3-060303-generic-recovery-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-148-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-148-generic-advanced-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-148-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-148-generic-recovery-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-147-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-147-generic-advanced-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-147-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-147-generic-recovery-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-120-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-120-generic-advanced-79c7761d-9676-433e-884c-516b6c45d576' {
	menuentry 'Ubuntu, with Linux 5.4.0-120-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.4.0-120-generic-recovery-79c7761d-9676-433e-884c-516b6c45d576' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {

# 修改内核启动顺序
sudo vim /etc/default/grub
第一步:GRUB_DEFAULT=0
第二步: GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 5.4.0-120-generic"
将 第一步 修改为 第二步

# 执行update-grub 命令更新启动配置
sudo update-grub

# 重启系统查看内核版本
ubuntu@ubuntu:~$ uname -r 
5.4.0-120-generic

#如果想要开机启动自由选择内核版本 请做如下配置
sudo vim /etc/default/grub
第一步 GRUB_TIMEOUT_STYLE=hidden
第一步 GRUB_TIMEOUT=0

第二步 # GRUB_TIMEOUT_STYLE=hidden
第二步 GRUB_TIMEOUT=10

第三步 执行update-grub 命令更新启动配置 sudo update-grub

将 第一步 修改为 第二步 然后执行 第三步

# 重启系统查看内核版本
ubuntu@ubuntu:~$ uname -r 
5.4.0-120-generic

# 查看当前系统版本信息
ubuntu@ubuntu:~$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="18.04.2 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.2 LTS"
VERSION_ID="18.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=bionic
UBUNTU_CODENAME=bionic
ubuntu@ubuntu:~$ 
ubuntu@ubuntu:~$ uname -r 
5.4.0-120-generic
### 关于Ubuntu内核降级 对于操作系统层面的内核版本变更,特别是从高版本向低版本回滚,通常涉及较为复杂的过程。针对希望将Ubuntu系统的内核版本由24.4降至更低版本的需求,需注意实际上并不存在所谓“24.4”的Ubuntu内核版本编号,这可能是表述上的误差或是混淆了其他软件包或发行版的信息。 当确实存在合理需求来更换至更早版本的内核时,一般建议遵循如下方法: #### 方法一:通过APT手动安装旧版内核 可以利用`apt-get`命令下载指定版本号的Linux内核镜像文件,并完成安装操作。例如要安装特定的老版本内核(假设为5.4系列),可执行以下指令[^1]: ```bash sudo apt install linux-image-5.4.0-xx-generic ``` 其中`xx`代表具体的修订次数。之后重启计算机,在GRUB引导菜单中选择刚装入的新内核启动项即可生效。 #### 方法二:借助第三方PPA源获取历史版本 如果目标内核不在当前系统默认仓库范围内,则考虑添加可靠的个人包档案(PPA),从中选取所需的历史版本进行部署。不过此途径存在一定风险,务必谨慎评估来源的安全性和兼容性问题后再做决定。 重要提示:无论是哪种方式实现内核级别的倒退动作都充满不确定性因素,极有可能引发硬件驱动失配、安全漏洞暴露等问题,因此强烈反对轻易尝试此类行为除非有充分理由和技术保障措施作为支撑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值