该系统是CentOS 6.3。
我编译了一个新内核,并在目标机器上安装了生成的rpm。 从内核启动时,我收到了问题标题中的错误。
我已经提取了相应的initramfs并比较了输出:
modprobe --dump-modversions /path/to/scsi_wait_scan.ko
对应/ boot / symvers 中的条目 - *。所有符号校验和都适合,包括 module_layout 。
有没有办法从内核中提取 symvers ?
答案 0 :(得分:0)
我发现了问题。
简短回答
问题是我在已安装的内核rpm(A)上安装了内核rpm(B), 没有先删除它。
拒绝回答
scsi_mod.ko
仅由(A)拥有。在安装(B)时,scsi_mod.ko
位于/ lib / modules /中。
在(B)的安装后脚本中创建intramfs时。 depmod决定scsi_wait_scan.ko
取决于scsi_mod.ko
,而两者都是针对不同的配置构建的。
稍后在启动机器时,内核开始运行initramfs。这反过来modprob'ed scsi_wait_scan.ko
。 modprobe试图作为一个后缀scsi_mod.ko
加载,这不适合当前的内核,因此导致我看到的错误。