TrueNAS VM PBS
Proxmox Backup Server is flexible and can be installed on any device running Debian, a VM or a LXC. Here I show my TrueNAS VM setup, as my main production has moved to my new TrueNAS CE box. Having PBS on the NAS is making use of the large and fast SAS ZFS RAID 10 storage.

Preparation
- Create a Bridge for the VM to use. On
bond0
I havebr0
with my main IP. - Create a user:
backup
- Download Proxmox Backup Server Installation ISO to your PC
- You need to have an app for VNC, my choice is Remmina
If you want to use a LXC, see my ofter blog, TrueNAS LXC PBS
Create a dataset and share
Go to Datasets, point to the correct pool and hit Add dataset
for the PBS data. Select a Name
for this dataset, like pbs_backups, Dataset Preset
leave as Generic.

Change the properties

Roles
- Hit Create NFS Share → Advanced Options → Maproot User set to root

Set up the VM
Go to Instances and Create a new Instance: Debian 12 LXC and start it up
- Use your previously downloaded ISO on your PC

- Set CPU to 1 or 1-2, RAM to 4 GiB, Root Disk to 10 GiB (it's only for the OS)
- Enable VNC, use a port that is free and a password.
- You need to have an app to open VNC, my choice is Remmina
PBS Installation
Hit the Create
button and the VM will start, if not, check your settings.
Start Remmina direct or via the Browser on vnc://<IPofNODE>:<PORT>
like
vnc://192.0.2.40:5900
as an example, see the Instance for more.
The Installation screen is now showed in the VNC window

Install PBS as you would do on real rust. The VNC connection will break a few times, but just relogin and continue installation.
Fill in the parameters like your: Country, Keyboard, Timezone, Password, e-mail, FQDN and IP address. Hit Install
and you are ready.
Login to your new virtual PBS on the IP shown on the Welcome screen.
Add the Dataset to the VM
This will be done in the in the PBS shell
We will use the Dataset we created and set as a NFS share in the beginning.
Open the VM (PBS-vm) shell and run this, changing the IP, path, and mount point to fit your server.
echo "<IP>:/mnt/<pool>/<dataset> /backup nfs vers=3,nouser,atime,auto,retrans=2,rw,dev,exec 0 0" >> /etc/fstab
# Example
echo "192.0.2.100:/mnt/sas-tank/pbs-backups /backup nfs vers=3,nouser,atime,auto,retrans=2,rw,dev,exec 0 0" >> /etc/fstab
Reboot the PBS VM
Final steps
If you don't have a subscription
Go to Configuration
→ Administration
→ Repositories
and do the following:
- Add the PBS-No-Subscription repository
- Disable the Enterprise repository
Set up your functions
Now add the New backup server to your nodes and set up the parameters for all your backups as for the Prune & GC and Verification. If you have several PBS servers, set the Sync Jobs as needed according to your backup-strategy.
Example, simplification
Backups run during the night to minimize network traffic during daytime. The way PBS do its backups, they are extremely fast (incremental) after the first time, and uses minimum storage space (my Deduplication Factor is 85.33 after almost 3 years).
- Garbage Collection, daily @ 19.00
- Verification, daily @ 20:00
- Sync Job, daily @ 21.00
- Prune job, daily @ 7:00

Initial runs
Do the initial runs by hand and add the schedule after that.
Add the PBS to your PVE
Go to your cluster or stand-alone PVE Datasenter → Storage and add PBS.

You should also set the Backup Job calling the new PBS and set the Schedule and Selected Nodes, Note Template (Cluster, Guest name, Node, VM ID) and other. The Retention is set on the PBS according to your strategy.
{{cluster}}, {{guestname}}, {{node}}, {{vmid}}
Note Template example
Removing the Nag Screen
echo "DPkg::Post-Invoke { \"dpkg -V proxmox-widget-toolkit | grep -q '/proxmoxlib\.js$'; if [ \$? -eq 1 ]; then { echo 'Removing subscription nag from UI...'; sed -i '/data\.status.*{/{s/\!//;s/active/NoMoreNagging/}' /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js; }; fi\"; };" >/etc/apt/apt.conf.d/no-nag-script
Using a 3d party Post Install Script
To use the Proxmox Backup Server Post Install script, run the command below only in the PBS Shell. This script is intended for managing the Repositories and removing the Nag Screen.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/post-pbs-install.sh)"
- read the code before executing
- fully understand what the script is trying to do
- fix any issues, including security issues, on your own
References
PBS [1] Incus [2] Proxmox VE Helper-Scripts [3] LinuxContainers [4]
Proxmox Backup Server homepage, Features, System Requirements,
Download, Get Started, Installation Guide ↩︎Incus is a container and virtual-machine manager.
Based on LXC for containers and QEMU for virtual machines, it offers a seamless cloud-like experience scaling from a developer's laptop to a full cluster of up to 50 servers. In addition to managing containers and VMs, Incus also provides a variety of options to manage storage and network. GitHub, Documentation. Security of LXC ↩︎Proxmox Community Scripts is a set of scripts for doing things by copy-past. Note, even if thes scripts make things easy it is not easy, you need to fully understand what the script is doing and be prepared to fix it and take care of security on youre own. homepage, GitHub, PBS Post Install ↩︎