Browse Source

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
Harald Hoyer 12 years ago
parent
commit
fc4e10a859
  1. 10
      modules.d/99shutdown/shutdown.sh

10
modules.d/99shutdown/shutdown.sh

@ -14,6 +14,12 @@ export TERM=linux @@ -14,6 +14,12 @@ export TERM=linux
export PATH=/usr/sbin:/usr/bin:/sbin:/bin
. /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
# libz normally is pulled in via kmod/modprobe and udevadm
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 @@ -28,10 +34,6 @@ getarg 'rd.break=pre-shutdown' && emergency_shell --shutdown pre-shutdown "Break

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"

killall_proc_mountpoint /oldroot

Loading…
Cancel
Save