VMware Communities
JimmyW
Contributor
Contributor
Jump to solution

Replacing one virtual disk with another in a VM

I'm running VMware 10 on a Win 7x64 host.  I have two Win 7x64 VMs that I created on this host.  Each is set up with the LSI SCSI disk/drivers.  Call them VM-A and VM-B.  Each runs fine.  I added the virtual disk from VM-A to VM-B.  Then, I made the disk from VM-A the first boot device in VM-B.  However, VM-B then blue screens with the Stop 0x7B error, which typically means a boot disk/driver issue.  Again, each VM boots okay on its own.  If I did something similar in a physical machine it should work fine, so there's something about the virtual systems that's involved here.  It makes no difference whether I make the disk from VM-A persistent or non-persistent.  Thanks.

Reply
0 Kudos
1 Solution

Accepted Solutions
HuanguoZhong
VMware Employee
VMware Employee
Jump to solution

Good, seems the blue screen caused by the VM-A disk,  maybe you can attached it to another Guest(VM-B) to have a try. Smiley Happy

View solution in original post

Reply
0 Kudos
14 Replies
continuum
Immortal
Immortal
Jump to solution

Hmmm - just came across somethig similar - in ESXi though - but maybe it is the same here ....

VM A:
scsi0:0.filename = a.vmdk

bootdevice = scsi0:0
=== works

VM B:

scsi0:0.filename =b.vmdk

bootdevice = scsi0:0

=== works

VM A:

scsi0:0.filename = b.vmdk

scsi0:1.filename = a.vmdk
bootdevice = scsi0:0

=== works

VM A:
scsi0:0.filename = a.vmdk

scsi0:1.filename =b.vmdk

bootdevice = scsi0:1
===bluescreen 7b


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

JimmyW
Contributor
Contributor
Jump to solution

Thanks, Ulli.  Yes, it's just as you said, but how can we fix this issue?  If I can do what I propose in a physical machine (swap physical boot drives), why can't I do it in VMware?  I've tried various repairs by booting to the Win 7 disc command line, but nothing works.  I think the issue relates to the loading of the LSI_SCSI driver, which is set to start (Start=0) on boot with VM-B.  For some reason, swapping drives in the VM prevents it from loading.

Reply
0 Kudos
continuum
Immortal
Immortal
Jump to solution

In ESXi I got the 7b using 2003 R2 VMs - on physical machines and on older VMware versions that usually works

A bit strange - but setting the value for scsi0:* is almost as quickly done as changing the bootorder in BIOS so for me it is not a real problem as soon as you are aware of it

Ulli


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

JimmyW
Contributor
Contributor
Jump to solution

Thanks.  Are you saying that I can overcome this by editing a value in my vmx file (attached)?  There is no bootdevice value in the vmx, but perhaps it can be added.

Reply
0 Kudos
WoodyZ
Immortal
Immortal
Jump to solution

As an example you can add the following options to the .vmx configuration file to set the Boot Order of the HDD.

bios.bootOrder = "HDD"

bios.hddOrder = "scsi0:0"

Reply
0 Kudos
JimmyW
Contributor
Contributor
Jump to solution

Okay, I understand.  Doesn't resolve anything, but saves a trip into the BIOS. 

Reply
0 Kudos
WoodyZ
Immortal
Immortal
Jump to solution

I didn't suggest that it would and was providing it as an example.  Obviously the value of bios.hddOrder can be changed accordingly.

That said, I would never under any circumsatnces in a physical or virtual machine attach two disks that have Windows OSes installed, with both having the boot flag set, on the same BUS.  I've seen bad things happen and as a result in the physical realm I always would put it in a Firewire/USB enclosure and attach it once the System was up and running.  Or I'd boot using a Linux Live OS where it would by default mount the NTFS Volume Read Only.

Reply
0 Kudos
continuum
Immortal
Immortal
Jump to solution

Yes
you now have

scsi0:0.fileName = "VM-B-000001.vmdk"

scsi0:1.fileName = "F:\CASES\VM-A-000003.vmdk"

and if that fails because you need to boot from scsi0:1 then revert back the boot-oder to scsi0:0 and leave it like that.

Then just swap

scsi0:0.fileName = "VM-B-000001.vmdk"

scsi0:1.fileName = "F:\CASES\VM-A-000003.vmdk"

with

scsi0:1.fileName = "VM-B-000001.vmdk"

scsi0:0.fileName = "F:\CASES\VM-A-000003.vmdk"


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
JimmyW
Contributor
Contributor
Jump to solution

Thanks Woody and Continuum.  I set the boot order to scsi0:0 first.  If I change the parameters to the following, VMWare indicates that the vmx is corrupt. 

scsi0:0.fileName = "VM-B-000001.vmdk"

scsi0:0.fileName = "F:\CASES\VM-A-000003.vmdk"

My guess is that I can't have two scsi0:0 values as in your example, unless I misunderstood what you meant.  Note that if I remove the original disk from VM-B and leave only the disk that I added from VM-A (F:\CASES\VM-A-000003.vmdk), it still BSODs.  So, even with only one disk from an another operable VM, it won't boot.

Woody, I agree that I probably would not do this in the physical world, but it would work if I did.  You probably could do some editing of the BCD to make it less dangerous.  In some tests in a physical box, Windows 7 automatically adjusted and prompted me to choose an OS.

Reply
0 Kudos
continuum
Immortal
Immortal
Jump to solution

Oops - oh dear - shame on me - that settings will not work of course - every parameter that is defined twice makes the vmx invalid.
Sorry - I correct the post now


________________________________________________
Do you need support with a VMFS recovery problem ? - send a message via skype "sanbarrow"
I do not support Workstation 16 at this time ...

Reply
0 Kudos
JimmyW
Contributor
Contributor
Jump to solution

No worries!  Anything is worth trying at this point.  Smiley Happy

Reply
0 Kudos
HuanguoZhong
VMware Employee
VMware Employee
Jump to solution

But I've tried on WS10 with two Win7Sp1 64bit VMs on Win7Sp1 64bit host, the guest can be power on successfully.

1. VM-A and VM-B

2. added the virtual disk from VM-A to VM-B

3. power on VM-B, succeed.

4. made the disk from VM-A the first boot device in VM-B

5. power on VM-B, succeed.

Reply
0 Kudos
JimmyW
Contributor
Contributor
Jump to solution

Thanks, HuanguoZhong.  As I mentioned, I'm also using Win 7x64 guests and host.  I tried it again using a different VM-A, and it still blue screened.  My VM-B boots fine with the virtual disk from VM-A attached, but it won't boot from the attached VM-A disk.  I'm using LSI SCSI disks/driver in both systems.  One thing that we may be doing differently is that my VM-A is built from a dd image, which should not matter.  My VM-B is a fresh Win7x64 system.  However, I am able to boot to a Window 8 system (EFI) virtual disk (VM-A) that I add to my Windows 7 VM-B.  I also just found that I can boot the secondary disk if I use a VM-B that is built from an image of a Win7x64 system.  I'll test some more and post back.

Update:  everything seems okay thus far if I use a Windows 8x64 guest.  It will boot from an attached 7x64 virtual disk. 

Reply
0 Kudos
HuanguoZhong
VMware Employee
VMware Employee
Jump to solution

Good, seems the blue screen caused by the VM-A disk,  maybe you can attached it to another Guest(VM-B) to have a try. Smiley Happy

Reply
0 Kudos