mirror of
https://github.com/archlinux-jerry/pkgbuilds
synced 2024-11-22 22:10:40 +08:00
update: kernel-modules-hook-hardlinks: fix umount issue caused by udevd try 1
This commit is contained in:
parent
512e59c17d
commit
3591f5ee9e
2 changed files with 13 additions and 2 deletions
|
@ -4,8 +4,18 @@ kver=$(uname -r)
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
# We only care about the running kernel
|
# We only care about the running kernel
|
||||||
if [[ "$line" == usr/lib/modules/$kver/vmlinuz && -d usr/lib/modules/running-kernel ]];then
|
if [[ "$line" == usr/lib/modules/$kver/vmlinuz && -d usr/lib/modules/running-kernel ]];then
|
||||||
mount --mkdir --bind --options ro /usr/lib/modules/{running-kernel,$kver}
|
mount --mkdir --bind --options ro /usr/lib/modules/{running-kernel,$kver} || continue
|
||||||
# Mounting read-only since the only modification here should be unmounting
|
# Mounting read-only since the only modification here should be unmounting
|
||||||
# when rebooting or reinstalling the running kernel
|
# when rebooting or reinstalling the running kernel
|
||||||
|
mount_unit="usr-lib-modules-${kver//-/\\x2d}.mount"
|
||||||
|
install -Dm644 <(
|
||||||
|
cat << EOF
|
||||||
|
[Unit]
|
||||||
|
After=$mount_unit
|
||||||
|
Requires=$mount_unit
|
||||||
|
EOF
|
||||||
|
) /run/systemd/system/systemd-udevd.service.d/kernel-modules-hook-hardlinks.conf
|
||||||
|
systemctl daemon-reload
|
||||||
|
# Required for clean umount on shutdown
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
|
@ -9,7 +9,8 @@ while read -r line; do
|
||||||
# This means we already ran that hook during 'remove case'
|
# This means we already ran that hook during 'remove case'
|
||||||
#
|
#
|
||||||
# Remove the mount so we can reinstall the kernel
|
# Remove the mount so we can reinstall the kernel
|
||||||
umount ${line%vmlinuz}
|
# Fixme: systemd-udevd would likely block the umount
|
||||||
|
umount /${line%vmlinuz}
|
||||||
elif [[ -f "$line" && ! -d "/usr/lib/modules/running-kernel/" ]];then
|
elif [[ -f "$line" && ! -d "/usr/lib/modules/running-kernel/" ]];then
|
||||||
# Kernel install is present and we do not have a copy
|
# Kernel install is present and we do not have a copy
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in a new issue