systemd: check, that --prefix= does not contain /run
authorHarald Hoyer <harald@redhat.com>
Fri, 6 Jul 2012 11:49:03 +0000 (13:49 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 6 Jul 2012 11:49:03 +0000 (13:49 +0200)
systemd will mount /run before dracut has a chance to copy over the
original content.

dracut.sh
modules.d/98systemd/module-setup.sh

index db2e33b..0b43f44 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -779,7 +779,8 @@ export initdir dracutbasedir dracutmodules drivers \
     use_fstab fstab_lines libdirs fscks nofscks \
     stdloglvl sysloglvl fileloglvl kmsgloglvl logfile \
     debug host_fs_types host_devs sshkey add_fstab \
-    DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir
+    DRACUT_VERSION udevdir systemdutildir systemdsystemunitdir \
+    prefix
 
 # Create some directory structure first
 [[ $prefix ]] && mkdir -m 0755 -p "${initdir}${prefix}"
index d20d18d..b2111a9 100755 (executable)
@@ -4,10 +4,9 @@
 
 check() {
     [[ $mount_needs ]] && return 1
-    if [[ -x /lib/systemd/systemd ]] || [[ -x /usr/lib/systemd/systemd ]]; then
-        return 255
+    if [[ -x $systemdutildir/systemd ]]; then
+       return 255
     fi
-    [[ $systemdutildir ]] && return 255
 
     return 1
 }
@@ -17,6 +16,11 @@ depends() {
 }
 
 install() {
+    if strstr "$prefix" "/run/"; then
+        dfatal "systemd does not work a prefix, which contains \"/run\"!!"
+        exit 1
+    fi
+
     dracut_install -o \
         $systemdutildir/systemd \
         $systemdutildir/systemd-cgroups-agent \