Ubuntu 22.04环境下Multipass虚拟机时间持续漂移且无法同步宿主机时钟的解决咨询
Ubuntu 22.04环境下Multipass虚拟机时间持续漂移且无法同步宿主机时钟的解决咨询
你遇到的这个Multipass虚拟机时间漂移问题确实挺让人头疼的,尤其是不想额外在虚拟机里部署NTP服务的话,可以从Multipass本身的配置入手解决,给你几个可行的方案:
方案一:启动虚拟机时指定宿主机时钟同步参数
Multipass基于QEMU运行,我们可以通过传递QEMU的时钟参数,强制虚拟机直接复用宿主机的时钟基准,具体操作步骤如下:
- 先停止当前有问题的虚拟机(把
<你的虚拟机名>替换成实际名称):multipass stop <你的虚拟机名> - 如果愿意重新创建虚拟机,启动时添加QEMU参数:
如果不想重新创建,也可以尝试修改虚拟机的配置文件(路径通常在multipass launch --name <你的虚拟机名> --qemu-args "-rtc base=utc,clock=host"/var/snap/multipass/common/data/multipassd/vault/instances/<你的虚拟机名>/下),编辑qemu.conf添加上述参数后,重启Multipass服务:sudo systemctl restart snap.multipass.multipassd.service
方案二:启用虚拟机内置的轻量时间同步服务
虽然你提到不想用ntpd,但systemd-timesyncd是Ubuntu默认自带的轻量时间同步工具,几乎没有额外资源开销,配置起来也很简单:
- 进入虚拟机:
multipass shell <你的虚拟机名> - 安装并启用服务(如果未预装的话):
sudo apt update && sudo apt install -y systemd-timesyncd sudo systemctl enable --now systemd-timesyncd - 验证同步状态:
正常情况下会看到timedatectl statusSystem clock synchronized: yes和NTP service: active的提示,时间也会很快和宿主机对齐。
方案三:升级Multipass到最新版本
有时候这类时间同步问题是Multipass旧版本的bug,升级到最新版可能直接解决:
sudo snap refresh multipass
从你提供的timedatectl输出来看,虚拟机的RTC时间和宿主机差异很大,这大概率是QEMU默认时钟配置导致的,方案一应该能直接解决这个核心问题。
备注:内容来源于stack exchange,提问作者Jens
相关产品推荐
相关产品推荐

