#!/bin/sh # vim: set ts=4 sw=4 sts=4 et : # ------------------------------------------------------------------------------ # Source external scripts # ------------------------------------------------------------------------------ . $SCRIPTSDIR/vars.sh . ./umount_kill.sh >/dev/null # ------------------------------------------------------------------------------ # Configurations # ------------------------------------------------------------------------------ if [ "$VERBOSE" -ge 2 -o "$DEBUG" == "1" ]; then set -x else set -e fi # ------------------------------------------------------------------------------ # If .prepared_groups has not been completed, don't continue # ------------------------------------------------------------------------------ if ! [ -f "$INSTALLDIR/tmp/.prepared_groups" ]; then error "prepared_groups installataion has not completed!... Exiting" exit 1 fi # ------------------------------------------------------------------------------ # Mount system mount points # ------------------------------------------------------------------------------ for fs in /dev /dev/pts /proc /sys /run; do mount -B $fs "$INSTALLDIR/$fs"; done # ------------------------------------------------------------------------------ # Execute any template flavor or sub flavor 'pre' scripts # ------------------------------------------------------------------------------ buildStep "$0" "pre" # ------------------------------------------------------------------------------ # Install Qubes Packages # ------------------------------------------------------------------------------ if ! [ -f "$INSTALLDIR/tmp/.prepared_qubes" ]; then debug "Installing qbues modules" # -------------------------------------------------------------------------- # Set up a temporary policy-rc.d to prevent apt from starting services # on package installation # -------------------------------------------------------------------------- cat > "$INSTALLCHROOT/usr/sbin/policy-rc.d" <> "$INSTALLDIR/etc/locale.gen" chroot "$INSTALLDIR" locale-gen chroot "$INSTALLDIR" update-locale LANG=en_US.UTF-8 # -------------------------------------------------------------------------- # Update /etc/fstab # -------------------------------------------------------------------------- debug "Updating template fstab file..." cat >> "$INSTALLDIR/etc/fstab" < "$INSTALLDIR/etc/apt/sources.list.d/qubes-builder.list" </dev/null 2>&1; then : else chroot "$INSTALLDIR" groupadd -f user chroot "$INSTALLDIR" useradd -g user -G dialout,cdrom,floppy,sudo,audio,dip,video,plugdev -m -s /bin/bash user fi # -------------------------------------------------------------------------- # Modules setup # -------------------------------------------------------------------------- echo "xen_netfront" >> "$INSTALLDIR/etc/modules" # -------------------------------------------------------------------------- # Remove `mesg` from root/.profile? # -------------------------------------------------------------------------- sed -i -e '/^mesg n/d' "$INSTALLDIR/root/.profile" # -------------------------------------------------------------------------- # Need a xen log directory or xen scripts will fail # -------------------------------------------------------------------------- mkdir -p -m 0700 "$INSTALLDIR/var/log/xen" # -------------------------------------------------------------------------- # Copy extra files to installation directory. Contains: # - font fixes for display issues # -------------------------------------------------------------------------- copyTree "qubes-files" "${SCRIPTSDIR}" "${INSTALLDIR}" # -------------------------------------------------------------------------- # Looks like hosts file may contain tabs and qubes will not parse it # correctly # -------------------------------------------------------------------------- expand "${INSTALLDIR}/etc/hosts" > "${INSATLLDIR}/etc/hosts.dist" mv "${INSTALLDIR}/etc/hosts.dist" "${INSATLLDIR}/etc/hosts" fi # ------------------------------------------------------------------------------ # Execute any template flavor or sub flavor 'post' scripts # ------------------------------------------------------------------------------ buildStep "$0" "post" # ------------------------------------------------------------------------------ # Kill all processes and umount all mounts within $INSTALLDIR, but not # $INSTALLDIR itself (extra '/' prevents $INSTALLDIR from being umounted itself) # ------------------------------------------------------------------------------ umount_kill "$INSTALLDIR/" || :