В чём мобыть дело?
В процессе останова может не выполняться скрипт, который синхронизирует программные часы с хардварными. Обычно эти команды находятся в скриптах останова. В винде это делается сразу после модификации времени, а в nix`ах это делают скрипты.
Примерно работа с временем происходит так:
1. Включение питания -- время из хардварных часов помещается в память.
2. Работа машины -- ядро использует программное время.
3. Выключение машины -- программное время записывается в хардварные часы.
Все операции происходят с учётом смещения часового пояса.
Если в начале или в конце работы скрипт синхронизации не выполняет свою работу, то будет наблюдаться крупное смещение во времени и отсутствие его сохранения.
В Ubuntu 11.10 и Debian - скрипт:
/etc/init.d/hwclockВ ArchLinux -
/etc/rc.d/hwclockНаверное надо сделать вот как :
предполагается, что хардварные часы идут по UTC.1. Программно выставить время.2. Принудительно синхронизировать время программных часов с аппаратными:hwclock --adjust --utcили выставить конкретное значение:
hwclock --set --utc --date="2012-02-03 16:00:05"где время\дата - местное, автоматом переконвертируется в UTC и запишется в регистры хардварных часов.
3. Проверить как выставилось время.программные часы:
$ date --utcаппаратные:
$ hwclock --show(результаты должны совпасть).
4. Перезагрузить машину (можно даже выключить и снова включить, чтобы проверить исправность батарейки).
Ну а дальше - по обстоятельствам.