Package: multipath-tools
Version: 0.4.1-1
Severity: critical
Justification: breaks the whole system
Tags: patch
If multipath-tools-0.4.1-1 is installed, the initrd generated by
initrd-tools-0.1.76 is non-bootable for systems using an LVM
root device.
Symptoms: pivot_root: no such file or directory; sbin/init not found;
panic: attempting to kill init.
The cause: multipath adds a script /etc/mkinitrd/scripts/01_udev; this
mounts a new /dev and lets udevstart run on it. This happens after
/script is executed, which is where the LVM command "vgchange -a y vg0"
is executed to create LVM devices. Unfortunately, udevstart has no way
of creating the /dev/mapper nodes required by LVM, so the root device
/dev/mapper/vg0 stays missing.
One possible fix would be not to mount an empty /dev in 01_udev, so that
the LVM devices remain visible. However, mounting a new /dev protects
against a possible read-only prior /dev, and the prior /dev is indeed
read-only. (it is part of the initrd image and contains some symlinks
to ../devfs)
So the attached patch instead copies the contents of the old /dev to the
new /dev. It's possible that a similar problem would occur for other
virtual devices such as MD; these too are not created by hotplugging
but by an init.d script. I have not tested this, but the patch should
cover such cases.
The patch was tested on a PC with LVM devices on a SATA disk but no
actual multipath devices: I only installed multipath-tools to take a
look at the documentation ...
I'm including #288150 (initrd no longer works unless busybox is
installed) on the Cc list. That report mentions /bin/sleep missing
from initrd image. The missing sleep is still missing after attached
patch, but it does not seem to harm anything. No claim that this
patchs solves #288150, but the symptoms seem similar enough to justify
a cross reference.
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-1-686
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Versions of packages multipath-tools depends on:
ii debconf [debconf-2.0] 1.4.41 Debian configuration management sy
ii hotplug 0.0.20040329-16 Linux Hotplug Scripts
ii initscripts 2.86.ds1-1 Standard scripts needed for bootin
ii libc6 2.3.2.ds1-20 GNU C Library: Shared libraries an
ii libdevmapper1.00 2:1.00.20-1 The Linux Kernel Device Mapper use
ii libsysfs1 1.1.0-1 Interface library to sysfs
ii makedev 2.3.1-75 Creates device files in /dev
ii udev 0.050-4 /dev/ management daemon
-- no debconf information
--- 01_udev.org 2005-01-12 10:57:58.000000000 +0100
+++ 01_udev.works 2005-01-12 22:51:22.000000000 +0100
@@ -4,8 +4,9 @@
cp /sbin/udevstart $INITRDDIR/sbin/
cp /bin/mountpoint $INITRDDIR/bin/
cp /bin/readlink $INITRDDIR/bin/
+cp /bin/cp $INITRDDIR/bin/
-PROGS="/sbin/udev /sbin/udevstart /bin/mountpoint /bin/readlink"
+PROGS="/sbin/udev /sbin/udevstart /bin/mountpoint /bin/readlink /bin/cp"
LIBS=`ldd $PROGS | grep -v linux-gate.so | sort -u | \
awk '{print $3}'`
for i in $LIBS
@@ -33,10 +34,15 @@
cat <<EOF >| $INITRDDIR/scripts/10_udev.sh
cd /
+mount -n --bind /dev /mnt
mount -nt proc proc proc
mount -nt sysfs sysfs sys
mount -nt tmpfs tmpfs dev || mount -nt ramfs ramfs dev
mount -nt tmpfs tmpfs tmp || mount -nt ramfs ramfs tmp
+# preserve old /dev contents, since udev does not make
+# eg LVM nodes.
+cp -a /mnt/* /dev
+umount -n /mnt
#modprobe dm-mod
#modprobe dm-multipath
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]