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보다 가상 머신 문제에 더 가깝습니다. 왜 약간의 차이가 있을 수 있는지에 대한 설명이 있으므로 Virtual Box 설명서를 확인하세요(tldr: 시계는 두 시스템 간에 공유됩니다). 위에서 제안한 대로 ntp를 사용하십시오. sudo 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 GRUB_CMDLINE_LINUX_DEFAULTconfig 를 업데이트하여 grub config에서 해당 설정을 부팅 매개변수로 설정할 수 있습니다 ./etc/default/grubsudo update-grub

답변4

의견에서 제안한 대로 설치하면 ntp문제가 해결되었습니다.

sudo pacman -S ntp
sudo systemctl enable ntpd
sudo systemctl start ntpd
timedatectl set-ntp true
timedatectl

관련 정보