游乐游手机版
首页/系统平台/文章详情

Linux系统彻底卸载残留驱动的实用教程

时间:2026-07-03 07:35
卸载Linux驱动后需彻底清理残留,具体操作:先卸载已加载的内核模块并更新模块依赖(即执行sudodepmod-a),再删除 usr lib xorg modules drivers 下的驱动文件及OpenGL库,最后更新initramfs镜像,确保内核模块、用户态库、Xorg显示服务器插件等均无残留,以防重启后驱动自动加载。

搞Linux驱动卸载清理,最让人头疼的往往不是记不住命令,而是你自以为已经删干净了,结果一重启系统,旧驱动又像幽灵一样冒出来。这个问题在NVIDIA驱动上尤其普遍——因为涉及的文件实在太分散:内核模块、用户态库、Xorg驱动、GL调度器,甚至initramfs里都可能藏着残留的旧模块。今天这篇文章就专门拆解每个环节,把清理的每一步掰开揉碎,确保系统彻底遗忘那个驱动曾经存在过。

Linux怎么卸载残留驱动

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
  • 别忘了检查关联模块——尤其是Intel/NVIDIA混合场景下的drm_kms_helperi915
  • 删完必须执行sudo depmod -a,否则依赖关系缓存还指向旧模块,下一次加载照样报错

卸载后 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里可能打包了旧模块——Debian/Ubuntu上执行sudo update-initramfs -u,RHEL/Fedora执行sudo dracut -f
  • 重启之前,建议先sudo systemctl isolate multi-user.target退出图形环境再操作,避免模块被占用

真正干净的卸载,不是“删完就算完”,而是让系统彻底遗忘那个驱动存在过——内核镜像、用户态库、Xorg插件、GL调度器、initramfs镜像,缺一不可。尤其是在混合安装(apt + .run)的场景下,漏掉任意一环,下次启动时旧驱动就可能悄悄复活。

来源:https://www.php.cn/faq/2751318.html
上一篇Mac如何关闭自带输入法的联想功能 下一篇如何在Linux系统中配置核心调度器参数详细教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Win11频繁断网提示默认网关不可用怎么办
系统平台 · 2026-07-03

Win11频繁断网提示默认网关不可用怎么办

先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址

Mac如何取消正在进行的系统备份任务
系统平台 · 2026-07-03

Mac如何取消正在进行的系统备份任务

Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退

电脑显示器刷新率锁死60Hz无法调整的解决方法
系统平台 · 2026-07-03

电脑显示器刷新率锁死60Hz无法调整的解决方法

显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。

Linux系统下Systemd服务管理从零开始方法步骤详解完整教程
系统平台 · 2026-07-03

Linux系统下Systemd服务管理从零开始方法步骤详解完整教程

systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。

Mac如何取消同步iPhone书签和历史记录
系统平台 · 2026-07-03

Mac如何取消同步iPhone书签和历史记录

彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。