[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#619064: No way to set system time manually in the installer?



Package: debian-installer
Version: 20110106+b1
Severity: minor

[ I hope this is the right package and version for this bug report -
or should I file against installation-reports? I am talking about the
text-mode installer in Debian 6.0.0, i.e., the initial squeeze
release, using a self-prepared USB stick/hard drive image with the
kernel and initrd from hd-media/vmlinuz and hd-media/initrd.gz, and
the ISO image debian-6.0.0-i386-netinst.iso. I gave the option
priority=low to the kernel. ]

As far as I could see, the only supported way to set the system time
in the installer is to use NTP, which it automatically suggests.
However, this does not work from behind a strict firewall without a
local NTP server, or when there is no working network in the
installer...

I tried to execute a shell from the installer to set the date
manually, but I did not find a "date" executable. (I'm used to setting
system time using "date -s".) So how should I set the date manually,
if that is necessary?

Ideally, I think there could be a dialog after I have answered "No" to
the question about using NTP that displays the current system time and
allows changing it. (Or maybe the question about NTP could be changed
to display the current date and time and give the options "Don't set
the time", "Set the time using NTP" and "Set the time manually".)
Other possibilities would be to include the "date" command in the
busybox binary that comes with the installer, or to include GNU date
(which I guess is a bit big).

(This was on an embedded system that does not allow setting the date
from the BIOS as a normal PC would, although I noticed the same
behavior also on a laptop where it wasn't a problem because the system
time was correct initially.)

I was actually able to find a rather kludgish workaround. I'll include
it here just in case someone with the same problem finds this bug
report... Looking at the binaries available in the shell executed by
the installer, I found /usr/bin/rdate (I assume it is part of an
installer component), which uses the time protocol (RFC 868). I had
another computer on the same local network, and since the rdate binary
allowed changing the port, I did not even need root access on the other
computer:

1. I ran a makeshift RFC 868 server on the other computer:

   perl -e "print pack \"N\",$(expr 2208988800 + $(date +%s))" | \
       nc -q 0 -l -p 12345

   (That magic number is given in RFC 868.)

2. And on the computer I was installing, I executed from the installer
   shell:

   rdate -v -o 12345 1.2.3.4    

   (where 1.2.3.4 is the IP of the other computer)

(A note in case someone reading this wants to use the above
workaround: the makeshift server gets the time from when it is
started, not when the connection is made. So execute rdate quickly
after starting the server, if you want the correct time...)

-- 
-=- Rjs -=- rjs@cs.hut.fi, Riku.Saikkonen@hut.fi



Reply to: