VM Ware Fusion

tldr; Shared directory sym links under windows for VMware Fusion
At my new work, it is mostly a Mac shop. And since I develop with a few tools that are Windows only, I needed a solution to cope with my needs. Dual boot/bootcamp wasn’t an option in no way did I want to be constantly restarting my system, and I also doubt that bootcamp drivers were even available for my Mac with retina display.

I could have gone with VirtualBox, my trusted VM solution of choice, for many years… but instead I had done some more research into the matter and discovered that VMware Fusion was a very specific but powerful solution. It is also a commercial product. Retailing just under the $50 mark, it isn’t terribly expensive for what you will be getting. And shadows in comparison to the cost of the Windows OS I would be needing to purchase as well.

I went the VMware Fusion route and have been exceedingly pleased. This product is not an end-all for any of my virtualization needs, VirtualBox will remain my vm of choice for Linux based hosts… But the performance and flexibility of VMware is smooth and beautiful, it provides better hardware drivers to things like the graphics card and it will run with Windows Aero enabled without even blinking an eye. Full screen or in Unity (interlaced / seamless) mode  it works great.

I have not tried gaming within the VM yet, but my guess is that it works well. Prob not perfect, but well enough to make it do-able.

One hurdle I had to overcome was shared directories.

Mapping a directory via conventional means didn’t work. I am a developer, so when using a source code compiler, it tends to be incompatible with network paths. Often it attempts to resolve it or use .bat scripts which cannot cope with network paths. So the solution is to map a network path to a local directory using a symlink under windows.

mklink /d “C:\Users\andy\Repositories” “Z:\andy On My Mac\Documents\Repositories”

The above command is an example of something I have used to resolve such an issue. The only downsides is that the IDE doesn’t pickup external changes automatically. If you change something outside of the IDE, you must refresh the directory. Not a big deal, since its the click of one button and changes are found. The other downside is compile time. What would normally be a 10 or 15 second compile turns into a 20 to 30 second compile. Nearly double. This is believed to be because it must loop through a virtual network adapter to give it the network-like features. There are ways around this as well, my IDE has a ‘bridge’ feature to allow compiling on the host, but I haven’t bothered to set that up yet because even though there is a slightly longer delay, the system works very well and is very stable.

Powershell

I have recently begun using Windows PowerShell for some bash-like tasks under windows. Thus far I like it much more over the cmd. One minor note about this is by default the text is white with a blue background. Why is this a minor note? Well it scares me quite often!

I run virtuals on several different servers and this workstation. Some of them virtuals are windows-based. Making the PowerShell window (filled with text) look eerily familiar to a BSOD makes me jump every time I catch a glimpse of that window out of a corner of my eye. Subconsciously it has been engraved into my mind that blue screens with white text means windows has crashed. Now the exception is PowerShell.

Windows System File Checker

sfc is a command line tool that I have recently stumbled upon which had its uses when I was fixing a laptop. The RAM on the computer had gone bad, thus the computer repeatedly blue screened and crashed due to the bad memory corrupting data. Once the bad RAM was removed, the system ran fine again.

The only problem is that I feared the OS system files would be corrupt from either the repeating blue screening or from the RAM corrupting application data when it was doing an IO write back to the hard drive. If the RAM was bad, it could have to potential to corrupt any number of files on your computer.

Turns out there is an application on windows that will verify the integrity of the OS system files and if a corrupt file is found it will replace it with the correct file.

The simplest of commands is “sfc /scannow” on most NT-based OSes.

I would also suggest running this if you have imaged/restored your hard drive, because of either just HD replacement, or HD failure. It provides a bit more of the “peace-of-mind”.

http://en.wikipedia.org/wiki/System_File_Checker