VMware to Proxmox Migration - SCSI Controller

fettmasta

New Member
Feb 9, 2026
5
2
3
Hello,

We are currently testing migrating our VMware Dev environment to Proxmox, we are using Veeam to migrate VMs and all seems to work well, the one thing that has been hit or miss for me is changing the SCSI Controller from VMware PVSCSI to VirtIO SCSI Single - I get blue screen on our windows devices saying boot device not accessible.

Does anyone have a clean way to do this? The guide here is not clear, and does not seem to work for us. What is the best way to get this working once the VM has migrated to Proxmox? We will need to do this for windows servers 2016+ and Linux RHEL 8.10+.
 
1. You need to install virtio drivers before migrating a VM. Unfortunately, this will still not allow to boot a VM if boot disk is SCSI.

2. The easiest way is to select one existing drive(at least one) to be SCSI and others to be SATA, but not the boot disk !

3. When WIndows boots, it will detect a new disk. In our case, we had to make it online and non-read-only. We have used powershell script to make drives online and writable.

4. After it is detected, power off a VM and make all of them SCSI.

Now Windows VM will boot properly. There are other ways of doing it also. Make sure to use automation. We have automated everything, so an external python script makes 3 reboots, taking into consideration what I have written above. We have powershell scripts that automate IP address reconfiguration+DNS, bring disks online ...
 
1. You need to install virtio drivers before migrating a VM. Unfortunately, this will still not allow to boot a VM if boot disk is SCSI.

2. The easiest way is to select one existing drive(at least one) to be SCSI and others to be SATA, but not the boot disk !

3. When WIndows boots, it will detect a new disk. In our case, we had to make it online and non-read-only. We have used powershell script to make drives online and writable.

4. After it is detected, power off a VM and make all of them SCSI.

Now Windows VM will boot properly. There are other ways of doing it also. Make sure to use automation. We have automated everything, so an external python script makes 3 reboots, taking into consideration what I have written above. We have powershell scripts that automate IP address reconfiguration+DNS, bring disks online ...
Just to clarify step (2), we should select one drive to be SCSI (not the boot drive...?) and everything else SATA? So boot drive would be SATA?
 
1. You need to install virtio drivers before migrating a VM. Unfortunately, this will still not allow to boot a VM if boot disk is SCSI.

2. The easiest way is to select one existing drive(at least one) to be SCSI and others to be SATA, but not the boot disk !

3. When WIndows boots, it will detect a new disk. In our case, we had to make it online and non-read-only. We have used powershell script to make drives online and writable.

4. After it is detected, power off a VM and make all of them SCSI.

Now Windows VM will boot properly. There are other ways of doing it also. Make sure to use automation. We have automated everything, so an external python script makes 3 reboots, taking into consideration what I have written above. We have powershell scripts that automate IP address reconfiguration+DNS, bring disks online ...
We did install virtio drivers and qemu guest on these windows hosts before they were migrated to Proxmox, I can boot PVSCSI with scsi disks, just not virtio scsi single. That is my only issue
 
We did install virtio drivers and qemu guest on these windows hosts before they were migrated to Proxmox, I can boot PVSCSI with scsi disks, just not virtio scsi single. That is my only issue
You cannot boot Virtio SCSI, initially. If you have multiple drives, select at least one of the to be SCSI(not bootable!) and boot disk needs to be SATA, others really does not matter.

If you have only one disk, you need to add a "fake" disk. When Windows detects it, it will load Virtio SCSI driver and at the next boot, bootable disk can be SCSI.

As I said there are other ways of doing this. I I think this is the easiest. You can automate all this. Especially if you are migrating 50+ VMs.

If you are using Proxmox Importer tool, just select option "Prepare for Virtio". It will select the proper controller SCSI single and make all disks SATA. But you still need correct this, to have at least one SCSI disk.
 
Last edited:
  • Like
Reactions: fettmasta
We do the following:
  • Remove VM Tools and power down
  • Import the VM leaving the disks as SATA
  • Create a 1GB SCSI disk
    Power on the VM, install the Guest Tools and Agent. Power down,
  • Remove / Delete the 1GB SCSI Disk
  • Detach the OS Disk (SATA). Attach the Disk as SCSI
  • Change the Boot Device in Options
  • Start the VM
 
  • Like
Reactions: fettmasta
We do the following:
  • Remove VM Tools and power down
  • Import the VM leaving the disks as SATA
  • Create a 1GB SCSI disk
    Power on the VM, install the Guest Tools and Agent. Power down,
  • Remove / Delete the 1GB SCSI Disk
  • Detach the OS Disk (SATA). Attach the Disk as SCSI
  • Change the Boot Device in Options
  • Start the VM
And this process is done while having the controller set as VIrtIO SCSI Single for the VM in question?
 
Great! That worked. My issue was I started this testing on SQL servers with multiple disks.

Change SCSI Controller to Virtio SCSI Single
Change boot disk to SATA
Detach and re-attached a random disk as SCSI under the new controller
Booted up and brought the random SCSI disk online. Shut down and changed boot disk to SCSI.
All is well now.

Thank you all!