[Bug 1807499] Re: 30 seconds boot delay when root fs is on lvm

gongxp 453059375 at qq.com
Thu Aug 8 12:37:10 UTC 2019


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

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to lvm2 in Ubuntu.
https://bugs.launchpad.net/bugs/1807499

Title:
  30 seconds boot delay when root fs is on lvm

Status in lvm2 package in Ubuntu:
  New

Bug description:
  On my system the root filesystem is located on a logical volume. I
  have constant boot delay of 30 seconds. My current conclusion is that
  this problem exists due to lvm performing the initramfs-tools local-
  top initialization incorrectly.

  According to initramfs-tools(8):
  local-top OR nfs-top After these scripts have been executed, the root  device  node is expected to be present (local) or the network interface is expected to be usable (NFS).

  But what /usr/share/initramfs-tools/scripts/local-top/lvm2 is simply
  try to activate the requested root volume by means of scanning the (at
  that moment) available block devices. What happens on my system is
  that local-top/lvm2 is executed before the pv block device (SATA-SSD)
  shows up. Then initramfs-tools calls the wait-for-root executable
  which waits for the root device node notification via udev.

  This has a (minimum) timeout of 30 seconds configured. This timeout is
  exceeded since nothing will make the root volume device to be created.
  Then later (I guess in local-block) the root volume device is created
  (since the pv is available).

  ProblemType: Bug
  DistroRelease: Ubuntu 18.04
  Package: lvm2 2.02.176-4.1ubuntu3
  ProcVersionSignature: Ubuntu 4.15.0-42.45-generic 4.15.18
  Uname: Linux 4.15.0-42-generic x86_64
  ApportVersion: 2.20.9-0ubuntu7.5
  Architecture: amd64
  CurrentDesktop: ubuntu:GNOME
  Date: Sat Dec  8 13:52:06 2018
  ProcEnviron:
   TERM=xterm-256color
   PATH=(custom, no user)
   XDG_RUNTIME_DIR=<set>
   LANG=de_AT.UTF-8
   SHELL=/bin/bash
  SourcePackage: lvm2
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/lvm2/+bug/1807499/+subscriptions



More information about the foundations-bugs mailing list