我今天早上执行了这个命令:
root@xxx:01:21:17:/home/xxx$ date --set "2015-08-06 02:54"
Thu Aug 6 02:54:00 WIB 2015
root@xxx:02:54:00:/home/xxx$ hwclock --set --date="2015-08-06 02:54"
那天晚些时候,我检查了时钟,它应该是08:00
,但它显示延迟10 minutes
:
root@xxx:07:49:59:/home/xxx$ date
Thu Aug 6 07:50:00 WIB 2015
root@xxx:07:50:00:/home/xxx$ hwclock
Thu Aug 6 07:50:01 2015 .392298 seconds
造成这种情况的可能原因有哪些?我在 VirtualBox 下使用 64 位 ArchLinux
$ uname -a
Linux xxx 4.0.4-2-ARCH #1 SMP PREEMPT Fri May 22 03:05:23 UTC 2015 x86_64 GNU/Linux
时区为 GMT+7
$ date +'%:z %Z'
+07:00 WIB
$ strings /etc/localtime | tail -n 1
WIB-7
正如评论中所建议的,安装ntp
暂时解决了这个问题:
sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd
timedatectl set-ntp true
timedatectl
但一天后,时间又开始漂移:
Local time: Fri 2015-08-07 23:52:10 WIB --> 30 minutes late
Universal time: Fri 2015-08-07 16:52:10 UTC
RTC time: Fri 2015-08-07 16:52:10
Time zone: Asia/Jakarta (WIB, +0700)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
答案1
答案2
与 Linux 相比,这更像是一个虚拟机问题。请检查虚拟盒文档,因为他们对为什么可能存在一些差异有一些评论(tldr:时钟在两台计算机之间共享)。按照上面的建议,使用 ntp。须藤 apt-get 安装 ntp。它不需要任何配置,只需要网络访问。
答案3
有一个甲骨文文档,以某种方式隐藏在 Oracle 的数据库文档中,该文档为我修复了该主题。将我的时钟源设置为 后,tsc
问题acpi_pm
完全消失了。您可以使用以下命令列出来宾 Linux 系统中的可用时钟源:
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
然后尝试不同的而不重新启动:
echo "acpi_pm" > /sys/devices/system/clocksource/clocksource0/current_clocksource
如果您发现某个设置不会引入时间漂移,则可以通过添加clocksource=acpi_pm
到GRUB_CMDLINE_LINUX_DEFAULT
文件中/etc/default/grub
,然后更新 grub config将其设置为 grub 配置中的引导参数sudo update-grub
。
答案4
正如评论中所建议的,安装ntp
解决了这个问题:
sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd
timedatectl set-ntp true
timedatectl