Linux 内核参数 pci-stub.ids=

`pci-stub.ids=` 是 Linux 内核启动参数,用于在系统初始化阶段预先将指定 Vendor ID:Device ID 的 PCI 设备绑定到 `pci-stub` 哑驱动,防止宿主机原生驱动加载,常用于 KVM 设备直通隔离 。

参数格式与用法

  • 基本语法:`pci-stub.ids=vendor:device:subvendor\[:subdevice\[:class\[:class_mask]]]`

  • 多设备分隔:多个 ID 组合用英文逗号分隔(无空格),如 `10de:1b80,8086:100e`

  • 配置位置:写入 GRUB 命令行(如 `/etc/default/grub` 中的 `GRUB_CMDLINE_LINUX`),示例:`GRUB_CMDLINE_LINUX="... pci-stub.ids=10de:1b80"`

  • 生效方式:修改后需执行 `update-grub`(或 `grub2-mkconfig`)并重启系统方可生效

关键说明

  • 驱动状态:该参数仅在内核启动时生效,使 `pci-stub` 驱动在探测阶段直接接管匹配设备,无需后续手动写入 `/sys/bus/pci/drivers/pci-stub/new_id`

  • 现代替代方案:`pci-stub` 已逐渐被 `vfio-pci` 取代(更稳定、支持 IOMMU 组隔离),现代直通场景推荐优先使用 `vfio-pci.ids=` 参数配合 `rd.driver.pre=vfio-pci`

  • 获取设备 ID:通过 `lspci -nn` 查看目标设备的 `VendorID:DeviceID`(十六进制,如 `10de:1b80`)

注意事项

  • 若内核未编译内置 `pci-stub` 或模块未加载,该参数无效(需确认 `CONFIG_PCI_STUB=y` 或模块可用)

  • 错误格式(如含空格、大小写错误)会导致参数忽略,需通过 `dmesg | grep pci-stub` 验证是否成功添加 ID

相关推荐
蜀道山老天师4 分钟前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
Mr.朱鹏12 分钟前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
mengge.cloud25 分钟前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
tang777891 小时前
反爬虫场景下代理IP池的动态扩容与失效IP自动清理方案实现
linux·服务器·网络·爬虫代理·住宅代理ip
新时代牛马2 小时前
Linux 系统调用与IPC 完整篇:从syscall 入口、VDSO 到pipe/shm/futex 选型
linux·运维·服务器
fpcc4 小时前
计算机原理—Linux是如何加载可执行文件到内存
linux
野熊佩骑4 小时前
Kubernetes实战系列文章(三) 之 K8S运维常用命令
linux·运维·docker·微服务·云原生·容器·kubernetes
码农客栈4 小时前
linux 设备树下的 platform 驱动编写
linux
小HANN4 小时前
Linux建站实战:CentOS7+LNMP 从零部署 ECShop 开源电商系统
linux·运维·服务器·经验分享
做运维的阿瑞4 小时前
Shell 脚本经典十三问:引号、变量、子 Shell 与重定向一次讲清问:引号、变量、子 Shell 与重定向一次讲清
linux·tcp/ip