Skip to content

Commit

Permalink
Activate LVM volume groups before looking for zpools.
Browse files Browse the repository at this point in the history
Original-patch-by: @jgoerzen
Signed-off-by: Benjamin Albrecht <git@albrecht.io>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes zfsonlinux/pkg-zfs#102
Closes openzfs#4029
  • Loading branch information
benalbrecht authored and behlendorf committed Dec 18, 2015
1 parent 6b4e21c commit 82dba18
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 2 deletions.
5 changes: 3 additions & 2 deletions contrib/initramfs/Makefile.am
@@ -1,15 +1,16 @@
initrddir = $(datarootdir)/initramfs-tools

initrd_SCRIPTS = conf-hooks.d/zfs hooks/zfs scripts/zfs
initrd_SCRIPTS = conf-hooks.d/zfs hooks/zfs scripts/zfs scripts/local-top/zfs

EXTRA_DIST = \
$(top_srcdir)/contrib/initramfs/conf-hooks.d/zfs \
$(top_srcdir)/contrib/initramfs/hooks/zfs \
$(top_srcdir)/contrib/initramfs/scripts/zfs \
$(top_srcdir)/contrib/initramfs/scripts/local-top/zfs \
$(top_srcdir)/contrib/initramfs/README.initramfs.markdown

install-initrdSCRIPTS: $(EXTRA_DIST)
for d in conf-hooks.d hooks scripts; do \
for d in conf-hooks.d hooks scripts scripts/local-top; do \
$(MKDIR_P) $(DESTDIR)$(initrddir)/$$d; \
cp $(top_srcdir)/contrib/initramfs/$$d/zfs \
$(DESTDIR)$(initrddir)/$$d/; \
Expand Down
60 changes: 60 additions & 0 deletions contrib/initramfs/scripts/local-top/zfs
@@ -0,0 +1,60 @@
#!/bin/sh
PREREQ="mdadm mdrun multipath"

prereqs()
{
echo "$PREREQ"
}

case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac


#
# Helper functions
#
message()
{
if [ -x /bin/plymouth ] && plymouth --ping; then
plymouth message --text="$@"
else
echo "$@" >&2
fi
return 0
}

udev_settle()
{
# Wait for udev to be ready, see https://launchpad.net/bugs/85640
if [ -x /sbin/udevadm ]; then
/sbin/udevadm settle --timeout=30
elif [ -x /sbin/udevsettle ]; then
/sbin/udevsettle --timeout=30
fi
return 0
}


activate_vg()
{
# Sanity checks
if [ ! -x /sbin/lvm ]; then
message "lvm is not available"
return 1
fi

# Detect and activate available volume groups
/sbin/lvm vgscan
/sbin/lvm vgchange -a y --sysinit
return $?
}

udev_settle
activate_vg

exit 0

0 comments on commit 82dba18

Please sign in to comment.