VMware Communities
scottsm
Contributor
Contributor

New VM from existing disks, Fusion assigns wrong drive letters

I am converting a Windows Server 2012 virtual machine from Hyper-V (I believe...) to Fusion. I've converted the .vhd disks to .vmdk -- that seems to have gone just fine.

I created a new custom VM in Fusion, added the .vmdk's in the correct order, and picked the correct one to be the boot drive.

Trouble is, when it actually boots up, Windows says "Your PC ran into a problem..." and gives me a choice between

  • Continuing (in which case it cycles back to the same spot)
  • Troubleshooting
  • Turning off

If I select Troubleshooting and get to a command prompt, I see that the disks have the wrong drive letters. What should be drive C is actually drive E, what should be drive D is actually drive C, and what should be drive E is actually drive D! (Note: I can also see the contents of each drive just fine -- so the conversion from .vhd to .vmdk mentioned above seems to be good.)

I don't see anything in the .vmx file that addresses this -- the drive C .vmdk is assigned scsi0:0, drive D is scsi0:1, and drive E is scsi0:2.

What can I do to fix this???

0 Kudos
9 Replies
a_p_
Leadership
Leadership

I guest that due to the new virtual disk controller, Windows gets confused with the disk-IDs and reassigns the drive letters. However, as mentioned this is only a guess.

What you may try is to attach only the system disk to the VM, and then - once Windows is running - attach the other virtual disks one after the other, and check/assign the correct drive letters.

André

0 Kudos
scottsm
Contributor
Contributor

André, that was a very good clue, thank you! Attaching just the system disk yielded two disks, the C: drive was the same as before -- and I had misidentified it before. It's actually another partition in the .vmdk that contains the C: drive.

So -- is there a way I can tell Fusion to only mount the second partition in a .vmdk? Or can I have Fusion reverse the order of the partitions when it mounts the .vmdk?

0 Kudos
a_p_
Leadership
Leadership

All that Fusion does is to attach the virtual disk to the VM's "hardware". Partitioning is completely up to the guest OS.

What kind of partition do you have on that disk? Maybe we can find a workaround!?

For an overview, please run list partition from within diskpart..

André

0 Kudos
scottsm
Contributor
Contributor

Ok, I've looked a little further, and it appears that the original Windows system had three disks. The first one had two partitions -- a small one that Disk Manager calls "Healthy (System, Active, Primary Partition)" and a large one that Disk Manager calls "Healthy (Boot, Page File, Crash Dump, Primary Partition)". When the system boots up on the original cloud system where this came from, although Disk Manager can see the small partition, it's not mounted as a drive letter.

I'm *guessing* that the first, small partition is a boot manager disk, but I'm really not sure.

When I converted the first disk from .vhd to .vmdk with WinImage, it appears to have brought over both partitions, but I suspect they're not set up properly for booting.

And I don't know enough about Windows any more to be able to figure out how to salvage this....any thoughts?

0 Kudos
a_p_
Leadership
Leadership

The partitions on the system disk are most likely as expected. A small small system partition with a few hundred MB, and the OS (C:) partition with the remaining disk space. The small partition doesn't have a drive letter assigned to it.

What you may try to do is:

  1. make sure that only the first virtual disk is attached to the VM
  2. create a snapshot (unless you have a backup)
  3. boot the VM from a Windows Server 2012 installation image
  4. once the language selection shows up press Shift-F10 to open a command prompt
  5. enter the commands
    bootrec /fixboot
    bootrec /fixmbr
    bootrec /rebuildbcd
  6. reboot the VM

If Windows boots as expected, then don't forget to delete the previously created snapshot before you attach the other disks.

André

0 Kudos
scottsm
Contributor
Contributor

I tried running the commands you suggested. The first two claimed success, but the third (bootrec /rebuildbcd) said this:

X:\windows\system32>bootrec /rebuildbcd

Scanning all disks for Windows installations.

Please wait, since this may take a while...

Successfully scanned Windows installations.

Total identified Windows installations: 0

The operation completed successfully

X:\windows\system32>

But the 😧 drive does have a Windows installation.....

0 Kudos
a_p_
Leadership
Leadership

Total identified Windows installations: 0

I've seen this too, and I'm not sure whether this is a bug.

Did something change after running the commands, and rebooting the VM, or is it still the same.


André

0 Kudos
scottsm
Contributor
Contributor

Sorry, I guess I wasn't explicit -- no change after running the commands and rebooting the VM.

0 Kudos
RickShu
VMware Employee
VMware Employee

Hi scottsm,

I'm unable to reproduce your problem in house. I created a custom VM and add an existing Win10 vmdk converted from vhd format, then I selected this disk to start up the virtual machine (Virtual Machine==>Settings==>Startup Disk) and it worked fine. The Windows 10 VM can start up without problem.  Not sure if it related with the partition settings, in my case there is only one partition in the converted vhd file.

Regards,

-Rick

0 Kudos