Upgrade from 2.6.10-ac8 to 2.6.12.5 broke lvm rootfs

From: Ville Herva
Date: Tue Aug 16 2005 - 03:18:44 EST


After upgrading the kernel from 2.6.10-ac8 to 2.6.12.5 the initramfs was no
longer able to mount rootfs.

mount: error 6 mounting ext3

All the configuration options are identical, and upgrading lvm2 package:
lvm2-2.00.25-1.01 -> lvm2-2.01.14-1.0
device-mapper-1.00.19-2 -> device-mapper-1.01.04-1.0

Did not change anything.

Dm, ext3 and the relevant block device drivers statically compiled in.

The vg has lvm1 format, fwiw.

I enabled all the debug options I could think of in the nash-based initramfs
init script. That did not appear to tell much: all I was able to tell was
that lvm was succesfully called by the init script:

mount -t proc /proc /proc
mount -t sysfs none /sys
insmod /lib/dm-snapshot.ko
mkdevices /dev
mkdmnod
lvm vgscan -v
# sleep 5
lvm vgchange -ay
# sleep 5
lvm vgmknodes
# sleep 5
mkrootdev /dev/root
umount /sys
# sleep 5
mount -o defaults --ro -t ext3 /dev/root /sysroot
switchroot /sysroot

but those didn't give any meaningful output (other than notices about
setting log indentation level).

Finally, I added "sleep 5" after each lvm command (commented out above),
which appeared "solve" the problem.

Apparently the lvm scripts somehow do their initialization asynchronously
and the init script tries to mount root before it is available. I'm not sure
why this is affected by the kernel version, though.



-- v --

v@xxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/