Recover vmx from log file
Recover vmx from log file
On the VMware community forums, Eric Tung has devised a little jewel of code that automates recreating a vmx file from a recent vmware.log file.
This is possible as on every boot of a virtual machine, the vmware.log gets a copy from your virtual hardware settings written out into the vmware.log logfile along with some extra information such as the date and time this VM was run. The script extracts the relevant part for you and eliminates the risk of making a typo while doing this by hand. It is written in perl, just a few lines long and shows the true power of what a bit of perl can do for you :)
vmxRecover.pl code
#!/usr/bin/perl use strict; use warnings; if ($#ARGV != 0) { print "Recovers .vmx files from .log files. Usage:\n"; print "$0 logfile > vmxfile\n\n"; exit; } while (<>) { # Scan until we reach the config section if (/: vmx\| DICT --- CONFIGURATION/) { last; } } while (<>) { if (/: vmx\| DICT --- \S/) { last; } # Keep going until the next section s/^.*: vmx\| DICT\s*//; # Strip off the leading timestamp and other stuff s/\r//; # Get rid of any \r's that may have somehow snuck in s/([^=]*=) (.*)/$1 "$2"/; # Quote the value print; }
Usage
Say you want to recreate a the virtual hardware configuration for a VMware virtual machine "Windows XP.vmx" then you'd call it like this:
vmxRecover.pl vmware.log > "Windows XP.vmx"
External links
- The original post Not a Valid Virtual Machine Configuration...
- The script vmxRecover.pl.zip
- Eric's site http://www.koiproductions.com