Ubuntu22.04降级内核版本

Ubuntu22.04降级内核版本

说明:
  在生产环境中因兼容性问题Ubuntu 22.04系统需要固定内核版本,在实际操作过程中因误操作原因导致系统内核升级为最新版本,在不影响开发测试状态下选择降级内核版本。

首先查看内核在 grub 中的菜单索引

grep menuentry /boot/grub/grub.cfg | grep -i linux | nl -v 0

输出

0  menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-104a526b-4f44-4f1e-90b8-a8e93675ac90' {
1  submenu 'Advanced options for Ubuntu' $menuentry_id_option 'gnulinux-advanced-104a526b-4f44-4f1e-90b8-a8e93675ac90' {
2          menuentry 'Ubuntu, with Linux 6.8.0-90-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-90-generic-advanced-104a526b-4f44-4f1e-90b8-a8e93675ac90' {
3          menuentry 'Ubuntu, with Linux 6.8.0-90-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-90-generic-recovery-104a526b-4f44-4f1e-90b8-a8e93675ac90' {
4          menuentry 'Ubuntu, with Linux 6.8.0-40-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-40-generic-advanced-104a526b-4f44-4f1e-90b8-a8e93675ac90' {
5          menuentry 'Ubuntu, with Linux 6.8.0-40-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.8.0-40-generic-recovery-104a526b-4f44-4f1e-90b8-a8e93675ac90' {

修改 grub 配置文件

sudo vim /etc/default/grub

修改为对应内容

GRUB_HIDDEN_TIMEOUT=0		# 取消 GRUB_HIDDEN_TIMEOUT 的注释(如果存在),设置为 0
GRUB_DEFAULT=4		# 设置默认启动项为低版本内核的索引(这里我选4,也可以使用0进入grub菜单后手动选择)
GRUB_TIMEOUT_STYLE=menu		# 显示 grub 菜单(可选,方便手动选择内核)
GRUB_TIMEOUT=10		# grub 菜单显示 10 秒,超时后自动启动默认内核

更新 grub 配置,并重启

sudo update-grub
sudo reboot		# 重启系统

进入 GRUB 菜单,选择 Advanced options for Ubuntu,然后选择对应内核启动

uname -r

6.8.0-40-generic		# 输出内核版本

删除高版本内核(彻底清理)

dpkg --get-selections | grep linux-image | grep -v deinstall

输出

linux-image-6.8.0-40-generic                    hold
linux-image-6.8.0-90-generic                    install
linux-image-generic-hwe-22.04                   install

删除高版本内核的相关包

# 删除高版本内核镜像、头文件、模块
apt purge linux-image-6.8.0-90-generic linux-headers-6.8.0-90-generic linux-modules-6.8.0-90-generic linux-modules-extra-6.8.0-90-generic
# 删除依赖的通用包(如 generic-hwe-22.04,可选)
sudo apt purge linux-image-generic-hwe-22.04 linux-headers-generic-hwe-22.04

清理内核残留文件

sudo apt autoremove --purge		# 自动清理不再需要的依赖包
sudo update-grub		# 更新 grub 配置(删除高内核后,grub 菜单会自动更新)

还原/etc/default/grub配置文件

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

更新 grub 配置,并重启

sudo update-grub
sudo reboot		# 重启系统

小结:
  禁止删除当前运行的内核:执行 uname -r 查看当前内核,删除操作时绝对不能删这个版本。
  至少保留一个可用内核:系统中必须保留 1~2 个稳定内核,避免所有内核被删导致无法启动。
  降级内核后硬件驱动可能失效:如果降级后出现 USB、网卡等硬件不识别,可能是低内核不支持该硬件,需重新安装对应驱动或升级回原内核。
  无法启动的补救方案:如果重启后无法进入系统,在 grub 菜单中选择 「高级选项」,手动选择原来的高版本内核启动,再重新调整配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值