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