CentOS无网络环境下,如何离线安装NVIDIA驱动?

在无网络连接的生产环境或隔离服务器中,为CentOS系统安装NVIDIA驱动是一项常见但具有挑战性的任务,整个过程的核心在于“先在线准备好,后离线来安装”,本文将详细阐述这一流程,确保您能够顺利完成离线安装,并解决可能遇到的常见问题。

CentOS无网络环境下,如何离线安装NVIDIA驱动?

第一步:在线环境下的准备工作

在拥有互联网访问权限的、与目标离线机系统环境(CentOS版本、内核版本)尽可能一致的“准备机”上,我们需要下载所有必需的文件。

确认目标离线机的系统信息

在离线机上执行以下命令,获取关键信息,并记录下来,这些信息将指导我们在准备机上下载正确的驱动和依赖包。

# 查看CentOS版本
cat /etc/centos-release
# 查看当前内核版本,此版本号至关重要
uname -r
# 示例输出:3.10.0-1160.83.1.el7.x86_64
# 查看GPU型号
lspci | grep -i nvidia
# 示例输出:01:00.0 VGA compatible controller: NVIDIA Corporation ...

要点: uname -r的输出必须与即将下载的kernel-develkernel-headers包的版本号严格一致,任何差异都会导致驱动编译失败。

下载NVIDIA官方驱动程序

访问NVIDIA官方驱动下载页面:https://www.nvidia.com/Download/index.aspx

根据之前记录的GPU型号、操作系统(选择Linux 64-bit)和CentOS版本,搜索并下载合适的驱动程序文件,文件通常为.run格式,NVIDIA-Linux-x86_64-525.147.05.run

下载核心依赖包

NVIDIA驱动的安装过程需要编译内核模块,因此必须安装开发工具和内核头文件,在准备机上,使用yumdownloader工具来下载这些包及其所有依赖项,而无需实际安装它们。

确保安装了yum-utils

sudo yum install -y yum-utils

创建一个目录用于存放所有下载的文件,并进入该目录:

mkdir nvidia-offline-packages
cd nvidia-offline-packages

使用yumdownloader命令下载以下关键包。--resolve参数会自动下载所有必需的依赖项。

CentOS无网络环境下,如何离线安装NVIDIA驱动?

# 下载与离线机内核版本完全匹配的 kernel-devel 和 kernel-headers
# 请将 "3.10.0-1160.83.1.el7.x86_64" 替换为您离线机实际的内核版本
yumdownloader --resolve kernel-devel-3.10.0-1160.83.1.el7.x86_64 kernel-headers-3.10.0-1160.83.1.el7.x86_64
# 下载编译工具链和其它关键库
yumdownloader --resolve gcc make dkms elfutils-libelf-devel

将下载的NVIDIA .run文件也移动到此目录中,至此,准备工作完成,这个nvidia-offline-packages文件夹包含了离线安装所需的一切。

第二步:离线环境下的安装过程

将准备好的nvidia-offline-packages文件夹通过U盘、移动硬盘或内部网络共享等方式传输到目标CentOS离线机上。

安装所有依赖包

在离线机上,进入存放依赖包的目录,使用yum localinstall命令进行本地安装,此命令能自动处理本地RPM包之间的依赖关系。

cd /path/to/nvidia-offline-packages
sudo yum localinstall ./*.rpm

等待安装完成,确保没有报错。

禁用系统默认的nouveau驱动

CentOS默认使用开源的nouveau驱动,它会与NVIDIA官方驱动冲突,必须将其禁用。

创建一个新的黑名单文件:

sudo vi /etc/modprobe.d/blacklist-nouveau.conf

在文件中添加以下两行内容:

blacklist nouveau
options nouveau modeset=0

保存并退出后,需要重新生成initramfs并重启系统以使更改生效。

sudo dracut --force
sudo reboot

执行NVIDIA驱动安装

系统重启后,进入命令行模式(非图形界面),如果系统默认启动图形界面,可以通过以下命令切换:

CentOS无网络环境下,如何离线安装NVIDIA驱动?

sudo systemctl isolate multi-user.target

进入存放NVIDIA驱动的目录,为.run文件添加执行权限并运行安装程序:

cd /path/to/nvidia-offline-packages
chmod +x NVIDIA-Linux-x86_64-*.run
sudo ./NVIDIA-Linux-x86_64-*.run

安装过程中,会显示NVIDIA的用户许可协议(EULA),选择Accept接受,后续步骤,如安装32位兼容库等,通常选择默认选项即可(按回车键或选择Yes),安装程序会自动编译并安装内核模块。

安装成功后,重启系统以加载新驱动:

sudo reboot

验证安装

系统再次启动后,打开终端,输入以下黄金命令来验证驱动是否安装成功:

nvidia-smi

如果看到类似下图的表格输出,包含了驱动版本、CUDA版本、GPU型号、温度、功耗和使用率等信息,那么恭喜您,NVIDIA驱动已成功安装。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.147.05   Driver Version: 525.147.05   CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  On   | 00000000:01:00.0 Off |                  N/A |
| 30%   28C    P8    15W / 350W |    256MiB / 12288MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

相关问答FAQs

问1:为什么在安装NVIDIA驱动之前,必须禁用nouveau驱动?
答: nouveau是Linux内核中自带的开源NVIDIA显卡驱动程序,而我们要安装的是NVIDIA官方提供的闭源私有驱动,这两个驱动都试图控制同一块硬件,如果同时存在,会发生严重的冲突,导致系统无法正常启动GUI、黑屏或驱动加载失败,必须通过黑名单机制在内核层面彻底禁用nouveau,为官方驱动的安装和运行扫清障碍。


答: 如果版本不匹配,NVIDIA安装程序在编译内核模块时会失败,并报错,提示找不到与当前内核对应的头文件,这会导致安装中断,内核模块是驱动与内核沟通的桥梁,必须精确匹配,为了避免这个问题,最可靠的方法是在准备机上,使用uname -r获取离线机的确切内核版本号,然后在下载kernel-develkernel-headers包时,使用完整的版本号(包括el7.x86_64等后缀)进行指定下载,确保万无一失。

【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!

(0)
热舞的头像热舞
上一篇 2025-10-09 00:42
下一篇 2025-10-09 00:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

QQ-14239236

在线咨询: QQ交谈

邮件:asy@cxas.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信