File scripts-systemd-upgrade-from-pre-210.sh of Package systemd

#! /bin/bash

#
# This script is supposed to be executed from the %post section. It
# contains all hacks needed to update a system which was running
# systemd < v210. This also includes systems migrating from SysV.
#
# All hacks can potentially break the admin settings since they work
# in /etc...

# Try to read default runlevel from the old inittab if it exists. If
# it fails fallback to runlevel 3 which should still be better than
# the rescue shell.
#
# Note: /etc/inittab was part of the aaa_base package which can be
# upgraded before systemd is. Therefore this file is likely to be
# missing.
if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then
        runlevel=$(sed -n -r "s/^id:([[:digit:]]):initdefault:/\1/p" /etc/inittab)
        : ${runlevel:=3}
        echo "Initializing default.target to runlevel${runlevel}.target"
        ln -s /usr/lib/systemd/system/runlevel${runlevel}.target /etc/systemd/system/default.target
fi

# migrate any symlink which may refer to the old path
for f in $(find /etc/systemd/system -type l -xtype l); do
        new_target="/usr$(readlink $f)"
        [ -f "$new_target" ] && ln -s -f $new_target $f
done