![使用 Ubuntu 22.04 的 Multipass 客户端重复显示错误的时间](https://linux22.com/image/1197570/%E4%BD%BF%E7%94%A8%20Ubuntu%2022.04%20%E7%9A%84%20Multipass%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%87%8D%E5%A4%8D%E6%98%BE%E7%A4%BA%E9%94%99%E8%AF%AF%E7%9A%84%E6%97%B6%E9%97%B4.png)
我使用 Ubuntu 22.04 LTS 并安装了 Multipass 来快速启动小型 Ubuntu VM 进行测试。但是,这些 VM 始终显示强烈的时间漂移,并且无法与主机操作系统(具有正确的系统时间)同步。
在主机上:
$ date
Mo 25. Sep 20:40:24 CEST 2023
多通道内部:
$ date
Sun Sep 24 22:23:43 CEST 2023
$ timedatectl status
Local time: Sun 2023-09-24 22:24:27 CEST
Universal time: Sun 2023-09-24 20:24:27 UTC
RTC time: Mon 2023-09-25 17:04:01
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: no
NTP service: n/a
RTC in local TZ: no
Multipass 的“本地时间”偏差了一天减 2 小时,“世界时间”偏差了一天,“RTC 时间”偏差了大约 5 个小时(大约),...这是怎么回事?
我可以在 Multipass 内部运行另一个ntpd
,但我宁愿避免这样做,只让 Multipass 重用我的主机时钟,而不创建自己的时间。
我怎样才能做到这一点?
答案1
@user535733 是对的。Multipass 确实存在一个问题,即当计算机挂起和/或守护进程挂起时,它会“停止时间”。这对于全天候运行的 VM 服务器群来说不是问题,但对于桌面开发机器来说是个问题。
解决方法:在每个多通道虚拟机中执行
$ echo PollIntervalMinSec=32 >> /etc/systemd/timesyncd.conf
$ echo PollIntervalMaxSec=2048 >> /etc/systemd/timesyncd.conf
这对我有用:
ubuntu@myvm:~$ timedatectl
Local time: Mon 2023-10-02 19:27:57 CEST
Universal time: Mon 2023-10-02 17:27:57 UTC
RTC time: Mon 2023-10-02 17:27:56
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
NTP service: n/a
RTC in local TZ: no
ubuntu@myvm:~$ logout
~$ timedatectl
Local time: Mo 2023-10-02 19:28:02 CEST
Universal time: Mo 2023-10-02 17:28:02 UTC
RTC time: Mo 2023-10-02 17:28:03
Time zone: Europe/Berlin (CEST, +0200)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no