← 返回目录课程:《Ubuntu配置Mellanox 25G网卡教程》
02

02 Ubuntu 22.04 LTS系统安装与内核版本确认

安装纯净Ubuntu 22.04,确认内核版本≥5.15,为驱动兼容性做准备
章节导航 难度:入门类型:排障定位
本页抓手

掌握Ubuntu配置Mellanox在Ubuntu 22.04 LTS系统安装与内核版本确认中的定位、故障信号与验证顺序。

机制词
模块接口配置流程状态
可复用材料
代码片段排障表检查清单架构图

排障先看这三点

  1. 先核对LTS系统安装的前置条件、异常信号和验收结果
  2. 再用伪代码把实现动作固定下来
  3. 最后用稳定性与可观测性验证结果是否可复现

源码证据

Ubuntu 22.04 LTS系统安装与内核版本确认只有在出现源码、函数、脚本或 API 证据时,才需要进入代码层核对。

本节把Ubuntu配置Mellanox对应的调用关系、异常状态和复测证据放在一起检查。

为什么必须从纯净系统开始:内核版本与驱动兼容性

Ubuntu配置MellanoxUbuntu22.04LTS闭环复核01纯净系统避免旧版本干扰02内核版本确认≥5.15基线03UEFI模式关闭SecureB…04驱动兼容验证PCIe枚举05验收结果复测无丢包断连06对象边界先定义适用范围

LTS系统安装的验收口径

在部署 25G 网卡(25 Gigabit Ethernet Network Interface Card)之前,操作系统的底层环境直接决定了驱动能否成功加载。Mellanox 的 ConnectX 系列网卡驱动(如 核心)深度依赖 Linux 内核的子系统,尤其是 PCIe 枚举、网络栈和 RDMA(Remote Direct Memory Access)模块。如果系统是从旧版本升级而来,或者内核被第三方工具修改过,很可能导致驱动编译失败或网卡无法被识别

本节的核心目标是在一台裸机或虚拟机上安装纯净的 Ubuntu 22.04 LTS,并确认内核版本不低于 5.15。5.15 是 Ubuntu 22.04 的基线内核,Mellanox 官方驱动包(如 MLNX_OFED)对该内核提供了完整的兼容性验证。低于此版本的内核将无法获得官方支持,即使强行安装也可能在高速数据传输时出现丢包或断连

实操步骤

安装前,请确认 BIOS 中已启用 UEFI 模式并关闭 Secure Boot。Secure Boot 会阻止未签名的内核模块加载,而 Mellanox 驱动在社区版内核下通常未签名,会导致驱动加载失败

安装纯净 Ubuntu 22.04 LTS:分区策略与关键步骤

我们推荐使用 Ubuntu 22.04.3 LTS 的 Server ISO 镜像进行安装。桌面版虽然可用,但会携带大量与网络服务无关的图形库,增加系统攻击面。安装过程中,磁盘分区是第一个容易出错的环节

对于 25G 网卡教程(25G NIC Tutorial)中的服务器角色,建议采用 LVM(Logical Volume Manager)分区方案。这不仅便于后期扩展存储,还能在系统盘故障时快速恢复。以下是推荐的分区布局:

检查清单
Ubuntu配置Mellanox · 参数表:Ubuntu 22.04 LTS 服务器推荐分区方案
检查项标准是否通过常见遗漏
/boot1 GBext4存放内核与 initramfs。过小会导致内核更新失败
/50 GBext4根文件系统。包含系统库和驱动源码编译空间
/var20 GBext4日志与缓存。驱动调试时会产生大量日志,需独立分区防止撑…
swap等于物理内存大小swap内存溢出保护。编译大型驱动包时,内存不足会直接 OOM

安装完成后,系统会自动重启。首次登录后,立即执行系统更新:

sudo apt update && sudo apt upgrade -y sudo reboot

这一步确保内核补丁和固件包都是最新状态,避免因已知 bug 导致网卡识别异常

内核版本确认与驱动兼容性验证

系统重启后,我们需要确认内核版本是否满足 Mellanox 驱动的最低要求。执行以下命令:

uname -r

输出应类似 5.15.0-91-generic。如果低于 5.15,说明安装介质可能不是官方 22.04 LTS 镜像,或者系统被错误地降级了。此时必须重新安装

除了,还需要检查内核是否包含了必要的驱动模块。Mellanox 的 ConnectX-4 Lx 及之后型号的 25G 网卡(25G Network Card)依赖 核心 和 mlx5_ib 模块。执行以下命令验证:

lsmod | grep mlx5

如果没有任何输出,说明内核虽然版本正确,但未加载这些模块。这通常是正常的,因为驱动需要在安装 OFED 包后才会加载。但我们需要确认内核源码树已安装,以便后续编译驱动:

ls /usr/src/linux-headers-$(uname -r)/

如果该目录存在且包含 include 和 Makefile,则说明内核头文件就绪

真实项目场景

某数据中心运维团队在批量部署 25G 网卡时,发现部分服务器安装 Ubuntu 22.04 后,uname -r 显示为 5.15.0-86-generic。虽然高于 5.15,但在安装 MLNX_OFED 时,编译脚本报错“找不到内核构建目录”。排查后发现,这些服务器在安装时选择了最小化安装,跳过了 linux-headers-generic 包。执行 sudo apt install linux-headers-$(uname -r) 后问题解决