Proxmox VE Ultimate Cheat Sheet
⚙️ SYSTEM BASICS
| Task | Command / Info |
|---|---|
| Show Proxmox version | pveversion -v |
| Check all services | systemctl status pve* |
| Restart web GUI | systemctl restart pveproxy |
| Restart cluster service | systemctl restart pve-cluster |
| Update all packages | apt update && apt dist-upgrade -y |
| Show Proxmox repo list | cat /etc/apt/sources.list.d/pve-enterprise.list |
| Disable subscription pop-up | Edit /usr/share/pve-manager/ext6/pvemanagerlib.js |
VIRTUAL MACHINES (KVM / QEMU)
| Task | Command |
|---|---|
| List VMs | qm list |
| Start VM | qm start <vmid> |
| Stop VM | qm stop <vmid> |
| Force stop (kill) | qm stop <vmid> --skiplock |
| Shutdown via ACPI | qm shutdown <vmid> |
| Reboot VM | qm reboot <vmid> |
| Create new VM | qm create <vmid> --name myvm --memory 2048 --net0 virtio,bridge=vmbr0 |
| Clone VM | qm clone <srcid> <newid> --name newvm |
| Convert to template | qm template <vmid> |
| Resize disk | qm resize <vmid> scsi0 +10G |
| View config | cat /etc/pve/qemu-server/<vmid>.conf |
| Delete VM | qm destroy <vmid> |
| Migrate VM | qm migrate <vmid> <target-node> |
LXC CONTAINERS (CT)
| Task | Command |
|---|---|
| List containers | pct list |
| Create container | pct create <ctid> local:vztmpl/debian-12-standard_12.0-1_amd64.tar.zst --hostname myct --storage local-lvm --rootfs 8G |
| Start container | pct start <ctid> |
| Stop container | pct stop <ctid> |
| Console access | pct enter <ctid> |
| View config | cat /etc/pve/lxc/<ctid>.conf |
| Clone container | pct clone <srcid> <newid> --hostname newct |
| Backup container | vzdump <ctid> --dumpdir /backup/ --mode snapshot |
| Restore container | pct restore <ctid> /backup/vzdump-lxc-ctid.vma.zst |
NETWORKING
| Task | Command / Config |
|---|---|
| View bridges | brctl show or ip link show type bridge |
| Default network config | /etc/network/interfaces |
| Restart network service | systemctl restart networking |
| Create new bridge | Edit /etc/network/interfaces |
| Check VLAN support | cat /proc/net/vlan/config |
| VLAN-aware bridge | Enable “VLAN aware” in GUI |
STORAGE MANAGEMENT
| Task | Command |
|---|---|
| List storages | pvesm status |
| Add NFS storage | pvesm add nfs my-nfs --server 192.168.1.100 --export /data/nfs |
| Add directory storage | pvesm add dir mylocal --path /mnt/storage |
| Add ZFS pool | pvesm add zfspool tank local-zfs |
| List ZFS pools | zpool list |
| Create dataset | zfs create tank/vmdata |
CLUSTER MANAGEMENT
| Task | Command |
|---|---|
| Create cluster | pvecm create mycluster |
| Join node | pvecm add <ip-of-master> |
| Show cluster status | pvecm status |
| List nodes | pvecm nodes |
| Remove node | pvecm delnode <nodename> |
| Check quorum | pvecm expected 3 |
| Restart cluster | systemctl restart corosync pve-cluster |
HIGH AVAILABILITY (HA)
| Task | Command |
|---|---|
| Show HA status | ha-manager status |
| Add VM to HA | ha-manager add vm:<vmid> |
| Remove from HA | ha-manager remove vm:<vmid> |
| Show HA groups | ha-manager group list |
| Create HA group | ha-manager group add mygroup --nodes node1,node2 |
BACKUP & RESTORE
| Task | Command |
|---|---|
| Manual backup | vzdump <vmid> --storage local --mode snapshot |
| Restore backup | qmrestore /var/lib/vz/dump/vzdump-qemu-100.vma.zst 101 |
| Schedule backups | GUI → Datacenter → Backup |
| Verify backup | vma verify /path/to/backup.vma |
ZFS QUICK COMMANDS
| Task | Command | |
|---|---|---|
| List pools | zpool list | |
| Pool status | zpool status | |
| Create mirror pool | zpool create tank mirror /dev/sda /dev/sdb | |
| Create RAID-Z | zpool create tank raidz /dev/sda /dev/sdb /dev/sdc | |
| Snapshot | zfs snapshot tank/vmdata@snap1 | |
| Rollback snapshot | zfs rollback tank/vmdata@snap1 | |
| Replicate | `zfs send tank/vmdata@snap1 | ssh node2 zfs recv tank/vmdata` |
API & AUTOMATION
| Task | Command |
|---|---|
| Interactive API shell | pvesh |
| List nodes | pvesh get /nodes |
| List cluster status | pvesh get /cluster/status |
| Terraform Provider | hashicorp/proxmox or Telmate/proxmox |
SECURITY & USER MGMT
| Task | Command |
|---|---|
| Add user | pveum user add user@pve --password yourpass |
| List users | pveum user list |
| Add role | pveum role add MyRole -privs "VM.Console VM.Audit Datastore.AllocateSpace" |
| Assign user to role | pveum aclmod / -user user@pve -role MyRole |
| Enable 2FA | GUI → Datacenter → Users → Add TFA |
| Reset root password | passwd |
MONITORING & DIAGNOSTICS
| Task | Command |
|---|---|
| Show performance | pveperf |
| Running VMs | qm list |
| Running CTs | pct list |
| Memory usage | free -h |
| Disk usage | df -h |
| Logs | journalctl -xe or /var/log/pve/tasks/active |
TROUBLESHOOTING
| Problem | Fix |
|---|---|
| Cluster sync issues | systemctl restart pve-cluster corosync |
| Web GUI not loading | systemctl restart pveproxy |
| Locked VM | qm unlock <vmid> |
| Stuck container | pct unlock <ctid> |
| No quorum | pvecm expected 1 (temporary) |
| ZFS degraded | zpool replace tank <bad-disk> |
| Backup errors | Check /var/log/vzdump/ |
USEFUL FILE LOCATIONS
| File / Dir | Description |
|---|---|
/etc/pve/ | Cluster-wide configs |
/etc/network/interfaces | Host network setup |
/etc/pve/storage.cfg | Storage definitions |
/var/lib/vz/ | Default local storage |
/etc/pve/nodes/<node>/qemu-server/ | VM configs |
/etc/pve/nodes/<node>/lxc/ | CT configs |
/var/log/syslog | System logs |
/var/log/pve/tasks/ | Task logs |
COMMAND SHORT REFERENCE
| Category | Command |
|---|---|
| VMs | qm |
| Containers | pct |
| Cluster | pvecm |
| Storage | pvesm |
| Users/Roles | pveum |
| API Shell | pvesh |
| Backup | vzdump, qmrestore, pct restore |
Made for system admins and homelab builders 🧠