shutdown/shutdown.sh: mount --move all basic mounts out of /oldroot
After mount moving /dev away, apps like plymouth can do reexec with fd passing of devices, which they want to keep open until the very end.master
parent
83bb0893ed
commit
fc4e10a859
|
@ -14,6 +14,12 @@ export TERM=linux
|
||||||
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
|
||||||
. /lib/dracut-lib.sh
|
. /lib/dracut-lib.sh
|
||||||
|
|
||||||
|
mkdir /oldsys
|
||||||
|
for i in sys proc run dev; do
|
||||||
|
mkdir /oldsys/$i
|
||||||
|
mount --move /oldroot/$i /oldsys/$i
|
||||||
|
done
|
||||||
|
|
||||||
# if "kexec" was installed after creating the initramfs, we try to copy it from the real root
|
# if "kexec" was installed after creating the initramfs, we try to copy it from the real root
|
||||||
# libz normally is pulled in via kmod/modprobe and udevadm
|
# libz normally is pulled in via kmod/modprobe and udevadm
|
||||||
if [ "$ACTION" = "kexec" ] && ! command -v kexec >/dev/null 2>&1; then
|
if [ "$ACTION" = "kexec" ] && ! command -v kexec >/dev/null 2>&1; then
|
||||||
|
@ -28,10 +34,6 @@ getarg 'rd.break=pre-shutdown' && emergency_shell --shutdown pre-shutdown "Break
|
||||||
|
|
||||||
source_hook pre-shutdown
|
source_hook pre-shutdown
|
||||||
|
|
||||||
if ! ( [ -x /bin/plymouth ] && /bin/plymouth --quit ); then
|
|
||||||
[ -x /oldroot/bin/plymouth ] && /oldroot/bin/plymouth --quit
|
|
||||||
fi
|
|
||||||
|
|
||||||
warn "Killing all remaining processes"
|
warn "Killing all remaining processes"
|
||||||
|
|
||||||
killall_proc_mountpoint /oldroot
|
killall_proc_mountpoint /oldroot
|
||||||
|
|
Loading…
Reference in New Issue