如何卸载CentOS旧驱动
小樊
48
2025-11-22 01:57:16
CentOS 卸载旧驱动的实用步骤
一、NVIDIA 显卡驱动卸载(最常见场景)
- 准备与检查
- 建议切换到多用户文本模式,避免图形界面占用:sudo systemctl isolate multi-user.target
- 查看是否仍有进程占用 GPU:sudo lsof /dev/nvidia*,必要时 kill -9 ;若有容器/进程使用 GPU,先停止它们以避免卸载失败或残留占用。
- 执行卸载
- 若当初是用 NVIDIA 官方安装包安装:运行 sudo /usr/bin/nvidia-uninstall;或找到当初的 NVIDIA-Linux-x86_64-<版本>.run 并执行:sh NVIDIA-Linux-x86_64-<版本>.run --uninstall。
- 若是使用发行版仓库安装(kmod-nvidia 等):先列出包 rpm -qa | grep -i nvidia,再按包名移除,例如 sudo yum remove kmod-nvidia*、sudo yum remove nvidia-x11-drv*、sudo yum remove nvidia-settings 等。
- 清理 CUDA(如曾安装):sudo yum remove “cublas” “cuda*”。
- 清理残留与重建 initramfs
- 删除残留配置与库文件(按需保留系统文件):sudo rm -rf /etc/modprobe.d/nvidia*、/etc/X11/xorg.conf.d/00-nvidia.conf、/usr/lib64/nvidia、/var/lib/nvidia 等。
- 重建 initramfs:sudo dracut --force(确保移除后启动不加载 nvidia 模块)。
- 重启与验证
- sudo reboot
- 验证卸载结果:lsmod | grep nvidia 应无输出;nvidia-smi 应提示找不到命令或驱动未加载。
二、卸载后验证与常见问题处理
- 彻底性检查清单
- 包是否清干净:rpm -qa | grep -i nvidia(无输出为佳)
- 内核模块是否卸载:lsmod | grep nvidia(无输出)
- 配置文件是否清理:/etc/modprobe.d/、/etc/X11/ 下无 nvidia 相关文件
- 环境变量是否残留:检查 echo $CUDA_HOME、$CUDA_PATH、$LD_LIBRARY_PATH 等,必要时在 ~/.bashrc、/etc/profile.d/ 中移除相关行并
source 重载
- 若遇到 “An NVIDIA kernel module ‘nvidia-uvm’ appears to already be loaded”
- 说明有进程/容器占用或模块未完全释放:先停占用进程/容器,再重试卸载;必要时重启后再执行卸载流程。
三、如需重装驱动或 CUDA 的简要提示
- 安装前准备
- 确保已彻底卸载旧版,并重建 initramfs;必要时确认 nouveau 未被错误启用(禁用方法:在 /etc/modprobe.d/blacklist-nouveau.conf 写入 “blacklist nouveau” 与 “options nouveau modeset=0”,然后重建 initramfs 并重启)。
- 安装与版本匹配
- 驱动与 CUDA 存在版本对应关系;安装前用 nvidia-smi 查看驱动支持的最高 CUDA 运行时版本,避免不匹配导致计算不可用。
四、非 NVIDIA 驱动的卸载思路
- 通用流程
- 优先使用发行版包管理器卸载(如 yum remove <驱动包名> 或 rpm -e <包名>),并清理对应的内核模块(如 modinfo <模块名> 确认后 rmmod <模块名>)、配置文件与库目录。
- 更新 initramfs 并重启,最后用相应工具(如 lspci、lsmod、系统日志)验证设备与模块状态。
- 说明
- 不同硬件厂商与驱动形态差异较大,建议提供具体驱动名称与安装方式(run 包/仓库/kmod/dkms)以获取更精确的卸载命令。