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