[OpenSUSE 11.1] modprobe: FATAL: Could not load /lib/modules

I’m getting “modprobe: FATAL: Could not load /lib/modules/2.6.27.7-9-pae/modules.dep: No such file or directory” in /var/log/messages

This is a OpenSUSE 11.1 box and I haven’t modified/ updated/ upgraded anything related to kernel. I use this box only for apache, bind and dhcp servers.

I looked around the system and there is no /lib/modules/2.6.27.7-9-pae/modules.dep
but there is /lib/modules/2.6.27.21-0.1-pae/modules.dep

uname -a shows 2.6.27.7-9-pae #1 SMP

/etc/sysconfig/bootloader shows

default name as DEFAULT_NAME=“openSUSE 11.1 - 2.6.27.7-9”

In /boot/grub directory it shows two files have been changed/ created recently: menu.lst.old and menu.lst - both the files have been modified at the exact same time!

menu.lst.old


# Modified by YaST2. Last modification on Wed Apr 29 11:03:02 2009
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.21-0.1
    root (hd0,1)
    kernel /vmlinuz-2.6.27.21-0.1-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 resume=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part3 splash=silent showopts vga=0x31a
    initrd /initrd-2.6.27.21-0.1-pae

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.21-0.1
    root (hd0,1)
    kernel /vmlinuz-2.6.27.21-0.1-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 showopts ide=nodma apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
    initrd /initrd-2.6.27.21-0.1-pae


###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.7-9
    root (hd0,1)
    kernel /vmlinuz-2.6.27.7-9-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 resume=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part3 splash=silent showopts vga=0x31a
    initrd /initrd-2.6.27.7-9-pae


###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.7-9
    root (hd0,1)
    kernel /vmlinuz-2.6.27.7-9-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 showopts ide=nodma apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
    initrd /initrd-2.6.27.7-9-pae


menu.lst


# Modified by YaST2. Last modification on Wed Apr 29 11:03:02 2009
default 0
timeout 8
##YaST - generic_mbr
gfxmenu (hd0,1)/message
##YaST - activate

###Don't change this comment - YaST2 identifier: Original name: linux###
title openSUSE 11.1 - 2.6.27.21-0.1
    root (hd0,1)
    kernel /vmlinuz-2.6.27.21-0.1-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 resume=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part3 splash=silent showopts vga=0x31a
    initrd /initrd-2.6.27.21-0.1-pae

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- openSUSE 11.1 - 2.6.27.21-0.1
    root (hd0,1)
    kernel /vmlinuz-2.6.27.21-0.1-pae root=/dev/disk/by-id/ata-ST3160828AS_5MT3MBZH-part1 showopts ide=nodma apm=off noresume nosmp maxcpus=0 edd=off powersaved=off nohz=off highres=off processor.max_cstate=1 x11failsafe vga=0x31a
    initrd /initrd-2.6.27.21-0.1-pae

Looks like menu.lst has been modified and the old version is in menu.lst.old - but who would change it? Yast? How? And how can I fix this mess?

Thanks.

Hi
That would indicate you have upgraded the kernel, but haven’t rebooted
yet, hence the running kernel is still the old version.


Cheers Malcolm °¿° (Linux Counter #276890)
openSUSE 11.1 (i586) Kernel 2.6.27.21-0.1-pae
up 6:13, 1 user, load average: 0.21, 0.21, 0.13
ASUS eeePC 1000HE ATOM N280 1.66GHz | GPU Mobile 945GM/GMS/GME

I have already said I haven’t upgrade the kernel.

Maybe you didn’t start an upgrade explicitly, but the YaST autoupdater may have done it. You can see the last 20 packages installed and when, by:

rpm -qa --last | head -20

My bet is the kernel was updated behind the scenes, and you haven’t rebooted yet.

You are right. Although the result don’t show up unless I do head -100 (it has updated lots of other things as well). If it had updated the system, why didn’t it create the /lib/modules/2.6.27.7-9-pae/ directory and now spitting out errors?!

I have created a symlink. So /lib/modules/2.6.27.21-0.1-pae is now symlinked to /lib/modules/2.6.27.7-9-pae/ and the error has stopped.

Is there any way to know if I reboot the system, it will come back up good?

I guess when I rebooted the system, auto-yast2-installation kicked off. How do I turn off Yast Auto Updater/ auto-yast2-installation?

Thanks.

No, don’t do that symlink. You’re not supposed to mix modules from different kernel releases. But it doesn’t matter anyway. The old kernel has been deleted and you have no choice but to use the new kernel when you reboot. That’s why the module directory for the old kernel didn’t exist any more.

YaST autoupdate is configured from Software > Online Update Configuration. It’s normally weekly.

I’ve always thought SUSE’s handling of automatic kernel updates a little bit reckless. Currently only one version is retained, the most recent. Of course you can install the update manually and retain the previous version, but expecting normal users to use CLI tools is not realistic. Debian and Ubuntu keep all previous versions which leads to a pile of old kernels and initrds. The most sensible handling I’ve seen so far is RHEL where the last n (normally 3) kernels are retained. If a new kernel is installed, the oldest is removed. That way the last version is still on disk and doesn’t cause bafflement when module loading is attempted after an update.

http://i283.photobucket.com/albums/kk282/Chrysantine/facepalm.jpg

Oh no you didn’t…

You should never, ever, mix different binary modules from other kernels and most definitely never create symlinks to /lib or anywhere else for that matter unless you are 100% sure of what you’re doing.

I looked there and the Automatic Online Update is not enabled. Is there any other place I should look? My guess is that it started doing this update when the system was turned off and turned on again.

Can’t think of another place. Sure you didn’t click ok to the updater applet?

Yes triple sure. Any other place I should look?

Sorry, still out of ideas on that question, even if you ask twice.

reboot fixed the issue. thanks all.