Proxmox Notes
Disable/Enable virtual machine automatic startup
qm set <VMID> --onboot [ 0 | 1 ]
Shutdown virtual machine
qm shutdown <VMID>
qm shutdown --forceStop <VMID>
Reboot virtual machine
qm reboot <VMID>
List all virtual machine IDs
qm list | awk '$1 ~ /^[0-9]+$/ { print $1 }'
List virtual machine templates (slow)
for i in $(qm list | awk '$1 ~ /^[0-9]+$/ { print $1 }');
do
vmconfig=$(qm config $i);
vmname=$(echo "$vmconfig" | awk -F: '$1 == "name" { print $2}');
(echo "$vmconfig" | grep 'template: 1' &> /dev/null) && echo $i $vmname;
done
List virtual machine templates (very fast)
for i in $(find -L /etc/pve/nodes/*/qemu-server/ -iname '*.conf');
do
vmconfig=$(cat $i);
vmid=$(basename $i | sed 's@\.conf@@');
vmname=$(echo "$vmconfig" | awk -F: '$1 == "name" { print $2}');
(echo "$vmconfig" | grep 'template: 1' &> /dev/null) && echo $vmid $vmname;
rm -f /tmp/${vmid}.conf
done
Create linked-clone VM from existing template VM
qm clone <TEMPLATE VMID> <VMID> --full 0 --name <VM NAME>
SNAPSHOTS
Create virtual machine snapshot (including RAM)
qm snapshot <VMID> <snapname> --vmstate
List virtual machine snapshots
qm listsnapshot <VMID>
Delete virtual machine snapshot
qm delsnapshot <VMID> <snapname>
Rollback virtual machine to specific snapshot
qm rollback <VMID> <snapname>
Backups
Extract VM backup files into folders
for i in *.zst
do
vmname=$(cat ${i}.notes)
backupdate=$(echo $i | awk -F '-' '{ print $4 "-" $5 }' \
| sed 's@\.vma.zst@@' ); zstd --decompress --stdout $i | vma extract - ${vmname}-${backupdate}
done
Storage
List disks from specific STORAGE
pvesm list <STORAGE>
Delete VM disk
pvesm free <STORAGE>:vm-<VMID>-disk-x