summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald Hoyer <harald@redhat.com>2013-03-13 17:45:37 +0100
committerHarald Hoyer <harald@redhat.com>2013-03-13 17:45:37 +0100
commitfc4e10a8594e8c2d68dba233fa5ecc7d5babb5e1 (patch)
tree0141d6659251e059fd2e7cf3bc31829cf61da364
parent83bb0893edc1c12bbaca20267134b01df2836e1c (diff)
downloaddracut-fc4e10a8594e8c2d68dba233fa5ecc7d5babb5e1.tar.gz
dracut-fc4e10a8594e8c2d68dba233fa5ecc7d5babb5e1.tar.bz2
dracut-fc4e10a8594e8c2d68dba233fa5ecc7d5babb5e1.zip
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.
-rwxr-xr-xmodules.d/99shutdown/shutdown.sh10
1 files changed, 6 insertions, 4 deletions
diff --git a/modules.d/99shutdown/shutdown.sh b/modules.d/99shutdown/shutdown.sh
index 202ecb1c..6457cb0b 100755
--- a/modules.d/99shutdown/shutdown.sh
+++ b/modules.d/99shutdown/shutdown.sh
@@ -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
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