将ova或qcow2导入到PVE虚拟机

九月 03, 2024 [虚拟化与容器] #obsidian #虚拟化

将ova或qcow2导入到PVE虚拟机

Proxmox_logo_standard_hex_2000px-768x116.png

比如我们从 VMware Workstation 导出的虚拟机镜像 (ova 或者 ovf), 如果我想要导入到 proxmox 中, proxmox 默认是不支持导入 OVA 虚拟机的, 可以通过转换虚拟机虚拟磁盘的方法将虚拟磁盘附加到现有的 pve 虚拟机中.

提取 vmdk 虚拟磁盘文件

这一步如果是 ova, 则需要用解压缩软件解压一下, 如果是 ovf, 直接就能看到 vmdk 文件

转换虚拟磁盘文件

使用工具 qemu-img 进行转换, 如果是导入到 pve, 可以不转换, 使用 qm 命令会自动转换的

qemu-img convert -p -O qcow2 -c /dev/mapper/pve-vm--110--disk--0 VM110.qcow2
qemu-img convert -c -f vmdk myvm-disk1.vmdk -O qcow2 myvm-disk1.qcow2

在 PVE 上创建新的虚拟机

此步骤需要记录一下虚拟机的 ID

上传虚拟磁盘文件到 PVE

pve 本质上就是 debian linux, 你可以用任何方便的方式上传, 比如在机器上使用 wget 下载, 或者 scp sftp rz 等上传

使用 qm importdisk 命令导入

qm importdisk  <vmid> <images-name> <storage pool>  --format=<disk-fs>
vmid:vm的id 例如102
images-name:磁盘镜像的名字
storage pool: 存储磁盘镜像的位置,如lvm-thin local
disk-fs: 磁盘镜像格式  raw/vmdk/qcow2

导入成功后, 在虚拟机界面可以看到一个未使用磁盘

image.png

双击未使用磁盘, 点击添加即可

最后调整一下启动项顺序.

vmware 导入qcow2

首先使用qemu-img工具,把qcow2的镜像转化成vmdk格式的:

qemu-img convert -f qcow2 CentOS_7.2_x86_64_XD.qcow2 -O vmdk Centos.vmdk

然后会在根目录出现Centos.vmdk镜像,但是无法导入,因为没有vmx文件。导入到Vmware里会报错。

所以,我们先使用VMware建立一个空的虚拟机,系统因你的qcow2进行选择,因为我是Centos7。我这里选择的是Centos 7 64位系统。

创建好了之后,进入Virtual Machines目录下的你刚刚创建虚拟机的目录,把vmdk文件删除,用之间qemu-img转化后的文件,覆盖过去,启动Vmware就成功了。

ESXi 导入

二次转换,将vmdk转换成ESXi可认的格式;

vmkfstools -i aliyun-ecs.vmdk -d thin out-aliyun-ecs.vmdk

新建虚拟机并导入。