Due to special use cases users need to change PCI slot number for some VMs.
Example for port assignments in the VMX file:
scsi0.pciSlotNumber = "160"
scsi1.pciSlotNumber = "1184"
scsi2.pciSlotNumber = "224"
scsi3.pciSlotNumber = "256"
However as soon as the VM starts, SCSI IDs revert back to the default value.
VMware vSphere ESXi 8.x
The observed behaviour is by design, this is not formally supported. Reassigning the device PCI slots with the current VM configuration is intended and designed behaviour.
The below workaround can be used to achieve the desired PCI assignment with the old I440BX motherboard layout:
* Create a new VM with compatibility version ESX 7.0U2 (HWv19). Alternatively, create a VM with a later HW version and a BIOS firmware; before the first VM power on, reconfigure the VM and change the Firmware to EFI. Both options should result in having a I440BX VM.
* Before the VM is powered on, open the Edit Settings -> Advanced Parameters and add the PCI slot options for the PVSCSI devices.
* Then power on the VM. The selected slots should be preserved.
The workaround is reboot persistent. PCI slots may change between VM creation and first VM power on. After the first power on, the PCI topology is fixed and won't change through subsequent reboots.