Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit最近の変更印刷パーマリンク × Windows 10 Hyper-Vでスリープ復帰後にゲストの時刻を同期する方法 hyperv ゲストOSが実行中に、Windows 10がスリープして復帰すると、ゲストOSは時刻がスリープ前のままで復帰する。 Hyper-VはゲストOSの起動時と再開時に時刻をホストOSと同期する。 ホストOSのスリープ復帰時には同期しない。 そのためホストOSがスリープするたびに時刻のずれが大きくなっていく。 ゲストOSがLinuxで時刻同期をxntpdやchronyで行っていても、 時刻の差が大きいとデフォルトの設定では時刻の同期を行わずプロセスが異常終了するため、 問題の解決とはならない。 対処法1: ホストOSのスリープ復帰時にVMを一時停止/再開する VMを再開すると時刻が同期されることを利用する。 PowerShellで実行中のVMを一時停止して再開するコマンドはこちら: Get-VM | Where-Object {$_.State -eq 'Running'} | Suspend-VM -Passthru | Resume-VM これを、Windowsのタスクスケジューラでスリープ復帰時に実行する。 VMの操作は管理者権限が必要なので、最上位の特権で実行するをチェックする。 トリガーの種類はイベント時、ログ: システム、ソース: Power-Troubleshooter、イベントID: 1。 プログラムはPowerShell、引数は-Command “Get-VM | Where-Object {$_.State -eq 'Running'} | Suspend-VM -Passthru | Resume-VM”。 ホストOSで一回設定すると全てのVMで使用でき、 ゲストOSでNTPによる時刻同期を設定してなくても同期できる。 参考: https://www.torutk.com/projects/swe/wiki/Windows_Hyper-V https://www.hide10.com/archives/26323 対処法2: ゲストOSのNTPの設定を変更する xntpdの場合はtinker panic 0、 chronyの場合はmakestep 1 -1を設定すると 時刻のずれが大きくても異常終了せずに時刻を同期する。 最終更新: 2020-07-18 04:58by nabium