[CentOS] Kernel panic after update to 6.4
Liam O'Toole
liam.p.otoole at gmail.com
Thu Mar 14 15:33:38 UTC 2013
On 2013-03-14, Johnny Hughes <johnny at centos.org> wrote:
(...)
> 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
OK.
>
> 2. Go to this directory:
>
> cd /lib/modules/2.6.32-358.2.1.el6.x86_64/kernel/drivers/md/
For me the corresponding directory is
/lib/modules/2.6.32-358.2.1.el6.i686/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)
In my case I have:
# lsmod | grep dm_
dm_mirror 11678 0
dm_region_hash 9609 1 dm_mirror
dm_log 8322 2 dm_mirror,dm_region_hash
dm_mod 66925 8 dm_mirror,dm_log
>
> 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)
Yes, all are present:
# ls dm*.ko
dm-bufio.ko dm-log-userspace.ko dm-queue-length.ko
dm-service-time.ko
dm-crypt.ko dm-memcache.ko dm-raid45.ko dm-snapshot.ko
dm-delay.ko dm-mirror.ko dm-raid.ko dm-thin-pool.ko
dm-flakey.ko dm-mod.ko dm-region-hash.ko dm-zero.ko
dm-log.ko dm-multipath.ko dm-round-robin.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=3Ddm_round_robin --preload=3Ddm_multipath
> --preload=3Ddm_mirror --preload=3Ddm_region_hash --preload=3Ddm_log=20
> --preload=3Ddm_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.
(Indeed it did wrap.) The command I used was
mkinitrd -f --preload=dm_mirror --preload=dm_region_hash
--preload=dm_log --preload=dm_mod
/boot/initramfs-2.6.32-358.2.1.el6.i686.img 2.6.32-358.2.1.el6.i686
That produced a file of similar size to the original:
# ls -l /boot/initramfs-2.6.32-358.2.1.el6.i686.img*
-rw-r--r--. 1 root root 15450686 Mar 14 15:13
/boot/initramfs-2.6.32-358.2.1.el6.i686.img
-rw-r--r--. 1 root root 15450647 Mar 13 17:11
/boot/initramfs-2.6.32-358.2.1.el6.i686.img.bak
>
> 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.
Unfortunately, when rebooting into kernel 358.2.1 I get the same result
as before.
Thanks for taking the time to look into this. Is it an upstream bug?
--
Liam
More information about the CentOS
mailing list