38 lines
876 B
Bash
Executable File
38 lines
876 B
Bash
Executable File
#!/bin/sh
|
|
|
|
if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then
|
|
[ -h "$job" ] && rm -f "$job"
|
|
# run lvm scan if udev has settled
|
|
|
|
VGS=$(getargs rd_LVM_VG=)
|
|
|
|
[ -d /etc/lvm ] || mkdir -p /etc/lvm
|
|
# build a list of devices to scan
|
|
lvmdevs=$(
|
|
for f in /tmp/.lvm_scan-*; do
|
|
[ -e "$f" ] || continue
|
|
echo -n "${f##/tmp/.lvm_scan-} "
|
|
done
|
|
)
|
|
|
|
if [ ! -e /etc/lvm/lvm.conf ]; then
|
|
{
|
|
echo 'devices {';
|
|
echo -n ' filter = [ '
|
|
for dev in $lvmdevs; do
|
|
printf '"a|^/dev/%s$|", ' $dev;
|
|
done;
|
|
echo '"r/.*/" ]';
|
|
echo 'types = [ "blkext", 1024 ]'
|
|
echo '}';
|
|
} > /etc/lvm/lvm.conf
|
|
lvmwritten=1
|
|
fi
|
|
info "Scanning devices $lvmdevs for LVM volume groups $VGS"
|
|
lvm vgscan 2>&1 | vinfo
|
|
lvm vgchange -ay $VGS 2>&1 | vinfo
|
|
[ "$lvmwritten" ] && rm -f /etc/lvm/lvm.conf
|
|
unset lvmwritten
|
|
fi
|
|
|