VMWare Fusion / Big Sur / Ubuntu / Black screen
Recently updated to macOS Big Sur. I’m not sure why I do this sort of thing quite so freely… I always naively assume everything will be OK. And so far, Big Sur vs Catalina is just a bit nightmare.
I’m sure there’s a huge amount of “don’t like change” in there but there are many things that are annoying the crap out of me with Big Sur. Calendar notifications for one. Gah.
But anyway, one real issue I have had was with VMware Fusion. I was previously on v11.something and when trying to launch a VM got greeted with “Host OS does not have enough physical memory to launch this VM” which was a complete load of bollocks. After a quick Google, it was evident it was a VMware incompatibility issue - Fusion 11 will not run on Big Sur and you must upgrade to VMWare 12. Yay. $100 later and I have Fusion 12 and… things are still broken. Main issue is that trying to start a VM results in a bunch of error messages… these seem to get resolved by changing the compatibility level of the VM…. but even then, starting the VM ends up in a black screen.
There was a very similar issue when Catalina came out, and this was caused by new Security / Privacy controls around Screen Recording. This was fixed usually either by a filthy hack; or the proper way which is by allowing VMware Fusion to Screen Record through the System Prefs. However, on this occasion, that was all fine.
I’ve found nothing yet that specifically relates to VMWare Fusion on macOS Big Sur and a black screen on the VM. However, I did find an old tip that was worth a go… and for me, at least, it only bloody worked. (I think. Can’t be sure.) I’m on a 27″ iMac Pro but editing the VMX file worked.
So…
In the VMWare library, click your VM and make sure it is shut down.
Then right-click and hit show in Finder.
Right click the VM file and click ‘Show Package Contents'
Look for the VMX file
Right click and open in TextEdit.
Find
svga.guestBackedPrimaryAware = "TRUE"
and change to
svga.guestBackedPrimaryAware = "FALSE"
Save in TextEdit and quit.
Now start the VM. It *might* work.