[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