Provide new grml-boot.target
[grml-live.git] / etc / grml / fai / config / scripts / GRMLBASE / 15-initsetup
index 277dcb0..cabf19b 100755 (executable)
@@ -10,33 +10,58 @@ set -u
 set -e
 . "$GRML_LIVE_CONFIG"
 
-if ! [ -r $target/etc/runlevel.conf ] ; then
-   echo 'Warning: /etc/runlevel.conf does not exist...'
-   echo '... assuming we do not have file-rc, skipping 15-initsetup'
-   exit 0
-fi
+systemd_setup() {
+  fcopy -M -i -B -v -r /etc/systemd
+
+  echo "Enabling user '$USERNAME' for autologin"
+  sed -i "s/\$USERNAME/$USERNAME/" "$target"/etc/systemd/system/getty@tty*.service.d/override.conf
+
+  # FIXME - ssh-bootoption is currently broken
+  # $ROOTCMD systemctl enable ssh-bootoption.service || echo "failed to enable ssh-bootoption.service"
+
+  # fails on overlayfs with
+  # "Failed to unmount transient /etc/machine-id file in our private namespace: Invalid argument"
+  $ROOTCMD systemctl mask systemd-machine-id-commit.service || echo "failed to mask $systemd-machine-id-commit.service"
+  $ROOTCMD systemctl preset-all
+
+  $ROOTCMD systemctl set-default grml-boot.target
+}
 
-# keep a backup of the original runlevel.conf file for reference
-if [ -r $target/etc/runlevel.conf.original ] ; then
-  # make sure to store old backup files if they differ as well
-  if ! cmp $target/etc/runlevel.conf $target/etc/runlevel.conf.original >/dev/null ; then
-    cp $target/etc/runlevel.conf.original $target/etc/runlevel.conf.original."$(date +%Y%m%d_%k:%M:%S)"
+file_rc_setup() {
+  if ! [ -r "${target}"/etc/runlevel.conf ] ; then
+     echo 'Warning: /etc/runlevel.conf does not exist...'
+     echo '... assuming we do not have file-rc, skipping 15-initsetup'
+     exit 0
+  fi
+
+  # keep a backup of the original runlevel.conf file for reference
+  if [ -r "${target}"/etc/runlevel.conf.original ] ; then
+    # make sure to store old backup files if they differ as well
+    if ! cmp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original >/dev/null ; then
+      cp "${target}"/etc/runlevel.conf.original "${target}/etc/runlevel.conf.original.$(date +%Y%m%d_%k:%M:%S)"
+    fi
   fi
-fi
 
-cp $target/etc/runlevel.conf $target/etc/runlevel.conf.original
+  cp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original
 
-# provide Grml's default file-rc configuration
-fcopy -v /etc/runlevel.conf
+  # provide Grml's default file-rc configuration
+  fcopy -v /etc/runlevel.conf
 
-# provide Grml's inittab configuration
-fcopy -v /etc/inittab
-sed -i "s/\$USERNAME\$/${USERNAME}/" $target/etc/inittab
+  # provide Grml's inittab configuration
+  fcopy -v /etc/inittab
+  sed -i "s/\$USERNAME\$/${USERNAME}/" "${target}"/etc/inittab
 
-# provide Grml's bootlocal init scripts
-fcopy -v /etc/init.d/bootlocal.first
-fcopy -v /etc/init.d/bootlocal.middle
-fcopy -v /etc/init.d/bootlocal.last
+  # provide Grml's bootlocal init scripts
+  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.first
+  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.middle
+  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.last
+}
+
+if ifclass FILE_RC ; then
+  file_rc_setup
+else
+  systemd_setup
+fi
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2