一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Linux怎样卸载残留驱动

时间:2026-07-06 08:02:51 编辑:袖梨 来源:一聚教程网

先按逆序卸载子模块:sudo modprobe -r nvidia-drm nvidia-modeset nvidia-uvm nvidia;再手动删除/lib/modules/$(uname -r)下残留的nvidia*.ko文件;清空Xorg驱动、GL库及egl_vendor.d配置;最后更新depmod、initramfs并重启。

rmmod 之后模块还在 lsmod 里?先查依赖链

直接 rmmod 失败或卸载后 lsmod | grep xxx 仍有输出,大概率是模块被其他模块引用。比如 nvidia 依赖 nvidia-modesetnvidia-drm,必须按逆序卸载:

  • sudo modprobe -r nvidia-drm nvidia-modeset nvidia-uvm nvidia
  • 顺序不能错:先卸载子模块,最后卸载主模块
  • 若提示 Module xxx is in use,用 lsmod | grep xxx 看谁在用,或 lsof +D /dev/nvidia* 查进程

apt purge 后 /lib/modules/xxx.ko 还在?得手动删内核模块文件

包管理器只管软件包层面,不碰 /lib/modules/$(uname -r)/ 下的 .ko 文件。残留驱动文件会导致下次 modprobe 自动加载旧版,引发冲突。

  • 定位文件:find /lib/modules/$(uname -r) -name "nvidia*.ko*" 2>/dev/null
  • 安全删除:sudo find /lib/modules/$(uname -r) -name "nvidia*.ko*" -delete
  • 别漏掉 drm_kms_helperi915 等关联模块(尤其 Intel/NVIDIA 混合场景)
  • 删完必须跑 sudo depmod -a,否则 modprobe 可能找不到依赖关系

卸载后 Xorg 还在用旧驱动?清空 /usr/lib/xorg/modules/drivers/

用户态驱动(如 nvidia_drv.so)不随内核模块卸载而消失,X server 启动时仍会加载它,导致黑屏或降级回 llvmpipe。

  • 检查残留:ls /usr/lib/xorg/modules/drivers/ | grep -i nvidia
  • 删除驱动文件:sudo rm -f /usr/lib/xorg/modules/drivers/nvidia_drv.so
  • 同时清理 GL 库路径:sudo rm -rf /usr/lib/x86_64-linux-gnu/nvidia*
  • 若用 glvnd,确认 /usr/share/glvnd/egl_vendor.d/ 下无 NVIDIA 相关 json

uninstall.sh 执行完还报 command not found?检查 PATH 和 initramfs

卸载脚本可能删了二进制但没更新系统环境,常见于 NVIDIA 官方 .run 包。

  • 验证 nvidia-smi 是否真消失:which nvidia-smicommand -v nvidia-smi
  • which 有输出但执行报错,说明 PATH 没刷新或链接断裂,可 sudo updatedb && locate nvidia-smi 全盘搜
  • initramfs 里可能打包了旧模块:sudo update-initramfs -u(Debian/Ubuntu)或 sudo dracut -f(RHEL/Fedora)
  • 最后重启前,建议 sudo systemctl isolate multi-user.target 退出图形环境再操作,避免模块被占用
真正干净的卸载,不是“删完就完”,而是让系统彻底忘记那个驱动存在过——包括内核镜像、用户态库、Xorg 插件、GL 调度器、initramfs 镜像,缺一不可。尤其混合安装(apt + .run)时,漏掉任意一环都可能在下次启动时悄悄复活。

热门栏目