我猜应该有一种方法(也许没有?)可以从Multipass导入/导出虚拟机。但是,我找不到相关的文档。基本上,我计划进行19.10的全新安装,并且希望备份一些Multipass中的虚拟机以便迁移。有什么建议吗?
我们目前没有"简单"的方法来导出和导入 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
。
希望这能有所帮助,祝好运!
根据 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
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