Klogd "Cannot find map file" at boot

From: Dr. Klahn (xxdpplus_at_yahoo.com)
Date: 07/05/05


Date: 4 Jul 2005 17:06:39 -0700

I am seeing map file failures at boot time on this
Debian system. The references I have come up with
so far seem to indicate (1) the problem is related to
klogd, (2) it's a common problem, and (3) it's ugly
but harmless. Any assistance will be received with
many thanks.

Syslog shows:

Jul 2 00:03:35 maleficent syslogd 1.4.1#17: restart.
Jul 2 00:03:35 maleficent kernel: klogd 1.4.1#17, log source =
/proc/kmsg started.
Jul 2 00:03:35 maleficent kernel: Cannot find map file.
Jul 2 00:03:35 maleficent kernel: No module symbols loaded - kernel
modules not enabled.
Jul 2 00:03:35 maleficent kernel: Linux version 2.6.12.2Maleficent
(root@maleficent) (gcc version 3.3.5 (Debian 1:3.3.5-13)) #1 Fri Jul 1
23:57:56 EDT 2005

The new kernel was generated using the Debian 3.0
distribution kit, using make-kpkg to build it and
dpkg -i to install it.

Since syslog shows "Linux version 2.6.12.2", it is indeed
the new kernel booting, not the distribution.

The problem appears to be in or related to klogd and
its handling of system maps. The Debian docs indicate
that klogd looks in /boot, /, and /var/src/linux for
kernel maps. The docs also indicate that version info
is used by klogd, so if the system image file is
  vmlinuz-2.6.12.2
it should look for
  System.map-2.6.12.2
which does exist in /boot.

This is as far as I have been able to understand the
problem.

I have tried making the change recommended to
/etc/init.d/klogd:

# Use KLOGD="-k /boot/System.map-$(uname -r)" to specify System.map

There is no change.

/boot resides on its own partition. The contents of /boot are:

total 8638
-rw-r--r-- 1 root root 26671 2005-07-01 23:37 config-2.6.12.2
-rw-r--r-- 1 root root 55809 2005-05-19 04:38 config-2.6.8-2-386
drwxr-xr-x 2 root root 1024 2005-07-04 13:57 grub
-rw-r--r-- 1 root root 4317184 2005-06-29 21:08 initrd.img-2.6.8-2-386
drwxr-xr-x 2 root root 12288 2005-06-29 20:59 lost+found
-rw-r--r-- 1 root root 854814 2005-07-01 23:59 System.map-2.6.12.2
-rw-r--r-- 1 root root 865733 2005-05-19 05:26 System.map-2.6.8-2-386
-rw-r--r-- 1 root root 1567362 2005-07-01 23:59 vmlinuz-2.6.12.2
-rw-r--r-- 1 root root 1097419 2005-05-19 05:25 vmlinuz-2.6.8-2-386

It appears that the new kernel's map file is present.

The boot loader is grub. The contents of /boot/grub are:

total 168
-rw-r--r-- 1 root root 15 2005-06-29 21:10 device.map
-rw-r--r-- 1 root root 7776 2005-06-29 21:10 e2fs_stage1_5
-rw-r--r-- 1 root root 7504 2005-06-29 21:10 fat_stage1_5
-rw-r--r-- 1 root root 8320 2005-06-29 21:10 jfs_stage1_5
-rw-r--r-- 1 root root 3304 2005-07-02 01:08 menu.lst
-rw-r--r-- 1 root root 3310 2005-07-02 01:08 menu.lst~
-rw-r--r-- 1 root root 7008 2005-06-29 21:10 minix_stage1_5
-rw-r--r-- 1 root root 9216 2005-06-29 21:10 reiserfs_stage1_5
-rw-r--r-- 1 root root 512 2005-06-29 21:10 stage1
-rw-r--r-- 1 root root 108168 2005-06-29 21:10 stage2
-rw-r--r-- 1 root root 9288 2005-06-29 21:10 xfs_stage1_5

The system is allowed to boot the default kernel after timeout,
which is the new kernel. /boot/grub/menu.lst is as follows:

# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from
0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the
default entry
# is the entry saved with the command 'savedefault'.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the
default entry
# (normally the first entry defined).
timeout 5

# Pretty colours
color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive
editing
# control (menu entry editor and command-line) and entries protected
by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options
below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specifiv kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
# kopt=root=/dev/hda6 ro

## default grub root device
## e.g. groot=(hd0,0)
# groot=(hd0,0)

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(recovery mode) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## ## End Default Options ##

title Debian GNU/Linux, kernel 2.6.12.2
root (hd0,0)
kernel /vmlinuz-2.6.12.2 root=/dev/hda6 ro
savedefault
boot

title Debian GNU/Linux, kernel 2.6.12.2 (recovery mode)
root (hd0,0)
kernel /vmlinuz-2.6.12.2 root=/dev/hda6 ro single
savedefault
boot

title Debian GNU/Linux, kernel 2.6.8-2-386
root (hd0,0)
kernel /vmlinuz-2.6.8-2-386 root=/dev/hda6 ro
initrd /initrd.img-2.6.8-2-386
savedefault
boot

title Debian GNU/Linux, kernel 2.6.8-2-386 (recovery mode)
root (hd0,0)
kernel /vmlinuz-2.6.8-2-386 root=/dev/hda6 ro single
initrd /initrd.img-2.6.8-2-386
savedefault
boot

### END DEBIAN AUTOMAGIC KERNELS LIST