qemu-img转换磁盘格式

2024-04-18 19:11   265   0  

系统配置,使用参考

变更默认访问端口


参考

重置系统密码


参考

创建标准虚拟机


参考

网卡直通


参考

qm 方式安装openwet


参考

LXC 方式部署openwrt


参考

备份恢复虚拟机


参考

ESXi OVA 导入


参考

6 更新到 7


参考

CT 模板导入虚拟机


参考

SMB 服务


参考

Grafana 监控PVE


参考

qemu-img格式转换


参考

Proxmox Backup Server备份恢复


参考

更改登录横幅


参考

qemu-img格式转换

qemu-img convert -f <原格式> -O <目标格式> <原文件路径> <目标文件路径> 这里 -f <原格式>可以忽略。qemu-img会自动识别

vmdk转qcow2

qemu-img convert -O qcow2 Centos_7.6-disk1.vmdk Centos_7.6-disk1.qcow2

qcow2转vmdk 

qemu-img convert -O vmdk Centos_7.6-disk1.qcow2 Centos_7.6-disk1.vmdk

vdi转qcow2

qemu-img convert -O qcow2 Centos_7.6-disk1.vdi Centos_7.6-disk1.qcow2

vhd&vhdx转qcow2

qemu-img convert -O qcow2 Centos_7.6-disk1.vhdx Centos_7.6-disk1.qcow2

RAW转qcow2

qemu-img convert -O qcow2 Centos_7.6-disk1.raw Centos_7.6-disk1.qcow2

img转qcow2

qemu-img convert -O qcow2 Centos_7.6-disk1.img Centos_7.6-disk1.qcow2

qm虚拟导入参考


 ESXi OVA 导入ProxmoxVE 虚拟机

首先从esxi主机的管理客户端vSphere Client中把要迁移的虚拟机关机选中需要迁移的机器,在菜单“文件”--“导出”--“导出OVF模板”,然后格式选择“单个文件(OVA)”,等待导出完成

Centos7.6.ova 



上传Centos7.6.ova虚拟机存储(local-lvm的备份默认路径为:/var/lib/vz/template/iso)


解压 Centos7.6.ova

一个ovf文件,文件包虚拟机的硬件配置,例如cpu规格、内存等

一个或多个vmdk,虚拟机的硬盘镜像,数量取决于虚拟机有多少个硬盘。


tar -xvf Centos7.6.ova



qm基本硬件环境

主板类型

简化

--machine q35|i440fx

完整

--machine (pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)

  CPU

--sockets <N>    //几个物理插槽

--vcpus <N>      //几个核心

--cpu <string>   //CPU类型 host | kvm64 | qemu64 等等

--cpulimit <0-128> //CPU限制

--cpuunits <2-262144> //CPU权重

其他信息

--bios seabios|ovmf  //选择是哪种bios类型

--boot cdn //启动顺序。cdrom  disk network 

--ostype  //l24 | l26 | other | solaris | w2k | w2k3 | w2k8 | win10 | win7 | win8 | wvista | wxp 

(注意前两个 一个是linux 2.4内核 一个是linux2.6内核以上,所以是字母小写L,不是1)

--agent 1  //开启qemu-guest-agent

--name vmname  //虚拟机名称

--scsihw virtio-scsi-pci | virtio-scsi-single | megasas | pvscsi | lsi53c810 |lsi //磁盘控制器类型

--serial<N> (/dev/.+|socket) //增加串口,N=0-3。一般指定串口0,类型为socket。此项对于需要串口情况非常有用,例如cloudinit。

硬盘参数

--scsi<N> [pool]:[size]       //其中N为scsi序号,从0开始。pool为储存池名称,例如local-lvm,[size]是硬盘大小,不需要指定磁盘名,系统创建。

例: qm create 100 --scsi0 local-lvm:40

创建虚拟机100,并且在local-lvm上创建一个40G的scsi磁盘。

--ide<N> [pool]:[size]  //ide磁盘

--sata<N> [pool]:[size] //sata磁盘

网络参数

--net[N] 

      这是一个option。N是整数,一般用序列。代表网卡序列

 

model

      网卡类型。e1000 | e1000-82540em | e1000-82544gc | e1000-82545em | i82551 | i82557b | i82559er | ne2k_isa | ne2k_pci | pcnet | rtl8139 | virtio | vmxnet3 

 

bridge=<bridge>

      bridge=vmbr[N].N代表桥接网卡的序号。

             

firewall=<1|0>

      防火墙是否开启。值为1则开启,0为关闭

 

link_down=<1|0>

     是否连接网卡,1为连接,0为端口。默认值为连接,所以一般不指定此项。

  

macaddr=<XX:XX:XX:XX:XX:XX>

     指定网卡的MAC地址

 

rate=<number> 

     限速。单位mbps。一般不指定这项

 

tag=<integer>]

     VLAN 标签

 

trunks=<vlanid[;vlanid...]> 

     trunk选项

 

<model>=<macaddr> 

     此项是model和mac的合集。可以不用上面的两个选项。直接这样设置。


cloud-init

cloudinit常用于公有云中。

需要虚拟机有cloud drive

#创建cloud drive

qm set 100 --ide2 local-lvm:cloudinit --ciuser root --cipassword YOU_password

单一导入ESXI OVA虚拟机到 ProxmoxVE

qm create 103 --name Centos7.6 --ostype l26 --agent 1 --bios seabios --boot cdn --bootdisk ide0 --onboot yes --memory 4096 --cores 2 --sockets 1 --cpu host --scsihw pvscsi --serial0 socket --start 0 --net0 virtio,bridge=vmbr0

 将Esxi的磁盘导入local-lvm存储

var/lib/vz/template/iso 上传到此目录或者自定义到任意目录

qm importdisk 103 /var/lib/vz/template/iso/Centos_7.6-disk1.vmdk local-lvm --format=qcow2

将新磁盘以ideo或者scsi驱动器的形式绑定给虚拟机 

qm set 103 --ide0 local-lvm:vm-103-disk-0

增加一个磁盘

qm set 103 --ide1 local-lvm:100

将 VM 转换成 template

qm template 103

从 template 中克隆系统

qm clone 103 104 --name Centos7.6-01

 启动104 vm

qm start 104

qm批量一键导入 OVA 虚拟机10台

前提,esxi 创建安装导出的OVA虚拟机

vi /root/qm-ova.sh

#!/bin/bash

clear

wget -N -P /root/ ftp://192.168.12.20//VMware/OVA/Centos7.6.ova --ftp-user=user --ftp-password=you_password

tar -xvf Centos7.6.ova -C /root/

echo "###"

echo "### create multiple qm Containers"

echo "###"

if [ $# -lt 3 ]; then

        echo "usage:   $0 <from id> <to id> <name>"

        echo "example: $0 120 130 centos"

        exit

else

# which template to use from local storage

vmdk="/root/Centos_7.6-disk1.vmdk"

# create container (4096MB RAM, 200GB Storage, DHCP)

for i in `seq $1 $2`; do

        clear

        echo "###"

        echo "### create qm Container ID $i from $2"

        echo "###"

        qm create $i \

        --name $3$i \

        --ostype l26 \

        --agent 1 \

        --bios seabios \

        --boot cdn \

        --bootdisk ide0 \

        --onboot yes \

        --memory 4096 \

        --cores 2 \

--sockets 1 \

--cpu host \

--scsihw pvscsi \

--serial0 socket \

--start 0 \

--net0 virtio,bridge=vmbr0 

 

qm importdisk $i $vmdk local-lvm --format=qcow2

 

qm set $i --ide0 local-lvm:vm-$i-disk-0

 

qm set $i --ide1 local-lvm:100

 

qm start $i

 

#qm template $i

done

fi


qm批量部署开始

sh qm-ova.sh 120 130 centos

qm批量创建完成 



qm一键可以删除

 for i in `seq 120 130`; do qm stop $i; qm destroy $i; done


————————————————


                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

                        

原文链接:https://blog.csdn.net/hanzheng260561728/article/details/125688883




博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。