Сначала убедитесь, что Windows не ограничен использованием только HPET, так как это может помешать хосту и гостям получать точный источник RTC:
Откройте файл cmd.exe для администратора и введите bcdedit /enum
, а затемубедитесь, что useplatformclock
нет, если введите bcdedit /deletevalue useplatformclock
, чтобы удалить его, а затем перезагрузить Windows.
Я включил это на своем хосте, чтобы исправить проблему со старым драйвером (некоторые также говорят, что это «лучший»«для работы с нет надежных доказательств ), сначала не было заметной проблемы, но потом я обнаружил, что RTC довольно сильно дрейфовал (до 0,5 с в час ...).
Существуют также другие присущие Windows проблемы (возможно, исправленные в Windows 8), где точность таймера устанавливается в зависимости от ОС, в то время как она может быть изменена любым приложением, которому требуется более высокая точность, и позже будет возвращено к более низкой точности.Эти изменения также будут искажать RTC со временем .Поэтому лучше всего (исходя из собственного опыта):
- полностью отключить синхронизацию host-> guest clock, используя:
VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1
(затем необходимо выключить виртуальную машину и перезапустить ее, чтобы изменения вступили в силу)
установить пакет NTP на гостевой компьютер, который использует стандартные внешние источники времени (как любой автономный компьютер).
Установить правильный порт NTP на хосте Windows (лично я использую Heiko Gerstung's )
Кроме того, вы должны убедиться, что ваши гостевые дополнения для виртуальной машины актуальны .