summaryrefslogtreecommitdiffstats
path: root/abs/core/device-mapper/lvm2_hook
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/device-mapper/lvm2_hook')
-rw-r--r--abs/core/device-mapper/lvm2_hook25
1 files changed, 25 insertions, 0 deletions
diff --git a/abs/core/device-mapper/lvm2_hook b/abs/core/device-mapper/lvm2_hook
new file mode 100644
index 0000000..13183c6
--- /dev/null
+++ b/abs/core/device-mapper/lvm2_hook
@@ -0,0 +1,25 @@
+# vim:set ft=sh:
+run_hook ()
+{
+ /sbin/modprobe -q dm-mod >/dev/null 2>&1
+ if [ -e "/sys/class/misc/device-mapper" ]; then
+ if [ ! -e "/dev/mapper/control" ]; then
+ /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
+ fi
+
+ # If the lvmwait= parameter has been specified on the command line
+ # wait for the device(s) before trying to activate the volume group(s)
+ if [ -n "${lvmwait}" ]; then
+ for pvdev in $(echo ${lvmwait} | sed 's|,| |g'); do
+ poll_device ${pvdev} ${rootdelay}
+ done
+ fi
+
+ [ "${quiet}" = "y" ] && LVMQUIET=">/dev/null"
+
+ msg "Scanning logical volumes..."
+ eval /sbin/lvm vgscan --ignorelockingfailure $LVMQUIET
+ msg "Activating logical volumes..."
+ eval /sbin/lvm vgchange --ignorelockingfailure --ignoremonitoring -ay $LVMQUIET
+ fi
+}