Blame 0055-systemd-adapt-to-new-switch-root-mechanism.patch

Harald Hoyer 35271e
From f72318243c7e5145393b2c9830779426a124cf83 Mon Sep 17 00:00:00 2001
Harald Hoyer 35271e
From: Harald Hoyer <harald@redhat.com>
Harald Hoyer 35271e
Date: Tue, 15 May 2012 18:57:29 +0200
Harald Hoyer 35271e
Subject: [PATCH] systemd: adapt to new switch-root mechanism
Harald Hoyer 35271e
Harald Hoyer 35271e
---
Harald Hoyer 35271e
 modules.d/98systemd/dracut-initqueue.sh |    3 ++-
Harald Hoyer 35271e
 modules.d/98systemd/dracut-pre-pivot.sh |   15 ++++-----------
Harald Hoyer 35271e
 modules.d/98systemd/emergency.service   |    2 +-
Harald Hoyer 35271e
 modules.d/98systemd/module-setup.sh     |   10 +++++-----
Harald Hoyer 35271e
 modules.d/98systemd/rescue.service      |    2 +-
Harald Hoyer 35271e
 test/TEST-02-SYSTEMD/test.sh            |    2 +-
Harald Hoyer 35271e
 6 files changed, 14 insertions(+), 20 deletions(-)
Harald Hoyer 35271e
Harald Hoyer 35271e
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
Harald Hoyer 35271e
index 402f536..5b6994d 100755
Harald Hoyer 35271e
--- a/modules.d/98systemd/dracut-initqueue.sh
Harald Hoyer 35271e
+++ b/modules.d/98systemd/dracut-initqueue.sh
Harald Hoyer 35271e
@@ -106,6 +106,7 @@ done
Harald Hoyer 35271e
     while read dev mp rest; do [ "$mp" = "$NEWROOT" ] && echo $dev; done < /proc/mounts
Harald Hoyer 35271e
 } | vinfo
Harald Hoyer 35271e
 
Harald Hoyer 35271e
-systemctl switch-root
Harald Hoyer 35271e
 
Harald Hoyer 35271e
 export -p > /dracut-state.sh
Harald Hoyer 35271e
+
Harald Hoyer 35271e
+systemctl isolate switch-root.target
Harald Hoyer 35271e
diff --git a/modules.d/98systemd/dracut-pre-pivot.sh b/modules.d/98systemd/dracut-pre-pivot.sh
Harald Hoyer 35271e
index 5ee1dd0..0d717a6 100755
Harald Hoyer 35271e
--- a/modules.d/98systemd/dracut-pre-pivot.sh
Harald Hoyer 35271e
+++ b/modules.d/98systemd/dracut-pre-pivot.sh
Harald Hoyer 35271e
@@ -20,26 +20,19 @@ source_hook cleanup
Harald Hoyer 35271e
 
Harald Hoyer 35271e
 # By the time we get here, the root filesystem should be mounted.
Harald Hoyer 35271e
 # Try to find init. 
Harald Hoyer 35271e
-for i in "$(getarg real_init=)" "$(getarg init=)" $(getargs rd.distroinit=) /sbin/init; do
Harald Hoyer 35271e
+
Harald Hoyer 35271e
+for i in "$(getarg real_init=)" "$(getarg init=)"; do
Harald Hoyer 35271e
     [ -n "$i" ] || continue
Harald Hoyer 35271e
 
Harald Hoyer 35271e
     __p=$(readlink -f "${NEWROOT}/${i}")
Harald Hoyer 35271e
     if [ -x "$__p" ]; then
Harald Hoyer 35271e
         INIT="$i"
Harald Hoyer 35271e
+        echo "NEWINIT=\"$INIT\"" > /etc/switch-root.conf
Harald Hoyer 35271e
         break
Harald Hoyer 35271e
     fi
Harald Hoyer 35271e
 done
Harald Hoyer 35271e
 
Harald Hoyer 35271e
-if [ -n "$INIT" ]; then
Harald Hoyer 35271e
-    {
Harald Hoyer 35271e
-        echo "NEWROOT=\"$NEWROOT\""
Harald Hoyer 35271e
-        echo "NEWINIT=\"$INIT\""
Harald Hoyer 35271e
-    } > /etc/switch-root.conf
Harald Hoyer 35271e
-else
Harald Hoyer 35271e
-    echo "Cannot find init!"
Harald Hoyer 35271e
-    echo "Please check to make sure you passed a valid root filesystem!"
Harald Hoyer 35271e
-    emergency_shell
Harald Hoyer 35271e
-fi
Harald Hoyer 35271e
+echo "NEWROOT=\"$NEWROOT\"" >> /etc/switch-root.conf
Harald Hoyer 35271e
 
Harald Hoyer 35271e
 udevadm control --stop-exec-queue
Harald Hoyer 35271e
 systemctl stop udevd.service
Harald Hoyer 35271e
diff --git a/modules.d/98systemd/emergency.service b/modules.d/98systemd/emergency.service
Harald Hoyer 35271e
index ecebf96..7c705c4 100644
Harald Hoyer 35271e
--- a/modules.d/98systemd/emergency.service
Harald Hoyer 35271e
+++ b/modules.d/98systemd/emergency.service
Harald Hoyer 35271e
@@ -17,7 +17,7 @@ Before=shutdown.target
Harald Hoyer 35271e
 Environment=HOME=/
Harald Hoyer 35271e
 WorkingDirectory=/
Harald Hoyer 35271e
 ExecStart=-/bin/sh -i -l
Harald Hoyer 35271e
-ExecStopPost=-/usr/bin/systemctl --fail --no-block switch-root 
Harald Hoyer 35271e
+ExecStopPost=-/usr/bin/systemctl --fail --no-block default
Harald Hoyer 35271e
 Type=idle
Harald Hoyer 35271e
 StandardInput=tty-force
Harald Hoyer 35271e
 StandardOutput=inherit
Harald Hoyer 35271e
diff --git a/modules.d/98systemd/module-setup.sh b/modules.d/98systemd/module-setup.sh
Harald Hoyer 35271e
index 22e570f..c045af5 100755
Harald Hoyer 35271e
--- a/modules.d/98systemd/module-setup.sh
Harald Hoyer 35271e
+++ b/modules.d/98systemd/module-setup.sh
Harald Hoyer 35271e
@@ -114,10 +114,10 @@ install() {
Harald Hoyer 35271e
 
Harald Hoyer 35271e
     ln -fs /lib/systemd/systemd "$initdir/init"
Harald Hoyer 35271e
 
Harald Hoyer 35271e
-    {
Harald Hoyer 35271e
-        echo "LogLevel=debug"
Harald Hoyer 35271e
-        echo "LogTarget=console"
Harald Hoyer 35271e
-    } >> "$initdir/etc/systemd/system.conf"
Harald Hoyer 35271e
+#    {
Harald Hoyer 35271e
+#        echo "LogLevel=debug"
Harald Hoyer 35271e
+#        echo "LogTarget=console"
Harald Hoyer 35271e
+#    } >> "$initdir/etc/systemd/system.conf"
Harald Hoyer 35271e
 
Harald Hoyer 35271e
     rm -f "$initdir/lib/systemd/system/emergency.service"
Harald Hoyer 35271e
     inst "$moddir/emergency.service" /lib/systemd/system/emergency.service
Harald Hoyer 35271e
@@ -145,6 +145,6 @@ install() {
Harald Hoyer 35271e
     inst "$moddir/dracut-pre-pivot.service" /lib/systemd/system/dracut-pre-pivot.service
Harald Hoyer 35271e
     mkdir -p "$initdir/lib/systemd/system/switch-root.target.wants"
Harald Hoyer 35271e
     ln -s ../dracut-pre-pivot.service "$initdir/lib/systemd/system/switch-root.target.wants/dracut-pre-pivot.service"
Harald Hoyer 35271e
-    
Harald Hoyer 35271e
+    > "$initdir/etc/machine-id" 
Harald Hoyer 35271e
 }
Harald Hoyer 35271e
 
Harald Hoyer 35271e
diff --git a/modules.d/98systemd/rescue.service b/modules.d/98systemd/rescue.service
Harald Hoyer 35271e
index 057f8b4..652308c 100644
Harald Hoyer 35271e
--- a/modules.d/98systemd/rescue.service
Harald Hoyer 35271e
+++ b/modules.d/98systemd/rescue.service
Harald Hoyer 35271e
@@ -19,7 +19,7 @@ Environment=HOME=/
Harald Hoyer 35271e
 WorkingDirectory=/
Harald Hoyer 35271e
 ExecStart=-/bin/sh -i -l
Harald Hoyer 35271e
 #ExecStopPost=-/usr/bin/systemctl --fail --no-block switch-root /sysroot /sbin/init
Harald Hoyer 35271e
-ExecStopPost=-/usr/bin/systemctl --fail --no-block switch-root
Harald Hoyer 35271e
+ExecStopPost=-/usr/bin/systemctl --fail --no-block default
Harald Hoyer 35271e
 Type=idle
Harald Hoyer 35271e
 StandardInput=tty-force
Harald Hoyer 35271e
 StandardOutput=inherit
Harald Hoyer 35271e
diff --git a/test/TEST-02-SYSTEMD/test.sh b/test/TEST-02-SYSTEMD/test.sh
Harald Hoyer 35271e
index fe3bfd1..334b636 100755
Harald Hoyer 35271e
--- a/test/TEST-02-SYSTEMD/test.sh
Harald Hoyer 35271e
+++ b/test/TEST-02-SYSTEMD/test.sh
Harald Hoyer 35271e
@@ -10,7 +10,7 @@ test_run() {
Harald Hoyer 35271e
 	-hda $TESTDIR/root.ext3 \
Harald Hoyer 35271e
 	-m 256M -nographic \
Harald Hoyer 35271e
 	-net none -kernel /boot/vmlinuz-$KVERSION \
Harald Hoyer 35271e
-	-append "root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug $DEBUGFAIL" \
Harald Hoyer 35271e
+	-append "root=LABEL=dracut rw loglevel=77 systemd.log_level=debug systemd.log_target=console rd.retry=3 rd.info console=ttyS0,115200n81 selinux=0 rd.debug init=/sbin/init $DEBUGFAIL" \
Harald Hoyer 35271e
 	-initrd $TESTDIR/initramfs.testing
Harald Hoyer 35271e
     grep -m 1 -q dracut-root-block-success $TESTDIR/root.ext3 || return 1
Harald Hoyer 35271e
 }