[CentOS] Kernel panic after update to 6.4

Thu Mar 14 14:19:41 UTC 2013
Johnny Hughes <johnny at centos.org>

On 03/14/2013 05:17 AM, Liam O'Toole wrote:
> On 2013-03-13, Johnny Hughes <johnny at centos.org> wrote:
>
> (...)
>
>> On 03/13/2013 05:17 PM, Johnny Hughes wrote:
>>> On 03/13/2013 04:19 PM, Liam O'Toole wrote:
>>>> On 2013-03-13, Emmett Culley <emmett at webengineer.com> wrote:
>>>>
>>>> (...)
>>>>
>>>>> So let's start again.
>>>>>
>>>>> Kernel panic - Not syncing: Attempted to kill init!
>>>>> Pid: 1, comm: init not tainted: 2.6.32-358.0.1.el6.x86_64 #1
>>>>>
>>>>> After yum upgrade --enablerepo=3Depel on two of five machines, one of=
>>  which is the host for the three VM's that succeeded and the one that fai=
>> led, just as the host.
>>>>> I have a screen shot of that VM's boot failure, but I don't know the =
>> proper way to include it in a post.
>>>>> I've uninstalled that kernel and ran yum upgrade again, it still fail=
>> s on that kernel, on both the host and the VM.  I suppose the good thing =
>> is that it happened on a VM guest that is not critical, so I don't have t=
>> o experiment with the host that has four important guests running on it.
>>>>> Any ideas?
>>>>>
>>>>> Emmett
>>>> I saw this problem on one machine I upgraded from 6.3 to 6.4 recently.=
>>>> When I boot it in verbose mode I see the following messages:
>>>>
>>>> 	dracut: /proc/misc: No entry for device-mapper found
>>>> 	dracut: Failure to communicate with kernel device-mapper driver
>>>>
>>>> which led me to the following bug report:
>>>>
>>>> 	http://bugs.centos.org/view.php?id=3D6304
>>>>
>>>> Just today kernel 2.6.32-358.2.1 became available. The problem is stil=
>> l
>>>> present, but only on the same one machine.
>>>>
>>> This file exists in the kernel:
>>> /lib/modules/2.6.32-358.2.1.el6.x86_64/kernel/drivers/md/dm-mod.ko
>>>
>>> Somehow it seems that in some machines it is not making it into the ini=
>> trd.
>>
>> Try this command where the kernel is installed and not booting (when
>> booted into a kernel that works):
>>
>> lsinitrd /boot/initramfs-2.6.32-358.2.1.el6.x86_64.img | grep dm-mod
>>
>> (if you have one of the other 358 kernels installed, use that version
>> instead of2.6.32-358.2.1.el6.x86_64  )
>>
> Here you go:
>
> $ uname -r && lsinitrd /boot/initramfs-2.6.32-358.2.1.el6.i686.img |
> grep dm-mod
> 2.6.32-279.22.1.el6.i686
> -rwxr--r--   1 root     root       106212 Mar 13 17:11
> lib/modules/2.6.32-358.2.1.el6.i686/kernel/drivers/md/dm-mod.ko
>
> So the module appears to be present in the initrd.
>
> The only distinguishing feature I can think of in the machine that is
> failing is that it has a solid-state drive. Relevant? 

Maybe ... try this (everything done as root):

Boot on a kernel that works and do this:

1. Backup you current initrd:

cp -a /boot/initramfs-2.6.32-358.2.1.el6.x86_64.img
/boot/initramfs-2.6.32-358.2.1.el6.x86_64.img.bak

2. Go to this directory:

cd /lib/modules/2.6.32-358.2.1.el6.x86_64/kernel/drivers/md/

3.  Figure out the md modules loaded in the old kernel:

lsmod | grep dm_

in my case, that output would be this:

[root at localhost md]# lsmod | grep dm_
dm_round_robin   2525  0
dm_multipath        17756  1 dm_round_robin
dm_mirror             14133  0
dm_region_hash   12085  1 dm_mirror
dm_log                  9930  2 dm_mirror,dm_region_hash
dm_mod                82839  12 dm_multipath,dm_mirror,dm_log

(note, dm-mod and dm_mod are the same thing)

5.  Do an file list and make sure all the modules you need to include
(in my case the 6 in column 1):

ls

Note: make sure all the modules are listed ad you see the file names
(should be for me: dm-round-robin.ko, dm-multipath.ko, dm-mirror.ko,
dm-region-hash.ko, dm-log.ko, dm-mod.ko)

4.  Create a new initrd with all the relevant md modules preloaded (in
my case, this command line ... preload only the modules you need from
your list .. again, have to do this as root):

mkinitrd -f --preload=dm_round_robin --preload=dm_multipath
--preload=dm_mirror  --preload=dm_region_hash  --preload=dm_log 
--preload=dm_mod  /boot/initramfs-2.6.32-358.2.1.el6.x86_64.img
2.6.32-358.2.1.el6.x86_64

Note:  The above mkinitrd command (and all the other commands) should be
entered all on one line, I am sure it will wrap when posted.

5.  This may not work, because there may need to be some other things
loaded that are not, like the disc controller's kernel module driver,
etc.  What I think is going on is either something has been removed from
this kernel that existed before ... OR ... something is being
mis-detected with this kernel on your machine.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.centos.org/pipermail/centos/attachments/20130314/f46de7aa/attachment-0004.sig>