ubuntu24.04最新内核6.17.0.19卸载折腾记

文章目录

  • [零 问题和解决思路](#零 问题和解决思路)
  • [二 实际的操作和遇到的问题](#二 实际的操作和遇到的问题)
  • [2.1 正常的操作思路](#2.1 正常的操作思路)
      • [2.1.1 修正GRUB配置](#2.1.1 修正GRUB配置)
      • [2.1.2 重启并切换内核](#2.1.2 重启并切换内核)
      • [2.1.3 卸载6.17.0-19内核](#2.1.3 卸载6.17.0-19内核)
    • [2.2 实际的问题------无法删除解决](#2.2 实际的问题——无法删除解决)
      • [2.2.1 卸载NVIDIA驱动相关的6.17.0-19依赖包](#2.2.1 卸载NVIDIA驱动相关的6.17.0-19依赖包)
      • [2.2.2 验证并锁定6.17.0-14内核](#2.2.2 验证并锁定6.17.0-14内核)
      • [2.2.3 内核驱动恢复](#2.2.3 内核驱动恢复)
    • [2.3 更糟糕的问题------黑屏解决](#2.3 更糟糕的问题——黑屏解决)
      • [2.3.1 抢救黑屏问题](#2.3.1 抢救黑屏问题)
      • [2.3.2 重装驱动](#2.3.2 重装驱动)

零 问题和解决思路

  • 问题:最近需要在ubuntu24.04上使用vm,virtualbox等类型的虚拟机,在安装的过程中却遇到了内核不兼容问题,所以需要卸载最新的内核特别是6.17.0-19-generi这个内核太新,导致了安装失败。
  • 解决思路:切换到其他内核,进入桌面系统,然后卸载6.17.0-19-generi内核。

二 实际的操作和遇到的问题

2.1 正常的操作思路

2.1.1 修正GRUB配置

  1. 查看当前系统中的内核和使用的内核信息命令。
bash 复制代码
# 查看linux已安装内核命令
dpkg --list | grep linux-image
# 查看linux内核头信息命令
dpkg -l | grep linux-headers
# 查看当前桌面使用的内核
uname -r
bash 复制代码
(base) root@yang-server:~# dpkg --list | grep linux-image 
rc  linux-image-6.14.0-27-generic                            6.14.0-27.27~24.04.1                        amd64        Signed kernel image generic
rc  linux-image-6.14.0-35-generic                            6.14.0-35.35~24.04.1                        amd64        Signed kernel image generic
rc  linux-image-6.14.0-36-generic                            6.14.0-36.36~24.04.1                        amd64        Signed kernel image generic
ii  linux-image-6.14.0-37-generic                            6.14.0-37.37~24.04.1                        amd64        Signed kernel image generic
ii  linux-image-6.17.0-14-generic                            6.17.0-14.14~24.04.1                        amd64        Signed kernel image generic
ii  linux-image-6.17.0-19-generic                            6.17.0-19.19~24.04.2                        amd64        Signed kernel image generic
ii  linux-image-generic-hwe-24.04                            6.17.0-19.19~24.04.2                        amd64        Generic Linux kernel image
(base) root@yang-server:~# dpkg -l | grep linux-headers
ii  linux-headers-6.14.0-37-generic                          6.14.0-37.37~24.04.1                        amd64        Linux kernel headers for version 6.14.0
ii  linux-headers-6.17.0-14-generic                          6.17.0-14.14~24.04.1                        amd64        Linux kernel headers for version 6.17.0
ii  linux-headers-6.17.0-19-generic                          6.17.0-19.19~24.04.2                        amd64        Linux kernel headers for version 6.17.0
ii  linux-headers-generic-hwe-24.04                          6.17.0-19.19~24.04.2                        amd64        Generic Linux kernel headers
(base) root@yang-server:~# uname -r
6.17.0-19-generi
  1. 重新编辑GRUB配置文件
bash 复制代码
sudo vim /etc/default/grub
  1. 修改为正确的默认内核路径
    GRUB_DEFAULT行替换为:
python 复制代码
GRUB_DEFAULT="Advanced options for ubuntu>ubuntu, with Linux 6.17.0-14-generic"
GRUB_TIMEOUT_STYLE=menu  # 必须保持为menu,确保菜单显示
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR='Kubuntu'
GRUB_CMDLINE_LINUX_DEFAULT='quiet splash'
GRUB_CMDLINE_LINUX=""
  1. 保存并更新GRUB
bash 复制代码
# 保存vim修改后执行
update-grub

2.1.2 重启并切换内核

  1. 执行重启命令,重启时会看到GRUB引导菜单:

    bash 复制代码
    reboot
    1. 菜单顶部是Kubuntu,下方有Advanced options for Kubuntu
    2. 系统会默认选中 Advanced options for Kubuntu>Kubuntu, with Linux 6.17.0-14-generic
    3. 等待系统启动完成。
  2. 登录后执行,正常输出应为:6.17.0-14-generic

bash 复制代码
uname -r

2.1.3 卸载6.17.0-19内核

bash 复制代码
# 卸载6.17.0-19内核及头文件
apt purge -y linux-image-6.17.0-19-generic linux-headers-6.17.0-19-generic
# 卸载对应的元包
apt purge -y linux-image-generic-hwe-24.04 linux-headers-generic-hwe-24.04
# 锁定6.17.0-14内核和头文件,不让系统更新
apt-mark hold linux-image-6.17.0-14-generic linux-headers-6.17.0-14-generic

# 清理残留
apt autoremove -y --purge

# 再次更新GRUB
update-grub

# 最终重启验证
reboot

2.2 实际的问题------无法删除解决

bash 复制代码
(base) root@yang-server:~# apt purge -y linux-image-6.17.0-19-generic --fix-missing
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
将会同时安装下列软件:
  linux-image-unsigned-6.17.0-19-generic
建议安装:
  linux-hwe-6.17-tools linux-headers-6.17.0-19-generic
下列软件包将被【卸载】:
  linux-image-6.17.0-19-generic*
下列【新】软件包将被安装:
  linux-image-unsigned-6.17.0-19-generic
升级了 0 个软件包,新安装了 1 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
需要下载 16.9 MB 的归档。
解压缩后会消耗 93.2 kB 的额外空间。
获取:1 https://repo.huaweicloud.com/ubuntu noble-updates/main amd64 linux-image-unsigned-6.17.0-19-generic amd64 6.17.0-19.19~24.04.2 [16.9 MB]
已下载 16.9 MB,耗时 5秒 (3,743 kB/s)                              
dpkg: linux-image-6.17.0-19-generic:有依赖问题,但是如您所愿,将继续卸载:
 linux-signatures-nvidia-6.17.0-19-generic 依赖于 linux-image-6.17.0-19-generic | linux-image-unsigned-6.17.0-19-generic;然而:
  即将删除 linux-image-6.17.0-19-generic。
  未安装软件包 linux-image-unsigned-6.17.0-19-generic。
 linux-modules-nvidia-570-server-6.17.0-19-generic 依赖于 linux-image-6.17.0-19-generic | linux-image-unsigned-6.17.0-19-generic;然而:
  即将删除 linux-image-6.17.0-19-generic。
  未安装软件包 linux-image-unsigned-6.17.0-19-generic。
  • 问题根源是:NVIDIA驱动依赖6.17.0-19内核文件 ,删linux-image-6.17.0-19-generic时,系统会自动装linux-image-unsigned-6.17.0-19-generic来满足依赖,导致删不干净。
  • 解决方案:先删NVIDIA的6.17.0-19模块,再删内核,就不会触发自动重装。
要删的文件(6.17.0-19专属) 保留的文件(全局NVIDIA驱动)
linux-modules-nvidia-570-server-6.17.0-19-generic nvidia-driver-570-server(主驱动)
linux-signatures-nvidia-6.17.0-19-generic /usr/lib/nvidia(驱动核心文件)
只适配6.17.0-19内核的驱动模块 能给6.17.0-14编译新模块的驱动本体

2.2.1 卸载NVIDIA驱动相关的6.17.0-19依赖包

bash 复制代码
# 卸载和6.17.0-19绑定的NVIDIA模块(核心,断依赖)
apt purge -y linux-signatures-nvidia-6.17.0-19-generic linux-modules-nvidia-570-server-6.17.0-19-generic

# 现在再删6.17.0-19无签名内核
apt purge -y linux-image-unsigned-6.17.0-19-generic

# 彻底清理所有残留不清除
# apt autoremove -y --purge

# 强制更新GRUB和内核链接
update-grub
update-initramfs -u

2.2.2 验证并锁定6.17.0-14内核

bash 复制代码
dpkg --list | grep 6.17.0-19
# 锁定当前要用的6.17.0-14,避免系统乱更
apt-mark hold linux-image-6.17.0-14-generic linux-headers-6.17.0-14-generic

2.2.3 内核驱动恢复

bash 复制代码
# 重新给6.17.0-14内核编译NVIDIA驱动模块
sudo apt install -y --reinstall linux-modules-nvidia-570-server-6.17.0-14-generic

# 重启驱动服务(不用重启系统)
sudo modprobe nvidia

2.3 更糟糕的问题------黑屏解决

  • 问题:在重启驱动,然后其实我还重启了桌面服务程序,结果直接黑屏,重启选择6.17.0-14内核也无法进入桌面
  • 解决:使用 recovery 模式 修复。

2.3.1 抢救黑屏问题

  1. 重启机器:按住电源键重启。
  2. 进到 GRUB 菜单,看到开机引导时,选择:

Advanced options for Kubuntu

  1. 选择 6.17.0-14-generic (recovery mode)
  2. 在恢复菜单里选:root → Drop to root shell prompt,按一下回车,进 root 命令行。
  3. 立即删除 NVIDIA 内核模块(离线,无需网络)
bash 复制代码
apt purge -y linux-modules-nvidia-*
  1. 重建内核启动镜像(让系统切换到开源 nouveau 驱动)
bash 复制代码
update-initramfs -u
  1. 重启
bash 复制代码
reboot

2.3.2 重装驱动

  1. 刷新软件源,打开终端,执行:
bash 复制代码
sudo apt update
  1. 用命令行安装驱动(推荐版本),直接在终端执行,不要用图形界面:
bash 复制代码
sudo apt install -y nvidia-driver-570-server
相关推荐
小璐资源网2 小时前
Nginx安装教程:Windows/Linux/macOS全平台覆盖
linux·windows·nginx
艾学习2 小时前
安卓arm7l架构下Termux安装picoclaw
linux·运维·服务器
草莓熊Lotso2 小时前
Linux 进程间通信之 System V 共享内存:IPC 的原理与实战
linux·运维·服务器·c语言·数据库·c++·人工智能
洛菡夕2 小时前
nginx性能调优与深度监控
linux·服务器·nginx
艾莉丝努力练剑2 小时前
【Linux:文件 + 进程】进程间通信进阶(1)
linux·运维·服务器·网络·c++·人工智能·进程
豆浆煮粉2 小时前
Linux驱动开发理解指针与结构体
linux·c语言·驱动开发
IMPYLH2 小时前
Linux 的 cat 命令
linux·运维·服务器
夜阑卧听风吹雨c2 小时前
Linux 基础操作命令笔记(Ubuntu 常用版)
linux
虾..2 小时前
Linux HTTP协议
linux·运维·http