I have recently been playing with several virtualization technologies and came upon an issue that I wanted to write about so I could help someone else who was having the same issues.
When booting Ubuntu server guest OS, after GRUB loads the default kernel, you receive the following error:
<code>"PANIC: CPU too old for this kernel."</code>
Currently I've seen this issue happen in Parallels 3.0 on Mac and VirtualBox on Mac and Ubuntu as the host. I've seen it happen only with Ubuntu server 7.10, but it's very possible that it happens with others.
This appears to be a bug in either the Ubuntu server kernel or in the virtualization software. The current workaround is to install the generic kernel:
Boot from the CD using the "Rescue a broken system" option. Go through the regular options until you get to the rescue console. You will be prompted for the filesystem to use as the root filesystem. Choose your root filesystem and choose "Execute a shell in
When at the prompt with your /boot partition mounted, type:
apt-get install linux-generic
This will install the generic kernel from the CD.
Once the install is done, reboot the system. When GRUB is loading, press "Escape" on the keyboard to open up the kernel prompt. Select the generic kernel you just installed (not the recovery mode option). The system will boot up with your new kernel.
Once the machine is booted up, you can login and use it as normal. You can change the GRUB settings to choose the generic kernel every time so you don't have to select it every time.
Open up /boot/grub/menu.lst in your favorite text editor. In the first few lines you will find a line that says "default 0". You can change the default to the one you need by counting up from zero in order of the kernel listing in the file. For me, the generic kernel was "2" (remember, it starts with 0). Once you change the value, you can reboot the machine to see if the right kernel was selected. If you changed it to the wrong one, you can always use the "Escape" key to select a kernel at boot.