例如,将vmid 102的虚拟机改成vmid 100的虚拟机
修改虚拟机配置文件
cd /etc/pve/qemu-server
mv 102.conf 100.conf
nano /etc/pve/qemu-server/100.conf
将配置文件中涉及到硬盘的参数的如sata0,scsi0,tpmstate0,efidisk0的内容修改成数值100
efidisk0: local-lvm:vm-102-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
sata0: local-lvm:vm-102-disk-1,size=32G
tpmstate0: local-lvm:vm-102-disk-2,size=4M,version=v2.0
改成如下
efidisk0: local-lvm:vm-100-disk-0,efitype=4m,pre-enrolled-keys=1,size=4M
sata0: local-lvm:vm-100-disk-1,size=32G
tpmstate0: local-lvm:vm-100-disk-2,size=4M,version=v2.0
通过lvrename命令修改vm磁盘序号
Snipaste_2023-12-05_10-01-52.png
或者命令查看磁盘
lvs -a
将VM磁盘中的102磁盘都修改为100的
lvrename /dev/pve/vm-102-disk-0 /dev/pve/vm-100-disk-0
lvrename /dev/pve/vm-102-disk-1 /dev/pve/vm-100-disk-1
lvrename /dev/pve/vm-102-disk-2 /dev/pve/vm-100-disk-2
或者使用下方命令更换vmid,复制黏贴到终端运行。
修改其中的vgNAME(当前节点名,如pve),newVMID(新VMID),oldVMID(旧VMID)参数名即可。
export \
#设置变量vgNAME,newVMID,oldVMID
vgNAME=pve newVMID=100 oldVMID=102 ; \
#循环查找旧磁盘
for i in $(lvs -a|grep $vgNAME | awk '{print $1}' | grep $oldVMID); \
do \
#重命名磁盘序号
lvrename $vgNAME/vm-$oldVMID-disk-$(echo $i | awk '{print substr($0,length,1)}') vm-$newVMID-disk-$(echo $i | awk '{print substr($0,length,1)}'); done; \
#替换conf文件中的vmid数值
sed -i "s/$oldVMID/$newVMID/g" /etc/pve/qemu-server/$oldVMID.conf; mv /etc/pve/qemu-server/$oldVMID.conf /etc/pve/qemu-server/$newVMID.conf; \
#解绑变量
unset vgNAME newVMID oldVMID;
Reference
1.How to change VMID Proxmox (bobcares.com)
2.Changing VMID of a VM | Proxmox Support Forum