Here are just some notes/hurdles on creating a Windows VM for development. (If you’re not using it for development, you can simply ignore those items.)
- (VirtualBox) Apparently 3D acceleration does not work well with seamless mode. If you’re gonna use one, you should not use the other. Please do tell me if this is fixed or I did something wrong so I can update this entry.
- (Dev) When creating a user account, choose to create a local account instead of logging in immediately to your Microsoft account, if you plan to do so. If you’re a dev, this will ensure your user profile directory will just as you expect it to be. Failing this step, this article will help.
- (VirtualBox) Install VirtualBox guest additions. Obviously.
- (Chrome, Dev) If you install Chrome and you want to sync your Google Account and at the same time use Chrome for development, you’ll want to disable syncing extensions. Chances are some extensions will interrupt your development.
- Disable OneDrive if it’s not relevant.
- Disable some services that won’t be relevant to you, such as Print Spooler and Windows Media Network Sharing. (Run services.msc)
- If desired, lower your guest VM’s visual effects (System Properties, Performance), to improve performance.
- You might want to automatically log in your user account. (VirtualBox) This would be useful if you’re using seamless mode.
- (Any OS) Set the volume to 100% and hide the icon.
- (Any OS) Hide the power/battery icon.
- (Any OS) You may want to hide the network status icon after verifying your network connectivity stuff.
- (VirtualBox) Turn off UAC dimming. Useful for seamless mode.
- You may want to turn off disk defragmentation. Fragmentation is not too relevant in a virtual machine context. Only turn on defragmentation if you are sure what you are doing; e.g. hosting a webserver, having the VM on continuously, and stuff.
- Set your power plan to High Performance and set Turn off monitor after “never” (type 0).
- Turn off your screensaver.
- Disable internet time synchronization. Your virtual machine clock depends on your host’s clock so there’s no need to synchronize frequently (or, at all).