config_time(){
# don't touch the files if running from harddisk:
if [ -z "$INSTALLED" ]; then
- UTC=""
+ # The default hardware clock timezone is stated as representing local time.
+ UTC="--localtime"
checkbootparam utc >>$DEBUG 2>&1 && UTC="-u"
checkbootparam gmt >>$DEBUG 2>&1 && UTC="-u"
# hwclock uses the TZ variable
- [ -r /etc/timezone ] && TZ=$(cat /etc/timezone)
- [ -n "$TZ" ] || TZ=Europe/Vienna
+ KTZ="$(getbootparam tz 2>>$DEBUG)"
+ [ -z "$KTZ" ] && [ -r /etc/timezone ] && KTZ=$(cat /etc/timezone)
+ [ -z "$KTZ" ] && KTZ=Europe/Vienna
if ! [ -r /dev/rtc ] ; then
- ewarn "Realtime clock not available, skipping execution of hwclock therefore." ; eend 0
- else
- ERROR=$(TZ="$TZ" hwclock $UTC -s 2>&1 | head -1) ; RC=$?
- if [ -n "$ERROR" ] ; then
- eindent
- ERROR=$(TZ="$TZ" hwclock $UTC -s --directisa 2>&1 | head -1)
- if [ -n "$ERROR" ] ; then
- eerror "Problem running hwclock: $ERROR" ; eend 1
- fi
- eoutdent
- fi
+ ewarn "Warning: realtime clock not available, trying to execute hwclock anyway." ; eend 0
fi
+
+ ERROR=$(TZ="$TZ" hwclock $UTC -s 2>&1 | head -1) ; RC=$?
+ if [ -n "$ERROR" ] ; then
+ eindent
+ ERROR=$(TZ="$TZ" hwclock $UTC -s --directisa 2>&1 | head -1)
+ if [ -n "$ERROR" ] ; then
+ eerror "Problem running hwclock: $ERROR" ; eend 1
+ fi
+ eoutdent
+ fi
+
fi
}
# }}}
}
# }}}
+# {{{ tohd= bootoption
+config_tohd()
+{
+ if checkbootparam "tohd" ; then
+ local TARGET="$(getbootparam 'tohd' 2>>$DEBUG)"
+ if [ -z "$TARGET" ] ; then
+ eerror "Error: tohd specified without any partition, can not continue." ; eend 1
+ eerror "Please use something like tohd=/dev/sda9." ; eend 1
+ return 1
+ fi
+
+ if ! [ -b "$TARGET" ] ; then
+ eerror "Error: $TARGET is not a valid block device, sorry." ; eend 1
+ return 1
+ fi
+
+ if grep -q $TARGET /proc/mounts ; then
+ eerror "$TARGET already mounted, skipping execution of tohd therefore."
+ eend 1
+ return 1
+ fi
+
+ local MOUNTDIR=$(mktemp -d)
+
+ if mount -o rw "$TARGET" "$MOUNTDIR" ; then
+ einfo "Copyring live system to $TARGET - this might take a while"
+ rsync -a --progress /live/image/live $MOUNTDIR
+ sync
+ umount "$MOUNTDIR"
+ eend $?
+ einfo "Booting with \"grml bootfrom=$TARGET\" should work now." ; eend 0
+ else
+ eerror "Error when trying to mount $TARGET, sorry."; eend 1
+ return 1
+ fi
+
+ rmdir "$MOUNTDIR"
+ fi
+}
+# }}}
+
# {{{ grml2hd: automatic installation
config_grml2hd(){