I’ve been running an old gentoo-sources kernel on Rackspace for a time and it was desperate times to get it updated. In the past, it was a major pain in the butt to do this. At one point, I was able to update it via PV Grub – which involved support to configure it with PV Grub and then adding the image to it. Since then, they made it much easier with PyGrub.
When building the new kernel, you just need to ensure that the following is in the config
CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y CONFIG_PVH=y
On another server, I had the following…
CONFIG_XEN=y CONFIG_XEN_PV=y CONFIG_XEN_PV_SMP=y CONFIG_XEN_DOM0=y CONFIG_XEN_PVHVM=y CONFIG_XEN_PVHVM_SMP=y CONFIG_XEN_512GB=y CONFIG_XEN_SAVE_RESTORE=y CONFIG_XEN_DEBUG_FS=y
But the first items got me booted find. Configure, the make and make the modules. Move the bzImage to /boot and adjust grub.conf to point to the fresh image.
If you have trouble – kernel panic, etc.. you’ll need to go into some type of rescue mode and adjust grub.conf to roll back to the prior kernel.
This is how it was explained to me via support ticket:
There is nothing specific that we need to do on our end with regards to PyGrub. All PyGrub does is read you Cloud Server’s Grub config in order to select the kernel to boot. PyGrub does most of the heavy lifting when it comes to booting the kernel.