Index: /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh	(revision 68163)
+++ /trunk/src/VBox/Main/UnattendedTemplates/debian_postinstall.sh	(revision 68164)
@@ -26,4 +26,6 @@
 MY_TARGET="/target"
 MY_LOGFILE="${MY_TARGET}/var/log/vboxpostinstall.log"
+MY_CHROOT_CDROM="/cdrom"
+MY_CDROM_NOCHROOT="/cdrom"
 MY_EXITCODE=0
 MY_DEBUG="" # "yes"
@@ -134,18 +136,18 @@
 # We want the ISO available inside the target jail.
 #
-if [ -d "${MY_TARGET}/cdrom" ]; then
+if [ -d "${MY_TARGET}${MY_CHROOT_CDROM}" ]; then
     MY_RMDIR_TARGET_CDROM=
 else
     MY_RMDIR_TARGET_CDROM="yes"
-    log_command mkdir -p ${MY_TARGET}/cdrom
-fi
-
-if [ -f "${MY_TARGET}/cdrom/vboxpostinstall.sh" ]; then
+    log_command mkdir -p ${MY_TARGET}${MY_CHROOT_CDROM}
+fi
+
+if [ -f "${MY_TARGET}${MY_CHROOT_CDROM}/vboxpostinstall.sh" ]; then
     MY_UNMOUNT_TARGET_CDROM=
     echo "** binding cdrom into jail: already done" | tee -a "${MY_LOGFILE}"
 else
     MY_UNMOUNT_TARGET_CDROM="yes"
-    log_command mount -o bind /cdrom "${MY_TARGET}/cdrom"
-    if [ -f "${MY_TARGET}/cdrom/vboxpostinstall.sh" ]; then
+    log_command mount -o bind "${MY_CDROM_NOCHROOT}" "${MY_TARGET}${MY_CHROOT_CDROM}"
+    if [ -f "${MY_TARGET}${MY_CHROOT_CDROM}/vboxpostinstall.sh" ]; then
         echo "** binding cdrom into jail: success"  | tee -a "${MY_LOGFILE}"
     else
@@ -153,5 +155,5 @@
     fi
     if [ "${MY_DEBUG}" = "yes" ]; then
-        log_command find "${MY_TARGET}/cdrom"
+        log_command find "${MY_TARGET}${MY_CHROOT_CDROM}"
     fi
 fi
@@ -191,5 +193,5 @@
 echo '** Installing VirtualBox Guest Additions...' | tee -a "${MY_LOGFILE}"
 MY_IGNORE_EXITCODE=2  # returned if modules already loaded and reboot required.
-log_command_in_target /bin/bash /cdrom/vboxadditions/VBoxLinuxAdditions.run --nox11
+log_command_in_target /bin/bash "${MY_CHROOT_CDROM}/vboxadditions/VBoxLinuxAdditions.run" --nox11
 MY_IGNORE_EXITCODE=
 log_command_in_target usermod -a -G vboxsf "@@VBOX_INSERT_USER_LOGIN@@"
@@ -203,7 +205,7 @@
 echo "--------------------------------------------------" >> "${MY_LOGFILE}"
 echo '** Installing Test Execution Service...' | tee -a "${MY_LOGFILE}"
-log_command_in_target test "/cdrom/vboxvalidationkit/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
-log_command mkdir -p "${MY_TARGET}/root/validationkit" "${MY_TARGET}/target/cdrom"
-log_command cp -R /cdrom/vboxvalidationkit/* "${MY_TARGET}/root/validationkit/"
+log_command_in_target test "${MY_CHROOT_CDROM}/vboxvalidationkit/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
+log_command mkdir -p "${MY_TARGET}/root/validationkit" "${MY_TARGET}/media/cdrom"
+log_command cp -R ${MY_CDROM_NOCHROOT}/vboxvalidationkit/* "${MY_TARGET}/root/validationkit/"
 log_command chmod -R u+rw,a+xr "${MY_TARGET}/root/validationkit/"
 
@@ -212,5 +214,5 @@
 test -d "${MY_TARGET}/usr/lib/systemd/system" && MY_UNIT_PATH="${MY_TARGET}/usr/lib/systemd/system"
 if [ -d "${MY_UNIT_PATH}" ]; then
-    log_command cp "${MY_TARGET}/linux/vboxtxs.service" "${MY_UNIT_PATH}/vboxtxs.service"
+    log_command cp "${MY_CDROM_NOCHROOT}/vboxvalidationkit/linux/vboxtxs.service" "${MY_UNIT_PATH}/vboxtxs.service"
     log_command chmod 644 "${MY_UNIT_PATH}/vboxtxs.service"
     log_command_in_target systemctl -q enable vboxtxs
@@ -238,9 +240,9 @@
 if [ -n "${MY_UNMOUNT_TARGET_CDROM}" ]; then
     echo "** unbinding cdrom from jail..." | tee -a "${MY_LOGFILE}"
-    log_command umount "${MY_TARGET}/cdrom"
+    log_command umount "${MY_TARGET}${MY_CHROOT_CDROM}"
 fi
 
 if [ -n "${MY_RMDIR_TARGET_CDROM}" ]; then
-    log_command rmdir "${MY_TARGET}/cdrom"
+    log_command rmdir "${MY_TARGET}${MY_CHROOT_CDROM}"
 fi
 
Index: /trunk/src/VBox/Main/UnattendedTemplates/debian_preseed.cfg
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/debian_preseed.cfg	(revision 68163)
+++ /trunk/src/VBox/Main/UnattendedTemplates/debian_preseed.cfg	(revision 68164)
@@ -24,6 +24,12 @@
 
 # Clock
+@@VBOX_COND_IS_RTC_USING_UTC@@
 d-i clock-setup/utc-auto boolean true
 d-i clock-setup/utc boolean true
+@@VBOX_COND_END@@
+@@VBOX_COND_IS_NOT_RTC_USING_UTC@@
+d-i clock-setup/utc-auto boolean false
+d-i clock-setup/utc boolean false
+@@VBOX_COND_END@@
 d-i time/zone string @@VBOX_INSERT_TIME_ZONE_UX@@
 @@VBOX_COND_IS_INSTALLING_ADDITIONS@@d-i clock-setup/ntp boolean false@@VBOX_COND_END@@
Index: /trunk/src/VBox/Main/UnattendedTemplates/fedora_ks.cfg
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/fedora_ks.cfg	(revision 68163)
+++ /trunk/src/VBox/Main/UnattendedTemplates/fedora_ks.cfg	(revision 68164)
@@ -33,5 +33,5 @@
 
 # System timezone
-timezone --utc @@VBOX_INSERT_TIME_ZONE_UX@@
+timezone@@VBOX_COND_IS_RTC_USING_UTC@@ --utc@@VBOX_COND_END@@ @@VBOX_INSERT_TIME_ZONE_UX@@
 
 # Network information
Index: /trunk/src/VBox/Main/UnattendedTemplates/redhat_postinstall.sh
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/redhat_postinstall.sh	(revision 68163)
+++ /trunk/src/VBox/Main/UnattendedTemplates/redhat_postinstall.sh	(revision 68164)
@@ -24,4 +24,5 @@
 MY_TARGET="/mnt/sysimage"
 MY_LOGFILE="${MY_TARGET}/var/log/vboxpostinstall.log"
+MY_CHROOT_CDROM="/cdrom"
 MY_CDROM_NOCHROOT="/run/install/repo"
 MY_EXITCODE=0
@@ -108,18 +109,18 @@
 # We want the ISO available inside the target jail.
 #
-if [ -d "${MY_TARGET}/cdrom" ]; then
+if [ -d "${MY_TARGET}${MY_CHROOT_CDROM}" ]; then
     MY_RMDIR_TARGET_CDROM=
 else
     MY_RMDIR_TARGET_CDROM="yes"
-    log_command mkdir -p ${MY_TARGET}/cdrom
-fi
-
-if [ -f "${MY_TARGET}/cdrom/vboxpostinstall.sh" ]; then
+    log_command mkdir -p ${MY_TARGET}${MY_CHROOT_CDROM}
+fi
+
+if [ -f "${MY_TARGET}${MY_CHROOT_CDROM}/vboxpostinstall.sh" ]; then
     MY_UNMOUNT_TARGET_CDROM=
     echo "** binding cdrom into jail: already done" | tee -a "${MY_LOGFILE}"
 else
     MY_UNMOUNT_TARGET_CDROM="yes"
-    log_command mount -o bind "${MY_CDROM_NOCHROOT}" "${MY_TARGET}/cdrom"
-    if [ -f "${MY_TARGET}/cdrom/vboxpostinstall.sh" ]; then
+    log_command mount -o bind "${MY_CDROM_NOCHROOT}" "${MY_TARGET}${MY_CHROOT_CDROM}"
+    if [ -f "${MY_TARGET}${MY_CHROOT_CDROM}/vboxpostinstall.sh" ]; then
         echo "** binding cdrom into jail: success"  | tee -a "${MY_LOGFILE}"
     else
@@ -127,5 +128,5 @@
     fi
     if [ "${MY_DEBUG}" = "yes" ]; then
-        log_command find "${MY_TARGET}/cdrom"
+        log_command find "${MY_TARGET}${MY_CHROOT_CDROM}"
     fi
 fi
@@ -161,5 +162,5 @@
 log_command_in_target yum -y install dkms
 log_command_in_target yum -y install make
-log_command_in_target yum -y install gzip2
+log_command_in_target yum -y install bzip2
 log_command_in_target yum -y install perl
 
@@ -172,5 +173,5 @@
 echo '** Installing VirtualBox Guest Additions...' | tee -a "${MY_LOGFILE}"
 MY_IGNORE_EXITCODE=2  # returned if modules already loaded and reboot required.
-log_command_in_target /bin/bash /cdrom/vboxadditions/VBoxLinuxAdditions.run --nox11
+log_command_in_target /bin/bash "${MY_CHROOT_CDROM}/vboxadditions/VBoxLinuxAdditions.run" --nox11
 MY_IGNORE_EXITCODE=
 log_command_in_target usermod -a -G vboxsf "@@VBOX_INSERT_USER_LOGIN@@"
@@ -184,6 +185,6 @@
 echo "--------------------------------------------------" >> "${MY_LOGFILE}"
 echo '** Installing Test Execution Service...' | tee -a "${MY_LOGFILE}"
-log_command_in_target test "${MY_CDROM_NOCHROOT}/vboxvalidationkit/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
-log_command mkdir -p "${MY_TARGET}/root/validationkit" "${MY_TARGET}/target/cdrom"
+log_command_in_target test "${MY_CHROOT_CDROM}/vboxvalidationkit/linux/@@VBOX_INSERT_OS_ARCH@@/TestExecService"
+log_command mkdir -p "${MY_TARGET}/root/validationkit" "${MY_TARGET}/media/cdrom"
 log_command cp -R ${MY_CDROM_NOCHROOT}/vboxvalidationkit/* "${MY_TARGET}/root/validationkit/"
 log_command chmod -R u+rw,a+xr "${MY_TARGET}/root/validationkit/"
@@ -193,5 +194,5 @@
 test -d "${MY_TARGET}/usr/lib/systemd/system" && MY_UNIT_PATH="${MY_TARGET}/usr/lib/systemd/system"
 if [ -d "${MY_UNIT_PATH}" ]; then
-    log_command cp "${MY_TARGET}/linux/vboxtxs.service" "${MY_UNIT_PATH}/vboxtxs.service"
+    log_command cp "${MY_CDROM_NOCHROOT}/vboxvalidationkit/linux/vboxtxs.service" "${MY_UNIT_PATH}/vboxtxs.service"
     log_command chmod 644 "${MY_UNIT_PATH}/vboxtxs.service"
     log_command_in_target systemctl -q enable vboxtxs
@@ -219,9 +220,9 @@
 if [ -n "${MY_UNMOUNT_TARGET_CDROM}" ]; then
     echo "** unbinding cdrom from jail..." | tee -a "${MY_LOGFILE}"
-    log_command umount "${MY_TARGET}/cdrom"
+    log_command umount "${MY_TARGET}${MY_CHROOT_CDROM}"
 fi
 
 if [ -n "${MY_RMDIR_TARGET_CDROM}" ]; then
-    log_command rmdir "${MY_TARGET}/cdrom"
+    log_command rmdir "${MY_TARGET}${MY_CHROOT_CDROM}"
 fi
 
Index: /trunk/src/VBox/Main/UnattendedTemplates/ubuntu_preseed.cfg
===================================================================
--- /trunk/src/VBox/Main/UnattendedTemplates/ubuntu_preseed.cfg	(revision 68163)
+++ /trunk/src/VBox/Main/UnattendedTemplates/ubuntu_preseed.cfg	(revision 68164)
@@ -24,6 +24,12 @@
 
 # Clock
+@@VBOX_COND_IS_RTC_USING_UTC@@
 d-i clock-setup/utc-auto boolean true
 d-i clock-setup/utc boolean true
+@@VBOX_COND_END@@
+@@VBOX_COND_IS_NOT_RTC_USING_UTC@@
+d-i clock-setup/utc-auto boolean false
+d-i clock-setup/utc boolean false
+@@VBOX_COND_END@@
 d-i time/zone string @@VBOX_INSERT_TIME_ZONE_UX@@
 @@VBOX_COND_IS_INSTALLING_ADDITIONS@@d-i clock-setup/ntp boolean false@@VBOX_COND_END@@
Index: /trunk/src/VBox/Main/include/UnattendedImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/UnattendedImpl.h	(revision 68163)
+++ /trunk/src/VBox/Main/include/UnattendedImpl.h	(revision 68164)
@@ -70,4 +70,5 @@
     Utf8Str const &i_getExtraInstallKernelParameters() const;
 
+    bool           i_isRtcUsingUtc() const;
     bool           i_isGuestOs64Bit() const;
     VBOXOSTYPE     i_getGuestOsType() const;
@@ -80,4 +81,5 @@
     RTNATIVETHREAD  mhThreadReconfigureVM;  /**< Set when reconfigureVM is running. */
     Utf8Str         mStrGuestOsTypeId;      /**< Guest OS type ID (set by prepare). */
+    bool            mfRtcUseUtc;            /**< Copy of IMachine::RTCUseUTC (locking reasons). */
     bool            mfGuestOs64Bit;         /**< 64-bit (true) or 32-bit guest OS (set by prepare). */
     VBOXOSTYPE      meGuestOsType;          /**< The guest OS type (set by prepare). */
Index: /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 68163)
+++ /trunk/src/VBox/Main/src-server/UnattendedImpl.cpp	(revision 68164)
@@ -150,6 +150,6 @@
 
 Unattended::Unattended()
-    : mhThreadReconfigureVM(NIL_RTNATIVETHREAD), mfGuestOs64Bit(false), mpInstaller(NULL), mpTimeZoneInfo(NULL)
-    , mfIsDefaultAuxiliaryBasePath(true)
+    : mhThreadReconfigureVM(NIL_RTNATIVETHREAD), mfGuestOs64Bit(false), mfRtcUseUtc(false)
+    , mpInstaller(NULL), mpTimeZoneInfo(NULL), mfIsDefaultAuxiliaryBasePath(true)
 { }
 
@@ -266,5 +266,5 @@
         {
             strGuestOsTypeId = bstrTmp;
-            hrc = mMachine->COMGETTER(Name)(bstrTmp.asOutParam());
+            hrc = ptrMachine->COMGETTER(Name)(bstrTmp.asOutParam());
             if (SUCCEEDED(hrc))
                 strMachineName = bstrTmp;
@@ -280,9 +280,17 @@
     bool const fIs64Bit = i_isGuestOSArchX64(strGuestOsTypeId);
 
-
-    /*
-     * Write lock this object.
-     */
-    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+    BOOL fRtcUseUtc = FALSE;
+    hrc = ptrMachine->COMGETTER(RTCUseUTC)(&fRtcUseUtc);
+    if (FAILED(hrc))
+        return hrc;
+
+    /*
+     * Write lock this object and set attributes we got from IMachine.
+     */
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+
+    mStrGuestOsTypeId = strGuestOsTypeId;
+    mfGuestOs64Bit    = fIs64Bit;
+    mfRtcUseUtc       = RT_BOOL(fRtcUseUtc);
 
     /*
@@ -389,6 +397,4 @@
      * Get the guest OS type info and instantiate the appropriate installer.
      */
-    mStrGuestOsTypeId = strGuestOsTypeId;
-    mfGuestOs64Bit    = fIs64Bit;
     uint32_t   const idxOSType = Global::getOSTypeIndexFromId(mStrGuestOsTypeId.c_str());
     meGuestOsType     = idxOSType < Global::cOSTypes ? Global::sOSTypes[idxOSType].osType : VBOXOSTYPE_Unknown;
@@ -575,10 +581,16 @@
     /*
      * Set the boot order.
-     */
+     *
+     * ASSUME that the HD isn't bootable when we start out, but it will be what
+     * we boot from after the first stage of the installation is done.  Setting
+     * it first prevents endless reboot cylces.
+     */
+    /** @todo consider making 100% sure the disk isn't bootable (edit partition
+     *        table active bits and EFI stuff). */
     Assert(   mpInstaller->getBootableDeviceType() == DeviceType_DVD
            || mpInstaller->getBootableDeviceType() == DeviceType_Floppy);
-    hrc = rPtrSessionMachine->SetBootOrder(1, mpInstaller->getBootableDeviceType());
+    hrc = rPtrSessionMachine->SetBootOrder(1, DeviceType_HardDisk);
     if (SUCCEEDED(hrc))
-        hrc = rPtrSessionMachine->SetBootOrder(2, DeviceType_HardDisk);
+        hrc = rPtrSessionMachine->SetBootOrder(2, mpInstaller->getBootableDeviceType());
     if (SUCCEEDED(hrc))
         hrc = rPtrSessionMachine->SetBootOrder(3, mpInstaller->getBootableDeviceType() == DeviceType_DVD
@@ -1646,4 +1658,10 @@
 }
 
+bool Unattended::i_isRtcUsingUtc() const
+{
+    Assert(isReadLockedOnCurrentThread());
+    return mfRtcUseUtc;
+}
+
 bool Unattended::i_isGuestOs64Bit() const
 {
Index: /trunk/src/VBox/Main/src-server/UnattendedScript.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/UnattendedScript.cpp	(revision 68163)
+++ /trunk/src/VBox/Main/src-server/UnattendedScript.cpp	(revision 68164)
@@ -608,4 +608,9 @@
     else if (IS_PLACEHOLDER_MATCH("IS_NOT_MINIMAL_INSTALLATION"))
         *pfOutputting = !mpUnattended->i_isMinimalInstallation();
+    /* Is RTC using UTC (i.e. set to UTC time on startup): */
+    else if (IS_PLACEHOLDER_MATCH("IS_RTC_USING_UTC"))
+        *pfOutputting = mpUnattended->i_isRtcUsingUtc();
+    else if (IS_PLACEHOLDER_MATCH("IS_NOT_RTC_USING_UTC"))
+        *pfOutputting = !mpUnattended->i_isRtcUsingUtc();
     else
         return mpSetError->setErrorBoth(E_FAIL, VERR_NOT_FOUND, mpSetError->tr("Unknown conditional placeholder '%.*s'"),
