将 img 转换为 vhdx/vmdk

- qemu-img windows

Image format Argument for -f and -O options
VMDK (VMware) vmdk
QCOW2 (KVM, Xen) qcow2
VHD (Hyper-V) vpc
VHDX (Hyper-V) vhdx
RAW raw
VDI (VirtualBox) vdi
# 在 Debian 中安装 qemu-utils
sudo apt install qemu-utils
# 转换 img 为 vhdx, 其中 subformat 可为 "dynamic" 或 "fixed"
qemu-img convert -f raw -O vhdx -o subformat=dynamic input.img output.vhdx
# 转换 img 为 vmdk
qemu-img convert -f raw -O vmdk -o compat6 input.img output.vmdk

# 在 .bashrc 中添加以下 alias,可以通过调用 img2vhdx input.img 快速将 img 转换为 vhdx
alias img2vhdx='function _img2vhdx() { filename=$(basename $1 .${1##*.}); filecov=${filename}.vhdx; qemu-img convert -f raw -O vhdx -o subformat=dynamic $1 ${filecov}; qemu-img check ${filecov}; qemu-img info ${filecov}; }; _img2vhdx'
alias img2vmdk='function _img2vmdk() { filename=$(basename $1 .${1##*.}); filecov=${filename}.vmdk; qemu-img convert -f raw -O vmdk -o compat6 $1 ${filecov}; qemu-img check ${filecov}; qemu-img info ${filecov}; }; _img2vmdk'

Windows 可以使用 qemu-img for Windows 实现类似功能。