| #!/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 |