在安装Ubuntu 22.04时,部分用户遇到系统无法识别NVMe固态硬盘的问题,导致安装程序中磁盘列表为空或NVMe设备未显示。该问题常见于较新的主板(如B550、X570)或带有PCIe 4.0 NVMe SSD的设备,可能源于内核驱动缺失、UEFI/BIOS设置不当(如NVMe RAID模式启用或CSM兼容模式开启),或安装介质使用旧版ISO镜像所致。此外,安全启动(Secure Boot)或快速启动设置也可能干扰硬件识别。需确认BIOS中NVMe控制器已启用,并建议使用最新版Ubuntu 22.04.3 LTS镜像制作启动盘,以确保包含适配新硬件的更新内核与驱动。
1条回答 默认 最新
IT小魔王 2025-12-19 22:51关注一、问题现象:Ubuntu 22.04 安装过程中 NVMe 硬盘未识别
在安装 Ubuntu 22.04 LTS 时,部分用户反馈系统无法检测到 NVMe 固态硬盘,导致安装程序中的磁盘列表为空。该现象在搭载 AMD B550、X570 芯片组或支持 PCIe 4.0 的主板上尤为常见。
- NVMe SSD 在 BIOS 中可见但 Ubuntu 安装器中不可见
- 使用旧版 ISO 镜像(如 22.04 初始版本)时更易发生
- 安全启动(Secure Boot)开启可能导致驱动加载失败
- CSM(兼容性支持模块)启用可能干扰 UEFI 模式下的设备枚举
二、根本原因分析
从底层机制来看,NVMe 设备识别依赖于 Linux 内核的
nvme-core模块和 PCI Express 总线枚举机制。Ubuntu 22.04 初始版本基于 Linux 内核 5.15,而部分新型 NVMe 控制器(如部分群联、慧荣主控)需要内核 5.17+ 才能完整支持。可能原因 技术影响 高频出现场景 旧版 ISO 使用过时内核 缺少对新 NVMe 主控的驱动支持 使用 ubuntu-22.04-desktop-amd64.iso(2022年4月版) BIOS 中启用 NVMe RAID 模式 操作系统误认为处于 RAID 阵列环境 ASUS、MSI 主板默认设置 CSM 开启 UEFI NVMe 驱动未正确加载 双系统安装或 Legacy 引导遗留配置 Secure Boot 阻止第三方驱动 内核模块签名验证失败 Dell、HP 商用机型出厂设置 PCIe 4.0 向下兼容异常 链路协商失败导致设备脱机 Ryzen 5000/7000 平台 + 高端 NVMe SSD 三、诊断流程与排查路径
建议按照以下顺序进行系统性排查:
- 重启进入 BIOS/UEFI 设置界面
- 确认 NVMe 设备是否在“Storage”或“Peripheral”选项中列出
- 检查 SATA 模式是否为 AHCI,而非 RAID 或 RST
- 关闭 CSM(Compatibility Support Module)以强制纯 UEFI 启动
- 暂时禁用 Secure Boot 进行测试
- 更新主板 BIOS 至最新版本(尤其适用于 2022 年后发布的 SSD)
- 使用 Live USB 启动并执行命令:
lspci | grep -i nvme - 查看内核日志:
dmesg | grep -i nvme - 检查是否加载驱动:
lsmod | grep nvme - 确认使用的 ISO 是否为 Ubuntu 22.04.3 或更高更新版本
四、解决方案汇总
根据故障层级不同,可采取如下措施:
# 1. 更新 BIOS 后重新制作启动盘 # 推荐使用 Balena Etcher 或 Rufus 写入镜像 # 2. 下载最新镜像(ubuntu-22.04.3-desktop-amd64.iso) wget https://releases.ubuntu.com/22.04.3/ubuntu-22.04.3-desktop-amd64.iso # 3. 在 GRUB 启动菜单编辑内核参数 # 添加:nvme_core.default_ps_max_latency_us=0 intel_iommu=off # 4. 强制加载 NVMe 模块(Live 环境下) sudo modprobe nvme sudo modprobe nvme-core五、高级调试:通过 Mermaid 流程图展示决策路径
graph TD A[启动 Ubuntu 安装介质] --> B{NVMe 磁盘可见?} B -- 否 --> C[进入 BIOS 设置] C --> D[关闭 CSM] C --> E[关闭 Secure Boot] C --> F[设置 SATA 为 AHCI] C --> G[更新 BIOS 版本] D --> H[重启并重试] E --> H F --> H G --> H H --> I{仍不可见?} I -- 是 --> J[使用 22.04.3+ ISO 重建启动盘] J --> K[添加内核参数调试] K --> L[检查 dmesg 输出] L --> M{发现 nvme timeout?} M -- 是 --> N[添加 nvme_core.default_ps_max_latency_us=0] M -- 否 --> O[考虑硬件兼容性问题] O --> P[更换 SSD 或主板插槽测试]六、长期建议与最佳实践
对于 IT 工程师及系统管理员,在部署大规模 Ubuntu 环境时应建立标准化流程:
- 统一使用 Ubuntu 22.04.3 或后续修订版 ISO 制作启动介质
- 制定 BIOS 配置模板:禁用 CSM、启用 UEFI Only、SATA = AHCI
- 对 NVMe 设备建立主控芯片白名单(如三星、西数、铠侠优先)
- 在 PXE 网络安装环境中集成更新后的 initrd 镜像,包含补丁内核模块
- 记录每批次硬件的 dmesg 日志用于归因分析
- 考虑在自动化部署脚本中预加载 nvme 驱动
- 对 Dell R760/R750 等服务器型号特别注意 RAID 控制器虚拟化影响
- 使用
fwupdmgr定期更新 NVMe 固件 - 监控社区 bug 报告(Launchpad #1982451 类似问题持续跟踪)
- 构建内部定制镜像时集成 linux-oem-22.04b 内核包以增强硬件兼容性
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报