根据文档它将根据您传递的命名虚拟机创建一个新映像。它应该看起来像这样:
vm image create -u VMNAME
执行该命令后,root
我收到此错误:
vm: ERROR: failed to create snapshot of source dataset root/vm/VMNAME@gdee65d
我没有找到任何信息或类似的问题。
更新:这里的目标是创建正在运行的虚拟机的映像/iso 文件并将其迁移到云,云仅接受自定义 iso 文件。
答案1
首先,您需要有 ZFS 才能使用vm image
命令。
虚拟机(8)
请注意,这些命令依赖于使用 ZFS 功能来打包/解包图像,因此仅在使用 ZFS 数据集作为存储位置时才可用。
您的错误是由于vm-bhyve
脚本中的这一行而发生的:
https://github.com/churchers/vm-bhyve/blob/master/lib/vm-zfs#L365
# try to snapshot
zfs snapshot -r "${VM_DS_ZFS_DATASET}/${_name}@${_snap}" >/dev/null 2>&1
[ $? -eq 0 ] || util::err "failed to create snapshot of source dataset ${VM_DS_ZFS_DATASET}/${_name}@${_snap}"
它将尝试从您的图像创建 ZFS 快照,并且似乎您没有任何具有root/vm/
名称的数据集。
定义您的 ZFS 数据集/etc/rc.conf
:
sysrc vm_dir="YOUR_ZFS_DATASET/vm"
如何创建正在运行的虚拟机的映像/iso 文件?
您可以使用以下命令将 zfs 转换为原始文件:
dd if=/dev/zvol/zvol_name of=/mnt/tank/path/file.img
然后使用 qemu-utils 将其转换为您想要的任何类型的虚拟机磁盘文件!例如对于vmdk
:
qemu-img convert -O vmdk <vmname>.raw <vmname>.vmdk