我在 Oracle X8-2L 上摆弄 NVMe 热插拔。我有许多 NVMe 驱动器在启动前连接到服务器,然后有许多 NVMe 驱动器将在服务器启动后连接。启动后,我立即执行 lsblk 并按预期查看启动时连接的所有驱动器。此时,我连接热插拔驱动器并执行“echo 1 > /sys/bus/pci/rescan”。重新扫描后,我执行另一个“lsblk”,但我只看到启动时连接到系统的 NVMe 驱动器,启动后连接的驱动器丢失。
不过,我执行了“lspci -v | grep -i nvme”,我看到了额外的热插拔连接驱动器,但它们显示没有“正在使用的内核驱动程序”
如下所示,同时显示“正在使用的内核驱动程序:nvme”和“内核模块:nvme”的 nvme 驱动器是启动时连接的驱动器,仅显示“内核模块:nvme”的驱动器是启动后连接的驱动器(请参见 0000:cf:00.0 与 0000:ce:00.0)
看起来我需要做的就是让驱动程序为这些驱动器工作,它们显示为 nvme 驱动器,内核将它们视为 nvme 驱动器,我不明白为什么没有为它们加载驱动程序。我认为在设备上进行绑定会附加驱动程序(我没有在这个区域花费很多时间,所以我可能是错的)我尝试做一个
“echo 0000:cf:00.0 > /sys/bus/pci/drivers/nvme/bind”,但它返回“bash: echo: write error: No such device”
查看 /sys/bus/pci/devices 我看到该设备存在