4

Я использую ArchLinux, и у меня были проблемы с системным временем в течение многих месяцев.

Раньше он работал, но как только я обновил свой компьютер, системное время менялось при каждом запуске (как будто он не определял часовой пояс, в то время как часовой пояс в rc.conf был и является правильным).

Затем я добавил hwclock, и он был таким же, и удалил его. Если я правильно помню, кажется, это решило проблему.

Когда в моей стране менялось летнее время, время менялось на 1 час при каждом запуске (независимо от того, сколько раз я устанавливал системное время вручную или с помощью ntpdate).

Я снова попытался это исправить, и теперь у него многочасовой сдвиг, как обычно (значение сдвига - это разница UTC и местного времени). И теперь, кажется, что мое системное время не меняется. Я установил время с date -s ... и ntpdate pool.ntp.org например ... но эти меры, похоже, не сохраняются после перезагрузки. Я попробовал это с запущенным демоном hwclock, запущенным ntpd, и ни один из них не работал в DAEMONS. Я действительно смущен по этому поводу.

Я не очень использую окна. И я знаю, что загрузка Windows может вызвать проблемы в Linux с системным временем. Но это не моя проблема. Каждый раз, когда я загружаю Windows и Linux, я могу сбросить системное время вручную или командой ntpdate. Таким образом, вы можете предположить, что у меня нет никаких окон на моей машине.

Я просто хочу, чтобы мое системное время работало и не менялось автоматически (через ntp или что-то еще), просто установите его вручную (вручную или с помощью команды ntpdate), когда захотите. Пожалуйста помоги.

Вот мой 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

2 ответа2

4

Илюс, думаю, я сталкивался с этой проблемой раньше.

  1. Сначала попробуйте правильно установить системное время. (Нтп / все)
  2. Затем запустите hwclock --systohc

Это должно сбросить ваш hwclock на системное время, и должно быть постоянным при перезагрузке.

дайте нам знать, если это сработает?

2

устаревший

Следующее решение было выполнимо для более старых, предварительно установленных систем Arch Linux. Я оставляю это здесь для исторической справки.

устаревший

В вашем файле rc.conf для HARDWARECLOCK установлено значение UTC. Я думаю, что это виновник. Если вы находитесь в ситуации двойной загрузки с окнами, вам следует установить для нее "местное время" (см. Документацию по установке Arch IIRC).

Другой причиной вашей проблемы могут быть испорченные скрипты запуска, потому что arch должен выполнять «--hctosys» и «--systohc» во время запуска / выключения.

В Linux вы должны различать системные часы (назовем их SC) и аппаратные часы (HC). Они отдельные, но взаимосвязанные. Время в SC (реальное время) рассчитывается, зная, как установлен HC (местное время или UTC) и какой часовой пояс системы. В окнах нет расчета - значение HC является значением SC. Таким образом, если UTC отличается от вашего местного времени, linux настроен на обработку HC как UTC, а linux SC показывает правильное время, окна будут отображать мусор. Если, наоборот, время windows установлено правильно и linux рассматривает HC как UTC, тогда linux SC показывает время "смещено". Решением было бы заставить Linux работать с HC как с установленным местным временем (HARDWARECLOCK = "localtime").

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .