谷桐羽 2025-12-19 22:50 采纳率: 98.6%
浏览 1
已采纳

Ubuntu 22.04安装时无法识别NVMe硬盘

在安装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

    三、诊断流程与排查路径

    建议按照以下顺序进行系统性排查:

    1. 重启进入 BIOS/UEFI 设置界面
    2. 确认 NVMe 设备是否在“Storage”或“Peripheral”选项中列出
    3. 检查 SATA 模式是否为 AHCI,而非 RAID 或 RST
    4. 关闭 CSM(Compatibility Support Module)以强制纯 UEFI 启动
    5. 暂时禁用 Secure Boot 进行测试
    6. 更新主板 BIOS 至最新版本(尤其适用于 2022 年后发布的 SSD)
    7. 使用 Live USB 启动并执行命令:lspci | grep -i nvme
    8. 查看内核日志:dmesg | grep -i nvme
    9. 检查是否加载驱动:lsmod | grep nvme
    10. 确认使用的 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 内核包以增强硬件兼容性
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 12月20日
  • 创建了问题 12月19日