A couple of months back, I created a virtual machine image from a physical machine running Windows 2000 Server. After some minor hiccups, I managed to run the image as a Guest OS on VirtualBox on another server. Everything was fine except for the VNC part.
The VM was running a VNC server for remote access and whenever I used a VNC client to connect to the VM, the VNC client will display a corrupted screen. The VNC server will also often crash frequently.
After some trial and error, I found the culprit to be the auto screen resolution resizing feature of Guest Additions. The VirtualBox Guest Additions consist of device drivers and system applications that optimize the Guest OS for better performance and usability.
I disabled the feature by clicking on the “Auto-resize Guest Display” option in the VM menu, set the required resolution and screen depth on the Guest OS and voila, VNC was stable again!