YIlevent 2025-10-10 20:03 采纳率: 0%
浏览 11

在centos stream 9版本中,如何设置IOMMU为pass状态?

在centos stream 9版本中,如何设置IOMMU为pass状态?

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-10-10 20:04
    关注

    晚上好🌙🌙🌙
    本答案参考通义千问

    CentOS Stream 9 中,设置 IOMMU(Input-Output Memory Management Unit)pass-through(pass 状态) 主要用于虚拟化环境(如 KVM/QEMU),以允许直通设备(如 GPU、网卡等)直接访问物理硬件。


    一、确认当前 IOMMU 状态

    首先,你需要确认当前系统是否启用了 IOMMU。可以通过以下命令查看:

    dmesg | grep -i iommu
    

    如果输出中包含类似 iommu: enabledAMD-Vi: enabled,说明 IOMMU 已启用。


    二、修改内核启动参数以启用 IOMMU 并设置为 pass 模式

    1. 编辑 GRUB 配置文件

    打开 /etc/default/grub 文件进行编辑:

    sudo vi /etc/default/grub
    

    找到 GRUB_CMDLINE_LINUX 行,并添加以下内容:

    intel_iommu=on iommu=pt
    

    注意:

    • 如果是 AMD 平台,请使用 amd_iommu=on iommu=pt
    • intel_iommu=onamd_iommu=on 是启用 IOMMU 的关键参数。
    • iommu=pt 是将 IOMMU 设置为 pass-through 模式。

    例如:

    GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet intel_iommu=on iommu=pt"
    

    2. 更新 GRUB 配置

    保存并退出后,运行以下命令更新 GRUB:

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    

    3. 重启系统

    sudo reboot
    

    三、验证 IOMMU 是否已正确设置为 pass 模式

    重启后,再次运行以下命令检查 IOMMU 状态:

    dmesg | grep -i iommu
    

    你应该看到类似如下输出:

    [0.000000] Intel IOMMU enabled
    [0.000000] IOMMU: enabled in passthrough mode
    

    或者对于 AMD:

    [0.000000] AMD-Vi: enabled
    [0.000000] IOMMU: enabled in passthrough mode
    

    四、配置 QEMU/KVM 使用 IOMMU(可选)

    如果你是在使用 KVM/QEMU 虚拟化,还需要确保在虚拟机配置中启用 IOMMU 支持。

    示例:在 libvirt 的 XML 配置中添加以下内容:

    <domain type='kvm'>
      ...
      <features>
        <iommu model='intel'/>
      </features>
      ...
    </domain>
    

    注意: 根据你的 CPU 类型选择 model='intel'model='amd'


    五、常见问题排查

    | 问题 | 解决方案 | |------|----------| | IOMMU 未启用 | 检查 BIOS 中是否启用了 VT-d(Intel)或 AMD-Vi(AMD) | | 内核不支持 IOMMU | 确保使用的是较新的内核版本(建议 >= 5.10) | | 无法进入 pass 模式 | 检查 GRUB 配置是否正确,确保没有拼写错误 |


    总结步骤(有序列表)

    1. 确认当前 IOMMU 状态

      dmesg | grep -i iommu
      
    2. 编辑 GRUB 配置文件

      sudo vi /etc/default/grub
      

      添加:

      intel_iommu=on iommu=pt
      
    3. 更新 GRUB 配置

      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      
    4. 重启系统

      sudo reboot
      
    5. 验证 IOMMU 状态

      dmesg | grep -i iommu
      
    6. (可选)配置虚拟机使用 IOMMU
      在 libvirt 的 XML 配置中添加 <iommu model='intel'/><iommu model='amd'/>


    如有其他问题,比如 PCI 直通失败设备无法识别,可以进一步提供错误信息,我可以帮你详细分析。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月10日