web-dev-qa-db-ja.com

時間構成は再起動しても保持されません

ArchLinuxを使用していますが、システム時間に何ヶ月も問題がありました。

以前は機能していましたが、PCを更新すると、起動するたびにシステム時刻がシフトしました(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
4
saeedgnu

イレウス、私は以前にこの問題に遭遇したことがあると思います。

  1. まず、システム時刻を正しく設定してみてください。 (ntp /何でも)
  2. 次に、hwclock --systohcを実行します

これにより、hwclockがシステム時刻にリセットされ、再起動後も持続するはずです。

それがうまくいくかどうか教えていただけますか?

4
brice

[〜#〜]古くなった[〜#〜]

次のソリューションは、システム化された古いArchLinuxインストールで実行可能でした。歴史的な参考のためにここに残しておきます。

[〜#〜]古くなった[〜#〜]

Rc.confでHARDWARECLOCKがUTCに設定されています。それが原因だと思います。 Windowsでデュアルブートの状況にある場合は、「localtime」に設定する必要があります(ArchインストールドキュメントIIRCを参照)。

Archは起動/シャットダウン中に「--hctosys」と「--systohc」を実行する必要があるため、問題のもう1つの原因は起動スクリプトの混乱である可能性があります。

Linuxでは、システムクロック(SCと呼びましょう)とハードウェアクロック(HC)を区別する必要があります。それらは分離していますが、相互接続されています。 SC(リアルタイム)の時間は、HCの設定方法(現地時間またはUTC)とシステムのタイムゾーンを知って計算されます。ウィンドウでは計算は行われません–HC値はSC値。したがって、UTCが現地時間と異なる場合、linuxはHCをUTCに設定されたものとして扱うように設定され、linux SCは適切な時刻を示し、ウィンドウはゴミを表示します。逆に、Windowsの時刻は正しく設定され、linuxはHCをUTCに設定されたものとして扱い、次にlinux 'SCは時刻が「シフト」したことを示します。解決策は、linuxがHCを現地時間に設定されたものとして扱うようにすることです( HARDWARECLOCK = "localtime")。

2
thebodzio