Keeping /etc/localtime up-to-date

Devin Teske dteske at vicor.com
Mon Mar 28 23:21:56 UTC 2011


On Tue, 2011-03-29 at 00:51 +0200, Olivier Smedts wrote:

> 2011/3/29 Devin Teske <dteske at vicor.com>:
> > On Mon, 2011-03-28 at 16:52 -0400, dieterbsd at engineer.com wrote:
> >> >>> And while I (think I) recall that the equivalent of /etc/localtime
> >> >>> was implemented in some version of SunOS many years ago as a
> >> symlink,
> >> >>> I believe that approach could be problematic for FreeBSD, as it
> >> >>> could impose some unintended requirements on some of the start-up
> >> >>> scripts.
> >> >>
> >> >> I have been running FreeBSD and NetBSD with /etc/localtime being
> >> >> a symlink for years and have not seen any problems as a result.
> >> >
> >> > The one (and only) problem that I've seen from using a symlink for
> >> > /etc/localtime is that -- since the /usr partition is not mounted
> >> > early-on -- boot messages get logged in GMT offset until /usr is
> >> mounted.
> >> >
> >> > However, some simply ignore this.
> >>
> >> What boot messages are these?
> >
> > The messages generated during boot -- see /var/log/messages.
> >
> >
> >> grep 2011 /var/run/dmesg.boot
> >
> > Those aren't the boot messages I'm referring to (and by convention, I
> > would call those the "kernel boot messages" as only the kernel messages
> > are found there).
> >
> >> Copyright (c) 1992-2011 The FreeBSD Project.
> >> FreeBSD 8.2-RELEASE #9: Sun Mar  6 18:47:36 pst 2011
> >
> > Huh? Please help me understand why you'd grep for "2011" in the context
> > of this topic (timezone differences).
> >
> > Here's an impirical test:
> > 1. Put your BIOS into GMT
> > 2. Make /etc/localtime a symbolic link
> > to /usr/share/zoneinfo/America/Los_Angeles
> > 3. Reboot
> >
> > In our experience, the "Regents of the University of California" message
> > is logged to /var/log/messages in GMT and subsequent messages (produced
> > after /usr is mounted) are logged in the desired timezone.
> >
> > NOTE: This assumes that "/" and "/usr" are separate partitions.
> 
> Not for me (BIOS clock set to UTC) :
> % uname -a
> FreeBSD q.gid0.org 9.0-CURRENT FreeBSD 9.0-CURRENT #0 r220114: Mon Mar
> 28 23:42:11 CEST 2011     root at q.gid0.org:/usr/obj/usr/src/sys/QUAD
> amd64
> % date
> mar 29 mar 2011 00:41:41 CEST
> % uptime
>  0:41  up 30 mins, 3 users, load averages: 0,06 0,06 0,07
> % ls -l /etc/localtime
> lrwxr-xr-x  1 root  wheel  32 29 jui  2008 /etc/localtime@ ->
> /usr/share/zoneinfo/Europe/Paris
> % mount
> tank/freebsd on / (zfs, local, noatime, nfsv4acls)
> [...]
> tank/freebsd/usr on /usr (zfs, local, noatime, nfsv4acls)
> [...]
> % grep -i regents /var/log/messages
> Mar 29 00:12:08 q kernel: The Regents of the University of California.
> All rights reserved.
> % tail -n 1 /var/log/messages
> Mar 29 00:12:08 q kernel: kbd0 at ukbd0
> 
> I don't think this content is added to /var/log/messages during boot,
> because the kernel doesn't have access to the log file (and if /usr is
> not mounted, neither is /var). I thought the kernel messages were
> saved in memory (system message buffer), and only after boot (and
> filesystems mounted, and syslogd started) were they dumped to a file.


I'm thinking that this must have changed from FreeBSD-4.8 onward. I
wasn't personally involved on this one, but did hear from my boss that
several sites reported this (but those sites were running FreeBSD 4.8
and 4.11). It's quite possible that the problem was fixed in later
releases.

In which case, I can jump up and down for joy and tell my boss that it's
once-again kosher to set /etc/localtime as a symbolic link.
--
Devin


More information about the freebsd-hackers mailing list