Bug#453890: lvm2 produces unbootable initramfs with some boot paths

Ross Boylan RossBoylan at stanfordalumni.org
Sun Dec 2 01:44:06 UTC 2007


Package: lvm2
Version: 2.02.26-1+b1
Severity: normal

Severity note: Since the problem renders the system unbootable, and is
very hard to recover from without expertise, this might warrant higher
severity.  Since the current behavior seems to be by design, it might
warrant wishlist severity (or being closed with a documentation change
only).

I set root=/dev/daisy/root in grub (daisy is an LVM2 volume group and
root is a logical volume in that group), and found that I was unable
to boot the system from the initramfs produced by update-initramfs.
The error was something like "waiting on root file system."

I believe the problem is in these tests in
/usr/share/initramfs-tools/scripts/local-top/lvm2 (which belongs to
this package):
	# Make sure that we have a d-m path
	vg=${vg#/dev/mapper/}
	if [ "$vg" = "$1" ]; then
		return 1
	fi

	# Make sure that the device includes at least one dash
	if [ "$(echo -n "$vg" | tr -d -)" = "$vg" ]; then
		return 1
	fi

When I changed to root=/dev/mapper/daisy-root, booting succeeded.  The
LVM HOWTO mostly employs the /dev/daisy/root style, not the
/dev/mapper/daisy-root style, so it seems likely others will try the
first approach.

Maybe there's a good reason for those tests, but it seems to me a more
permissive policy would avoid the very serious situation of an
unbootable system.

If you think it best to preserve the current behavior, it would be
helpful to document it, e.g., in README.Debian.  I couldn't find any
documentation other than the source code on the current setup.

man lvcreate doesn't seem to say what path(s) in /dev get generated;
the one example (for snapshot) uses the /dev/volgroup/volname style.
It would be useful, even aside from the booting issues, for the man
page to be more explicit about where to find LV's in /dev, at least
for a standard Debian system (I realize with udev almost anything is
possible).

The code cited above may also account for some of the other reported
"can't boot" failures, e.g., 409171, 409243, 351679.  However, 409243
clearly uses the /dev/mapper style.

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (990, 'testing'), (990, 'stable'), (50, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.18-5-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lvm2 depends on:
ii  libc6                     2.6.1-1+b1     GNU C Library: Shared libraries
ii  libdevmapper1.02.1        2:1.02.20-2    The Linux Kernel Device Mapper use
ii  libncurses5               5.6+20071013-1 Shared libraries for terminal hand
ii  libreadline5              5.2-3          GNU readline and history libraries
ii  libselinux1               2.0.15-2+b1    SELinux shared libraries
ii  libsepol1                 2.0.3-1+b1     Security Enhanced Linux policy lib

lvm2 recommends no packages.

-- no debconf information





More information about the pkg-lvm-maintainers mailing list