从Multipass导入/导出虚拟机

我猜应该有一种方法(也许没有?)可以从Multipass导入/导出虚拟机。但是,我找不到相关的文档。基本上,我计划进行19.10的全新安装,并且希望备份一些Multipass中的虚拟机以便迁移。有什么建议吗?
3个回答

我们目前没有"简单"的方法来导出和导入 Multipass 实例。但它只是数据,所以应该可能手动操作:)

如果您想要恢复到之前的状态,我建议保存整个 /var/snap/multipass/common/data/multipassd/,然后在进行干净的 19.10 安装并安装 Multipass snap 后,将其复制回相同的位置,并执行 snap restart multipass 以使守护进程获取更改。

如果您想选择性地进行拾取和选择,那会稍微困难一些,因为您需要有选择地拾取 /var/snap/multipass/common/data/multipassd/vault/instances 中的实例,然后相应地修改 /var/snap/multipass/common/data/multipassd/vault/multipassd-instance-image-records.json/var/snap/multipass/common/data/multipassd/multipassd-vm-instances.json

希望这能有所帮助,祝好运!


1谢谢!最后我用快照拍了一张照片,然后复制了这个快照,最后进行了恢复。 - Ryan J. Yoder

根据 Ryan 的评论,以下是备份和恢复 multipass 和实例的完整过程,使用 snap snapshot,此方法只有一个要求:恢复快照的服务器必须具有与生成快照的服务器相同的用户名

停止所有实例以生成备份

multipass stop --all

生成一个多重快照的快照。
sudo snap save multipass
# Set  Snap       Age    Version  Rev    Size    Notes
# 3    multipass  1m33s  1.12.1   10053  2.05GB  

将多重快照导出为.zip文件。
sudo snap export-snapshot <set> <filename>.zip
# sudo snap export-snapshot 3 multipass-snapshot.zip
# Exported snapshot #3 into "multipass-snapshot.zip"

multipass-snapshot.zip 从旧服务器转移到新服务器。
# using scp or an alternative

在新服务器中导入多重快照。
sudo snap import-snapshot multipass-snapshot.zip
# Imported snapshot as #1
# Set  Snap       Age    Version  Rev    Size    Notes
# 1    multipass  8m53s  1.12.1   10053  2.05GB  -

恢复
sudo snap restore 1
# Restored snapshot #1.

检查
multipass list
# Name                    State             IPv4             Image
# deserving-hornet        Stopped           --               Ubuntu 22.04 LTS
# titillated-pinniped     Stopped           --               Ubuntu 22.04 LTS

好的解决方案,使用快照。我不确定是否正确,但多重启动虚拟机并不适用于克隆或导出为Virtualbox镜像,因为它们是为在云中运行而不是在桌面上创建的。获得类似镜像的正确方法是通过cloud-init系统和YAML cloud-config文件,该系统允许通过创建虚拟机时传递的文件来安装程序和复制配置。