Solve “The system cannot find the file specified” error in VMware Workstation

If you’ve ever run into this, it’s a real bummer. I encountered it after using rsync to clone a vm.

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:

After I rsynced my VM, I 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/)"; doneCode language: PHP (php)

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

At first, I had forgotten about references in the winInsiders.vmx to old filenames, so when I tried to re-add the hard drive, I ran into the “cannot find the file specified” error

I deleted any .lck directories first (not sure if this is necessary, but it seemed like a good idea)

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, that’s why instead of editing it by hand, run sed on the .vmx file, as it is faster and far less error-prone (just like the renaming command above, but with the -i flag, meaning inside the file):

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, 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).

Author: Avery Freeman

MBA / Audio Engineering alumnus enjoys taking adjunct courses in data sciences, management, and software development. Passionate about collaboratively improving humanity through open source information ecosystems. Tenaciously solves problems of near-universally intolerable tediousness. Proficient in SQL, Python, Javascript, has forgotten SAS, and misses OpenSolaris. Eminently effervescent about Unix-like operating systems and software defined networks, including an unmistakable urge to Berkeley packet filter all the things. Fanatically fond of zfs and linux volume manager. Has lived in Tokyo, SF, Oakland, and now Seattle. Can't forget cooking, hiking, gardening, and playing with your cat.

Leave a Reply

Your email address will not be published. Required fields are marked *