Recently, my work computer bit the dust. It was a minor issue, just a bad output on the GPU, but my boss decided it was time to just replace it. The new computer came in, I reinstalled my programs, and everything continued on.
The issue came while trying to set up a CentOS virtual machine using VirtualBox. I grabbed a fresh ISO from their website, loaded it into my virtual machine, and was promptly met with a kernel panic.
Interestingly, this issue seems to only affect CentOS based distributions, such as FreePBX and ClearOS. Red Hat, Debian, and Arch-based operating systems don’t do this.
I tried changing every setting I could find, before finally giving up and consulting the Internet, which was appropriately unhelpful. While I didn’t find anything directly related, I found a different issue and, on a whim, decided to try the troubleshooting in that post.
The issue seems to be that VirtualBox does not expose a specific CPU instruction (SPEC_CTRL MSR) to the virtual machine. Presumably this wasn’t an issue on older hardware, because I never ran into the issue on my old computer (running a Core i7-4770), but the OS is expecting that instruction on more modern processors (my new computer has the i7-9700, and the thread linked above was running the i7-8565U).
Until Oracle fixes the issue, there is a workaround to get your virtual machine booting.
- Open the command line for your host, and navigate to the folder containing the “VBoxManage” binary (on Windows this is usually “C:\Program Files\Oracle\VirtualBox”)
- Run the command
VBoxManage modifyvm "VM Name" --spec-ctrl onwhere “VM Name” is the name of your virtual machine.
Now you should be able to boot your virtual machine. This is an extra unnecessary step, so I hope Oracle can figure out a proper fix for it in a future update.