Skip to main content

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