openwrt-packages/utils/lvm2/files/lvm2.preinit

26 lines
1.1 KiB
Bash

#!/bin/sh
# Copyright (C) 2019 Harrie Rooijackers
# The make proecess copies this file to the /lib/preinit/80_lvm2
# As a result it is executed just before 80_mount_root and makes lvm
# entities available during the mount_root process that handles any
# overlays. This allows overlays to be lvm2 partitions.
# Note that /lib/preinit/80_lvm2 needs to be on the initial "lower"
# partition for this to work.
do_startlvm() {
echo "Starting lvm2 during preinit" > /dev/kmsg
# The following 3 lines are copied from from the start function
# in /etc/rc.d/S15lvm2 which is copyright by Stefan Monnier
mkdir -p /tmp/lvm/cache
/sbin/lvm vgscan --ignorelockingfailure --mknodes > /dev/kmsg || :
/sbin/lvm vgchange -aly --ignorelockingfailure > /dev/kmsg || return 2
}
# Perform the function only if lvm2 is enabled by the user
# Not sure if the test is that useful since it tests the existance
# of /etc/rc.d/S15lvm2 on the initial "lower" partition only so
# changes made after the overlay is created are not taken into account
[ -f /etc/rc.d/S15lvm2 ] && boot_hook_add preinit_main do_startlvm