A configuração do tempo não persiste durante as reinicializações

4

Eu uso o ArchLinux e tive problemas com o tempo do meu sistema por muitos meses.

Anteriormente, estava funcionando, mas uma vez que eu atualizei meu PC, a hora do sistema foi mudada a cada inicialização (como se não estivesse detectando fuso horário, enquanto o fuso horário no rc.conf estava e está correto).

Depois adicionei o hwclock e foi o mesmo e o removi. Se bem me lembro, isso parece ter resolvido o problema.

Quando o horário de verão mudava no meu país, o tempo estava mudando em 1 hora a cada inicialização (não importa quantas vezes eu configurei a hora do sistema manualmente ou por ntpdate).

Eu novamente tentei consertar isso, e agora ele tem muitas horas de turno como anteriormente (o valor de deslocamento é a diferença de UTC e hora local). E agora, parece que o tempo do meu sistema é imutável. Eu defini tempo com date -s ... e ntpdate pool.ntp.org por exemplo ... mas essas medidas não parecem persistir após uma reinicialização. Eu tentei com o daemon hwclock em execução, o ntpd em execução e nenhum deles rodando em DAEMONS. Estou muito confuso sobre isso.

Eu não uso janelas muito. E eu sei que a inicialização de janelas pode causar problemas no linux com a hora do sistema. Mas isso não é problema meu. Toda vez que eu inicializo o windows e o linux, posso redefinir o tempo do sistema manualmente ou o comando ntpdate. Então você pode supor que eu não tenho janelas na minha máquina.

Eu só quero o meu tempo de trabalho do sistema e não mudou automaticamente (via ntp ou algo assim), basta configurá-lo manualmente (à mão, ou comando ntpdate) quando eu quiser. Por favor ajude.

Aqui está o meu rc.conf

#
# /etc/rc.conf - Main Configuration for Arch Linux
#

# -----------------------------------------------------------------------
# LOCALIZATION
# -----------------------------------------------------------------------
#
# LOCALE: available languages can be listed with the 'locale -a' command
# DAEMON_LOCALE: If set to 'yes', use $LOCALE as the locale during daemon
# startup and during the boot process. If set to 'no', the C locale is used.
# HARDWARECLOCK: set to "", "UTC" or "localtime", any other value will result
#   in the hardware clock being left untouched (useful for virtualization)
#   Note: Using "localtime" is discouraged, using "" makes hwclock fall back
#   to the value in /var/lib/hwclock/adjfile
# TIMEZONE: timezones are found in /usr/share/zoneinfo
#   Note: if unset, the value in /etc/localtime is used unchanged
# KEYMAP: keymaps are found in /usr/share/kbd/keymaps
# CONSOLEFONT: found in /usr/share/kbd/consolefonts (only needed for non-US)
# CONSOLEMAP: found in /usr/share/kbd/consoletrans
# USECOLOR: use ANSI color sequences in startup messages
#
LOCALE="en_US.UTF-8"
DAEMON_LOCALE="no"
HARDWARECLOCK="UTC"
TIMEZONE="Asia/Tehran"
KEYMAP="us"
CONSOLEFONT=
CONSOLEMAP=
USECOLOR="yes"

# -----------------------------------------------------------------------
# HARDWARE
# -----------------------------------------------------------------------
#
# MODULES: Modules to load at boot-up. Blacklisting is no longer supported.
#   Replace every !module by an entry as on the following line in a file in
#   /etc/modprobe.d:
#     blacklist module
#   See "man modprobe.conf" for details.
#
MODULES=(wl vboxdrv)

# Udev settle timeout (default to 30)
UDEV_TIMEOUT=30

# Scan for FakeRAID (dmraid) Volumes at startup
USEDMRAID="no"

# Scan for BTRFS volumes at startup
USEBTRFS="no"

# Scan for LVM volume groups at startup, required if you use LVM
USELVM="no"

# -----------------------------------------------------------------------
# NETWORKING
# -----------------------------------------------------------------------
#
# HOSTNAME: Hostname of machine. Should also be put in /etc/hosts
#
HOSTNAME="ilius-vostro3300"

# Use 'ip addr' or 'ls /sys/class/net/' to see all available interfaces.
#
# Wired network setup
#   - interface: name of device (required)
#   - address: IP address (leave blank for DHCP)
#   - netmask: subnet mask (ignored for DHCP) (optional, defaults to 255.255.255.0)
#   - broadcast: broadcast address (ignored for DHCP) (optional)
#   - gateway: default route (ignored for DHCP)
# 
# Static IP example
# interface=eth0
# address=192.168.0.2
# netmask=255.255.255.0
# broadcast=192.168.0.255
# gateway=192.168.0.1
#
# DHCP example
# interface=eth0
# address=
# netmask=
# gateway=

interface=
address=
netmask=
broadcast=
gateway=

# Setting this to "yes" will skip network shutdown.
# This is required if your root device is on NFS.
NETWORK_PERSIST="no"

# Enable these netcfg profiles at boot-up. These are useful if you happen to
# need more advanced network features than the simple network service
# supports, such as multiple network configurations (ie, laptop users)
#   - set to 'menu' to present a menu during boot-up (dialog package required)
#   - prefix an entry with a ! to disable it
#
# Network profiles are found in /etc/network.d
#
# This requires the netcfg package
#
#NETWORKS=(main)

# -----------------------------------------------------------------------
# DAEMONS
# -----------------------------------------------------------------------
#
# Daemons to start at boot-up (in this order)
#   - prefix a daemon with a ! to disable it
#   - prefix a daemon with a @ to start it up in the background
#
# If something other takes care of your hardware clock (ntpd, dual-boot...)
# you should disable 'hwclock' here.
#
DAEMONS=(syslog-ng dbus wicd)

## REMOVED: netfs network crond hwclock 
## ADDED: dbus networkmanager sshd nfs-common bluetooth samba httpd postgresql IBSng starcal2d wicd
    
por saeedgnu 26.09.2011 / 14:36

2 respostas

4

Ilius, acho que já me deparei com esse problema antes.

  1. Primeiro, tente definir a hora do sistema corretamente. (ntp / whatever)
  2. Em seguida, execute hwclock --systohc

Isso deve redefinir seu hwclock para a hora do sistema e deve ser persistente durante a reinicialização.

você nos informaria se isso der certo?

    
por 26.09.2011 / 15:08
2

OUTDATED

A solução a seguir foi viável para instalações Arch Linux anteriores e anteriores ao sistema. Deixo aqui para referência histórica.

OUTDATED

Você tem HARDWARECLOCK definido como UTC no seu rc.conf. Eu acho que é o culpado. Se você estiver em uma situação de dual boot com o windows, você deve configurá-lo para "localtime" (veja arch installation docs IIRC).

Outra causa do seu problema pode ser a confusão de scripts de inicialização, porque o arco deve executar "--hctosys" e "--systohc" durante startups / shutdowns.

No linux você tem que diferenciar entre o clock do sistema (vamos chamá-lo de SC) e o clock do hardware (HC). Eles são separados, mas interconectados. O tempo em SC (tempo real) é calculado sabendo como HC é definido (hora local ou UTC) e qual é o fuso horário do sistema. No Windows não há cálculo - o valor HC é o valor SC. Portanto, se o UTC for diferente do seu horário local, o linux está configurado para tratar o HC como definido como UTC e o linux SC mostra o horário adequado, o Windows mostrará o lixo. Se, inversamente, a hora do windows estiver definida corretamente e o linux tratar o HC como configurado para UTC, então o linux 'SC mostra a hora "deslocado". A solução seria fazer com que o linux tratasse o HC como configurado para a hora local (HARDWARECLOCK="localtime").

    
por 20.11.2011 / 00:15