1

У меня есть физический хост (ноутбук) с Windows 10 с установленным и включенным Hyper-V, и у меня возникает проблема, когда при довольно простой установке гостевого Debian 9 часы не обновляются после того, как хост некоторое время переводится в спящий режим, и затем снова включается (я предполагаю, что гость отстранен от хоста).

Насколько я понимаю, эта проблема должна быть тривиальной обрабатываются службами интеграции Hyper-V, которые позволили и в настройках виртуальной машины (включены все услуги по интеграции) и в гостевом (всех hv_* модули загружаются), и где одна из служб синхронизирует время и обеспечивает его актуальность.

Итак, почему это не работает в моем случае? У меня не установлен NTP, и я не хочу, частично по принципу (специально для устранения проблемы с Hyper-V) и частично, потому что гость должен работать без подключения к Интернету и служб удаленного хоста. Мой часовой пояс хоста явно настроен на UTC (я много брожу с ноутбуком, и у меня нет ни потребности, ни желания статически связывать гостя с конкретным часовым поясом), и вместо этого использую переменную TZ .

Я прочитал несколько страниц в Microsoft и некоторые статьи Altaro, которые казались очень информированными, но не смогли меня осветить. Я также прочитал ряд ответов на сайтах Stack Exchange, где половина рекомендует использовать NTP, а другая половина в основном о чем-то другом или просто не дает желаемого совета.

Я понимаю, что, возможно, есть некоторый сигнал, который не срабатывает на госте, когда хост возвращается из спящего режима (как если бы вы, например, перевели бы гостя в спящий режим через ACPI), но это не должно быть решенная проблема?

Что и где можно устранить, чтобы убедиться, что я могу надежно закрыть крышку ноутбука (перевести ее в спящий режим) и ожидать, что я вернусь к моему гостю с обновленной отметкой времени?

1 ответ1

1

Проверьте это: https://github.com/clearlinux/distribution/issues/39

Рабочим исправлением является отключение всех других служб времени и использование хронизации, а не настройка только временного источника LIS hyperv ptp0.

Убедитесь, что источник времени LIS доступен через:

ls /sys/class/ptp
ptp0

cat /sys/class/ptp/ptp0/clock_name 
hyperv

Теперь установите Chrony для вашего дистрибутива и проверьте расположение конфига, чем создать конфиг, соответствующий вашему ptp? расположение устройства.

/etc/chrony.conf:

refclock PHC /dev/ptp0 trust
makestep 1 -1

Это позволит chrony скорректировать системное время через источник hyperv ptp0 за один большой шаг.

Время опроса может быть уменьшено до 4 секунд (мощность 2) с помощью:

refclock PHC /dev/ptp0 trust poll 2

PS: Кажется, это ошибка / недосмотр в Hyperv / LIS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .