Kernel-2.6.25-0.40.rc1.git2.fc9.i686 doesn't boot in rawhide

Bill Nottingham notting at redhat.com
Thu Feb 14 23:02:33 UTC 2008


Jarod Wilson (jwilson at redhat.com) said: 
> > I'm seeing the same problem.
> > I don't use lvm on the disk.
> > BTW, there was no rawhide report for today's update so I couldn't look at
> > what had changed. (the previous kernel works).

This has nothing to do with LVM tools specifically, AFAICT. It has to
do with the kernel used to build your initrd. Newer kernels (2.6.25-git)
rearrange sysfs - things that were directories are now symlinks, etc. This
hurts mkinitrd pretty badly - it can't find the root devices right, to
include the right drivers.

So any initrd built on 2.6.25-x will fail. The attached patch (which
is a utter hack) fixes it for me.

Bill

-------------- next part --------------
--- mkinitrd	2008-02-14 17:51:10.000000000 -0500
+++ /sbin/mkinitrd	2008-02-14 17:51:02.000000000 -0500
@@ -188,12 +188,11 @@
 }
 
 findone() {
-    echo nash-find "$@" | /sbin/nash --force --quiet \
-        | /bin/awk '{ print $1; exit; }'
+    find -L "$@" 2>/dev/null | /bin/awk '{ print $1; exit; }'
 }
 
 findall() {
-    echo nash-find "$@" | /sbin/nash --force --quiet
+     find -L "$@" 2>/dev/null
 }
 
 dm_get_uuid() {
@@ -480,7 +479,7 @@
 finddevnoinsys() {
     majmin="$1"
     if [ -n "$majmin" ]; then
-        dev=$(findall /sys/block -name dev | while read device ; do \
+        dev=$(findall /sys/block -name dev -maxdepth 3 | while read device ; do \
               echo "$majmin" | cmp -s $device && echo $device ; done)
         if [ -n "$dev" ]; then
             dev=${dev%%/dev}
@@ -554,7 +553,7 @@
             if [[ "$device" =~ ^/sys ]]; then
                 device=${device##*/}
             fi
-            sysfs=$(findone -type d /sys/block -name $device)
+            sysfs=$(findone /sys/block -name $device -type d -maxdepth 2)
         fi
         [ -z "$sysfs" ] && return
         qpushd $sysfs


More information about the devel mailing list