奇怪的内核错误 - 无法更新

时间:2016-04-25 19:27:12

标签: linux-kernel centos yum

我尝试使用yum update更新服务器。但是,会弹出此错误:

==============================================================================================================================================================================================================================================
 Package                                          Arch                                    Version                                              Repository                                                                                Size
==============================================================================================================================================================================================================================================
Installing:
 kernel                                           x86_64                                  2.6.32-573.22.1.el6                                  updates                                                                                   30 M
Removing:
 kernel                                           x86_64                                  2.6.32-220.el6                                       @anaconda-RedHatEnterpriseLinux-201111171049.x86_64/6.2                                  112 M
Updating for dependencies:
 kernel-firmware                                  noarch                                  2.6.32-573.22.1.el6                                  updates                                                                                   18 M

Transaction Summary
==============================================================================================================================================================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)
Remove        1 Package(s)

Total size: 48 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
ERROR with rpm_check_debug vs depsolve:
kernel(iscsi_add_session) = 0xec873e61 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_alloc_session) = 0x0c0f1826 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_block_session) = 0xe602f69c is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_create_conn) = 0x6ba1339a is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_free_session) = 0xcf334a45 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_register_transport) = 0x432a50aa is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_remove_session) = 0x503c7600 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_scan_finished) = 0x3f0b3981 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_session_chkready) = 0x56d25a63 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_session_event) = 0x4e05d68f is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_unblock_session) = 0x21fe1275 is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
kernel(iscsi_unregister_transport) = 0xfd06472f is needed by (installed) kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64
** Found 12 pre-existing rpmdb problem(s), 'yum check' output follows:
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_add_session) = ('0', '0xec873e61', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_alloc_session) = ('0', '0x0c0f1826', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_block_session) = ('0', '0xe602f69c', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_create_conn) = ('0', '0x6ba1339a', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_free_session) = ('0', '0xcf334a45', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_register_transport) = ('0', '0x432a50aa', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_remove_session) = ('0', '0x503c7600', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_scan_finished) = ('0', '0x3f0b3981', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_session_chkready) = ('0', '0x56d25a63', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_session_event) = ('0', '0x4e05d68f', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_unblock_session) = ('0', '0x21fe1275', None)
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64 has missing requires of kernel(iscsi_unregister_transport) = ('0', '0xfd06472f', None)

这是yum install kernel的输出,因为它似乎说kmod需要一些内核版本。

操作系统:Centos 2.6.32-504.8.1.el6.x86_64

2 个答案:

答案 0 :(得分:0)

该kmod是为较旧的内核制作的,并且它为非白名单符号设置了具有特定签名的要求。正在安装内核 具有与这些iscsi函数不同的签名,因此存在冲突并且它会停止安装。

# rpm -qpi kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64.rpm warning:
kmod-qlgc-qla4xxx-5.02.15.01.05.06-1.el6.x86_64.rpm: Header V3
DSA/SHA1 Signature, key ID 5e3d7775: NOKEY Name        :
kmod-qlgc-qla4xxx Version     : 5.02.15.01.05.06 Release     : 1.el6
Architecture: x86_64 Install Date: (not installed) Group       :
System Environment/Kernel Size        : 6248154 License     : GPLv2
Signature   : DSA/SHA1, Wed 04 Jul 2012 05:57:57 AM MST, Key ID
e74433e25e3d7775 Source RPM  :
qlgc-qla4xxx-5.02.15.01.05.06-1.el6.src.rpm Build Date  : Thu 15 Sep
2011 02:36:49 PM MST Build Host  : rhel6.1-64bit Relocations : (not
relocatable) Vendor      : qlgc URL         : http://www.qlogic.com/
Summary     : qlgc-qla4xxx kernel module(s) Description : This package
provides the qlgc-qla4xxx kernel modules built for the Linux kernel
2.6.32-131.0.15.el6.x86_64 for the x86_64 family of processors.


# rpm2cpio kernel-2.6.32-573.22.1.el6.src.rpm | cpio -ivd *Module.kabi_x86_64
Module.kabi_x86_64
213572 blocks

# grep iscsi Module.kabi_x86_64 | wc -l
0

573.22.1 rhel内核中符号的签名:

kernel(iscsi_add_session) = 0x72885137
kernel(iscsi_alloc_session) = 0xf1c74334
kernel(iscsi_block_session) = 0x1a0123e6
kernel(iscsi_create_conn) = 0x711f2dde 
kernel(iscsi_free_session) = 0x07fc6db6
kernel(iscsi_register_transport) = 0xfd6d0c1c
kernel(iscsi_remove_session) = 0xfa98da53 
kernel(iscsi_scan_finished) = 0xa77fd357
kernel(iscsi_session_chkready) = 0xa5432637
kernel(iscsi_session_event) = 0x3982801b
kernel(iscsi_unblock_session) = 0xdd550f9b
kernel(iscsi_unregister_transport) = 0x0065ebc5

检查Qlogic以查看他们是否有更新的驱动程序

答案 1 :(得分:0)

FIXED:

问题是kmod需要更老的内核。安装新内核将删除旧内核,因此kmod会抱怨。安装新的kmod将需要新内核,因此它成为循环依赖。

修复只是进入yum.conf并更改已保存的内核版本的数量,以便它可以节省一个内核版本。我更新了内核,因为我可以保留另一个版本,错误没有弹出。然后我马上更新了kmod。我还没有决定删除旧内核,但我确信如果我决定,那就没关系。