Highlighted
Contributor
Contributor

Unable to open *.vmdk The system cannot find the file specified

My vm1 was working just fine and I suspended it to open vm2.  After suspending vm2, I came back to vm1 and I get the error cannot open the vmdk file because the system cannot find it.  The file is there.  I can browse to it and see it.  My vmx file appears to be in good shape.  I am using windows 10.   If someone can help, I would appreciate it

10 Replies
Highlighted
Immortal
Immortal

could you Please attach vmware.log for further investigation.

Regards,

Randhir

0 Kudos
Highlighted
Contributor
Contributor

I have the same issue - I wonder if the original poster's file structure looks like this - I saw on linux how you recreate the vmdx file and that made sense,  but i am on windows 10 using VMware Workstation 12 Pro - VMEM file meaning my VM is suspended and it's in Memory? any help or pointing to the right document would greatly appreciated

vmware files.JPG

0 Kudos
Highlighted
User Moderator
User Moderator

Welcome to the Community,

please run dir *.* /one >filelist.txt from the command line in the VM's folder, and attach the resulting filelist.txt to a reply post.


André

0 Kudos
Highlighted
User Moderator
User Moderator

Welcome to the Community lastardcstar​,

this might not be the same issue. According to the screenshot, the VM is missing its virtual disk (.vmdk) file (unless it's stored in another folder).

André

Highlighted
Contributor
Contributor

I think you are right Andre he can see his file at least,, I can't find mine at all,, I thought there was a way to recreate the .

.vmdk

0 Kudos
Highlighted
Contributor
Contributor

here you go

0 Kudos
Highlighted
Contributor
Contributor

Here you go

0 Kudos
Highlighted
User Moderator
User Moderator

One of the required .vmdk files "Windows 10 x64 (2)-s009.vmdk" is missing. Please check whether this file is still available (e.g. in Lost&Found, or from a recent backup).

If not, the only option - after backing up the existing files - is to create another (temporary) virtual machine with a virtual disk in the exact same size, and replace the missing file with one of the temporary VM's .vmdk files (best option is to copy and rename its ..-s009.vmdk file).

This will of course result in file system corruption, and data loss, but it should allow you to access/backup other important data.

André

0 Kudos
Highlighted
Contributor
Contributor

Let me start by saying that after years of using vmware, this is the first time this has ever happened.  Under any circumstances I find it bizarre that a file would just go missing.   I am the only person who uses this machine and I know I didn't delete it. 

I did try exactly what you suggested

  • copied the vm dir to another location
  • copied the vmdk 010 to another location, renamed it to vmdk009
  • copied the the renamed vmdk009 back into the vm dir
  • started up the vm
  • got a blue screen stating that there was corruption with pc
  • restarted again and get windows splash screen saying windows is diagnosing  errors and preparing to repair restarted but did not work
  • repeat above step 2 more times....same result

So with the copied machine not working, I am given some windows repair options, which I have not tired.

I still have the original vm in its dir

What is the lost and found dir that you mentioned?  Is it the same as the recycle bin, or is it another location within the vm program files?

Again, I had just restarted the VM  (VM!and and it seemed to be working fine.  I wanted to check on another vm so I paused VM1 and started VM2.  A few hours later I paused VM2 and tried starting VM1.  That is where I am now. 

Any suggestions?

0 Kudos
Highlighted
Enthusiast
Enthusiast

I'm not sure if this is exactly the same issue, but I was experiencing the same outcome, re: "The system cannot find the file specified" error

At the outset, I want to say either using vm -> manage -> clone or file -> export to OVF are both easier options, but if you've already copied a vm by hand, you can try this out:

I rsynced a VM to clone it, and wanted to rename the files to differentiate it from the old VM.

For the example, let's say my old VM's name was 'Windows Ent EFI' and I wanted to rename it to 'winInsiders'

I use this one-liner just to rename the .vmdk files:

for f in *.vmdk; do mv "$f" "$(echo "$f" | sed s/"Windows Ent EFI"/winInsiders/)"; done

and renamed the remaining files {$f.nvram, $f.vmds, $f.vmx, $f.vmxf} by hand (wanted to be careful)

I forgot references in the winInsiders.vmx might reference old filenames

I deleted any .lck directories first (not sure if this is necessary)

Then I looked inside the .vmx file with a text editor, and found a few keys that needed new values, because they referenced the old names.

They were:

nvram

extendedConfigFile

scsi0:0.fileName

There could always be more old references, that's why instead of editing the rest of it by hand, I ran sed on the .vmx file (faster, less error-prone):

sed -i s/"Windows Ent EFI"/winInsiders/g winInsiders.vmx

Then do the same for the .vmxf  and first .vmdk file (the first .vmdk in a split virtual disk is just a file descriptor, so plain text):

sed -i s/"Windows Ent EFI"/winInsiders/g winInsiders.vmxf

sed -i s/"Windows Ent EFI"/winInsiders/g winInsiders.vmdk

It should work now (at least, it did for me).

0 Kudos