Comment 3 for bug 1807499

Revision history for this message
gongxp (453059375-c) wrote :

According to your post, I have modified /lib/udev/rules.d/69-lvm-metad.rules the line 96, but no.
# the ACTION!="remove", ENV{violently _pv_gone}=="1", RUN+="/usr/bin/systemd-run /sbin/ LVM pvscan --cache $major:$minor", GOTO=" violently _end"
The ACTION!="remove", RUN+="/sbin/ LVM pvscan --cache $major:$minor --activate ay"

Could you please tell me how to modify /usr/share/initramfs-tools/scripts/local-top/lvm2 ?

#!/bin/sh

PREREQ="mdadm mdrun multipath"

prereqs()
{
 echo "$PREREQ"
}

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

if [ ! -e /sbin/lvm ]; then
 exit 0
fi

lvchange_activate() {
 lvm lvchange -aay -y --sysinit --ignoreskippedcluster "$@"
}

activate() {
 local dev="$1"

 # Make sure that we have a non-empty argument
 if [ -z "$dev" ]; then
  return 1
 fi

 case "$dev" in
 # Take care of lilo boot arg, risky activating of all vg
 fe[0-9]*)
  lvchange_activate
  exit 0
  ;;
 # FIXME: check major
 /dev/root)
  lvchange_activate
  exit 0
  ;;

 /dev/mapper/*)
  eval $(dmsetup splitname --nameprefixes --noheadings --rows "${dev#/dev/mapper/}")
  if [ "$DM_VG_NAME" ] && [ "$DM_LV_NAME" ]; then
   lvchange_activate "$DM_VG_NAME/$DM_LV_NAME"
  fi
  ;;

 /dev/*/*)
  # Could be /dev/VG/LV; use lvs to check
  if lvm lvs -- "$dev" >/dev/null 2>&1; then
   lvchange_activate "$dev"
  fi
  ;;
 esac
}

activate "$ROOT"
activate "$resume"

exit 0