温馨提示×

如何卸载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 并重启,最后用相应工具(如 lspcilsmod、系统日志)验证设备与模块状态。
  • 说明
    • 不同硬件厂商与驱动形态差异较大,建议提供具体驱动名称与安装方式(run 包/仓库/kmod/dkms)以获取更精确的卸载命令。

0