I did a yum update / yum upgrade to get everything updated, and my /lib/modules now had:
drwxr-xr-x 6 root root 4096 Oct 1 2011 2.6.18-194.32.1.el5xen drwxr-xr-x 6 root root 4096 Apr 10 2011 2.6.18-238.5.1.el5xen drwxr-xr-x 6 root virtualftp 4096 Feb 11 2012 2.6.18-274.3.1.el5xen drwxr-xr-x 6 root root 4096 Oct 22 2011 2.6.18-274.7.1.el5xen drwxr-xr-x 6 root root 4096 Mar 12 09:12 2.6.18-348.3.1.el5xen
Rebooted again … and still no modules.
I tried “uname -a” again, and got:
Linux vpshost 2.6.18-348.el5xen #1 SMP Tue Jan 8 18:35:04 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
Well, “2.6.18-348” is not the same as “2.6.18-348.3.1”. Trying my luck I did a symlink, and that still didn’t work. I suspect that on the VPS system, the kernel the OS boots with is not necessarily what is installed / specified by grub, but rather what is specified by the VPS system.
I looked inside the CentOS “updates” repository, and there was no 2.6.18-348 … hmm … where did this 2.6.18-348 come from? In the end, I found it under “OS” / base folders — 2.6.18-348 is what ships with a stock CentOS 5.9 !
I couldn’t figure out how to get yum to install this specific version of the kernel, so instead ended up doing a:
cd wget ftp://ftp.muug.mb.ca/mirror/centos/5.9/os/x86_64/CentOS/kernel-xen-2.6.18-348.el5.x86_64.rpm rpm -ivh kernel-xen-2.6.18-348.el5.x86_64.rpm reboot
… and got all my modules running again!