]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
rootfs-block/block-genrules.sh: install systemd mount unit
authorHarald Hoyer <harald@redhat.com>
Wed, 9 May 2012 09:07:46 +0000 (11:07 +0200)
committerHarald Hoyer <harald@redhat.com>
Wed, 9 May 2012 11:15:32 +0000 (13:15 +0200)
modules.d/95rootfs-block/block-genrules.sh

index 1e6827abf3afeecdc5d89b1529ad0b27cfe4a44d..fe6e331ac0055988f0c2ff4bb36e0ad2133558e4 100755 (executable)
@@ -13,5 +13,22 @@ if [ "${root%%:*}" = "block" ]; then
     printf '[ -e "%s" ] && { ln -s "%s" /dev/root 2>/dev/null; rm "$job"; }\n' \
         "${root#block:}" "${root#block:}" > $hookdir/initqueue/settled/blocksymlink.sh
 
+    if [ -d /lib/systemd/system/ ]; then
+        echo "${root#block:} $NEWROOT ${fstype:-auto} ${rflags:-defaults} 1 1" >> /etc/fstab
+        {
+           echo '[Unit]'
+           echo 'Description=New Root File System'
+           echo 'DefaultDependencies=no'
+           echo 'Before=switch-root.service'
+           echo '[Mount]'
+           echo "What=${root#block:}"
+           echo "Where=$NEWROOT"
+
+       } >/lib/systemd/system/${NEWROOT#/}.mount
+
+       mkdir -p /lib/systemd/system/switch-root.target.wants
+       ln -s ../${NEWROOT#/}.mount /lib/systemd/system/switch-root.target.wants/${NEWROOT#/}.mount
+    fi
+
     wait_for_dev "${root#block:}"
 fi