How to convert VMWare Fusion virtual SATA disk to virtual NVMe disk


If you have been using VMware Fusion for a while, you may not be taking advantage of all the latest improvements the company has made to its products over the years. One of those improvements has been adding faster bus types to the application. Previously you were limited to IDE or SCSI bus types but now users can also choose SATA or NVMe bus types, which offer much greater speeds. But what if you want to upgrade an old virtual machine to take advantage of the newer technology? Well, the good news is, you can–pretty easily actually.

The first step is to make sure Windows has the newest drivers. This can be done by adding a second drive to the computer:

  • Power off the virtual machine.
  • At this point, I’d recommend making a clone of the virtual machine before proceeding just in case something goes awry. 
  • Next, add a new NVMe disk to the virtual machine.
  • In the VM settings, click on the Hard Drive under the Removable Devices section. 
  • Click on the Add Device button in the top right corner. 
  • Once you click on Add Device… you’re going to select New Hard Disk from the window and click Add.
  • Once the new Hard Disk has been added to the VM, click the Advanced options and select the Bus type to be NVMe.
  • Note: It doesn’t really matter how big the NVMe disk size is as it’s just a temporary disk you’ll be using. 
  • Next, power on the virtual machine and ensure VMWare Tools has been upgraded to the latest version. You can check once the VM is powered on by clicking Virtual Machine in the menu bar, if VMWare Tools is out of date, it’ll prompt you to upgrade it. If it’s the latest, it’ll say “Reinstall VMWare Tools.”

The second step is to manually edit the .vmx file:

  • First, power off the virtual machine.
  • Close out of the virtual machine in VMWare Fusion.
  • Open Finder and locate where the place you store your Virtual Machine, right click it, and choose Show Package Contents.
  • You will see a bunch of files in the Finder window (like above). The only one you want to edit is the .vmx file.
  • I’d recommend making a backup copy of the .vmx file before doing anything to it. Simply copy it to another location on your computer for safe keeping.  
  • Open the .vmx file in a text editor (I used Atom, but any text editor should be fine). 
  • With the .vmx file open in the text editor, look for the following lines (Note: I had my previous bus type set to SATA, so if you used SCSI or IDE as your bus type the beginning will look a little different. Instead of starting with sata0, it will likely start with scsi0 or ide0.):
  • Make note of the line: sata0:0.fileName = “Virtual Disk.vmdk” as you will need to know the Virtual Disk name in a minute.
  • With the Virtual Disk name copied, delete the two lines I have highlighted in the screenshot: sata0:0.present = “TRUE” and sata0:0.fileName = “Virtual Disk.vmdk”
  • Now scroll to the bottom of the file and you will see the new NVMe entries that were created for the new drive. It will start with nvme0.
  • Only change the following line: nvme0:0.fileName. As you can see mine says “Virtual Disk 2.vmdk” — yours may as well, but could possibly be different. It doesn’t matter. What matters is you change the file name to the file name from earlier, in my case, “Virtual Disk.vmdk” — that’s it. Don’t touch any other lines.
  • Save the .vmx file.
  • Open the virtual machine in VMWare Fusion and power it on. It should boot using the new NVMe bus type (with all your data still intact). 
  • You can check to make sure you’re using the NVMe bus type by going to Computer, right clicking the drive, and going to the Hardware tab. If you did it right, it should look something like this:

There you have it. You have now successfully converted your virtual SATA (or other) disk to a virtual NVMe disk. It may look a little daunting but it’s pretty easy to do. If you have any questions feel free to reach out in the comments.