kiwi-ng Custom Tumbleweed ISO

By replicating and customising a template from the geckolinux project, I created a unique Tumbleweed ISO install media. I can start the ISO in KVM, but it drops to an emergency shell from which I can mount all of my mount points and use startx to access my graphical desktop. I’ve found a few problems and am trying to fix them, but I need assistance setting up a grub options, default target, hostname, dhclient, and route. The kiwi-ng macros/setup choices lack proper documentation, and I haven’t been able to figure out several things yet. Please help.

config.sh -

test -f /.kconfig && . /.kconfig 
test -f /.profile && . /.profile 
set -euox pipefail 
for i in NetworkManager dbus tlp avahi-dnsconfd earlyoom zramswap; do 
        systemctl -f enable $i 
done 
for i in purge-kernels wicked auditd apparmor; do 
        systemctl -f disable $i 
done 
suseInsertService sshd 
suseInsertService NetworkManager 
suseInsertService dbus 
suseInsertService sshd 
suseInsertService tlp 
suseInsertService avahi-dnsconfd 
suseInsertService earlyoom 
suseInsertService zramswap 
cd / 
rm -rf /var/cache/zypp/raw/* 
sed -i -e "s/ALL ALL=(ALL) ALL/ALL ALL=(ALL) NOPASSWD: ALL/" /etc/sudoers 
chmod 0440 /etc/sudoers 
/usr/sbin/useradd -m -u 999 linux -c "Live-CD User" -p ""  -g users -G audio 
passwd -d root 
passwd -d linux 
pam-config -a --nullok 
: > /var/log/zypper.log 
chown -R linux:users /home/linux 
chkstat --system --set 
rm -rf /var/cache/zypp/packages 
ln -s /usr/lib/systemd/system/runlevel5.target /etc/systemd/system/default.target 
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER_AUTOLOGIN linux 
baseUpdateSysConfig /etc/sysconfig/keyboard KEYTABLE us.map.gz 
baseUpdateSysConfig /etc/sysconfig/keyboard YAST_KEYBOARD "english-us,pc104" 
baseUpdateSysConfig /etc/sysconfig/keyboard COMPOSETABLE "clear latin1.add" 
baseUpdateSysConfig /etc/sysconfig/language RC_LANG "en_US.UTF-8" 
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_FONT "eurlatgr.psfu" 
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_SCREENMAP trivial 
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_MAGIC "(K" 
baseUpdateSysConfig /etc/sysconfig/console CONSOLE_ENCODING "UTF-8" 
baseUpdateSysConfig /etc/sysconfig/displaymanager DISPLAYMANAGER lightdm 
baseUpdateSysConfig /etc/sysconfig/windowmanager DEFAULT_WM openbox 
echo "Storage=volatile" >> /etc/systemd/journald.conf 
rm /usr/share/fonts/truetype/Ubuntu-M.ttf 
rm /usr/share/fonts/truetype/Ubuntu-MI.ttf 
rm -R /usr/etc/skel 
rm /etc/resolv.conf 
ln -s /var/run/netconfig/resolv.conf /etc/resolv.conf 
rpm --import /etc/zypp/repos.d/key-Google.pub 
rpm --import /etc/zypp/repos.d/key-Packman.pub 
rpm --import /etc/zypp/repos.d/key-Skype.pub 
rpm --import /etc/zypp/repos.d/key-openSUSE.pub 
rpm --import /etc/zypp/repos.d/key-Nvidia.pub 
rm /etc/zypp/repos.d/key-Google.pub 
rm /etc/zypp/repos.d/key-Packman.pub 
rm /etc/zypp/repos.d/key-Skype.pub 
rm /etc/zypp/repos.d/key-openSUSE.pub 
rm /etc/zypp/repos.d/key-Nvidia.pub 
mkdir /.Trash-999 
chown 999:users /.Trash-999 
chmod 700 /.Trash-999 
systemctl enable yast-timesync.timer

config.xml - https://paste.opensuse.org/842ad453

journalctl - https://pastebin.com/r1znhXbf

[Update]

I can boot the system after changing the default.target to multi-user.target, but I can’t get to graphical.target right now.

[UPDATE]

After several tweaks to config.sh, the problem has been resolved. Thanks!