如何预测 Vmware 分配给设备的 pciSlotNumber

如何预测 Vmware 分配给设备的 pciSlotNumber

我正在尝试通过命令行在 VMware 下创建虚拟机。根据我目前对该主题的理解,一个步骤是创建一个centos-mirror.vmx包含所需虚拟机配置的文件。

这是我成功注册但无法启动的配置文件的 MVE。

.encoding = "UTF-8"
config.version = "8"
displayName = "centos-mirror"
guestOS = "centos7-64"
virtualHW.version = "11"
numvcpus = "1"
memsize = "2048"
scsi0.present = "true"
scsi0.virtualDev = "pvscsi"
scsi0:0.present = "true"
scsi0:0.deviceType = "scsi-hardDisk"
scsi0:0.fileName = "centos-mirror.vmdk"

该图像centos.mirror.vmdk确实存在。

创建此文件后,我使用 注册了虚拟机vim-cmd vmsvc/register /path/to/centos-mirror.vmx,成功了。如果我尝试使用 启动虚拟机vim-cmd vmsvc/power.on <VM ID>,则会收到以下消息:

Powering on VM:
Power on failed

相关行vmware.log表明 PCI 设备存在问题(由于系统存在气隙,因此仅手动复制相关部分...):

vmx| I125: Device scsi0 requested without secondary PCI slots available.
vmx| A100: ConfigDB: Setting scsi0.pciSlotNumber = "21"
vmx| I125: PVSCSI: scsi0: reqcallThreshold 0
vmx| I125: SCSI0: UNTAGGED commands will be converted to ORDER tags.
vmx| I125: PVSCSI: scsi0: h/w rev #2
vmx| I125:  Failed to register PCI slot.
vmx| I125: Msg_Post: Error
vmx| I125: [msg.pvscsi.badPCI] Unable to allocate a PCI SCSI adapter. Too many PCI devices are already configured.
vmx| I125: [msg.pvscsi.configFailed] Failed to configure virtual device 'scsi0'.

经过多次反复尝试后,我发现在文件中添加以下几行centos-mirror.vmx可以解决此问题:

pciBridge0.present = "true"
pciBridge0.pciSlotNumber = "17"
pciBridge4.present = "true"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.pciSlotNumber = "21"

注册新的虚拟机后,使用相同命令启动机器成功,并且 vmware.log 包含有关缺少操作系统的消息(预期消息,因为未插入可启动设备)。

虽然我或多或少理解为什么需要这个额外的部分,但我不明白为什么pciBridge4必须配置(而不是pciBridge5或其他),以及为什么插槽号设置为 17 和 21。我如何才能从主机环境中预测这些数字以成功编写有效的配置文件,而不必经过反复试验的过程?

相关内容