VirtualBox 来宾中的时钟漂移

VirtualBox 来宾中的时钟漂移

我今天早上执行了这个命令:

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

这是一个问题半虚拟化

改变半虚拟化虚拟框中的参数将有助于解决问题。在您的 virtualbox 机器的设置中,转到: 系统 > 加速 在此输入图像描述

希望这会帮助很多人。

答案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_pmGRUB_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

相关内容