Veeam
Initially, I tried using Debian as the SMB + Veeam backup server, but due to multiple SMB-related issues I migrated to Rocky Linux, which works much more reliably.
Preparing the Backup Disk
List disks:
sudo fdisk -l
In my case the disk was /dev/sda
Open it in fdisk:
sudo fdisk /dev/sda
Inside fdisk:
- p – show partitions
- d – delete a partition
Repeat d until no partitions remain.
Create a new GPT table:
g
Create first partition:
n
1
<return>
+1500G
Create second partition:
n
2
<return>
<return>
Write changes:
w
Verify:
lsblk -o NAME,SIZE,TYPE
Adding the Disk to the VM

In step 3, enter the remaining parameters manually as shown.
Proceed similarly for the second partition.
Formatting the Veeam Partition (inside the VM)
sudo mkfs.xfs /dev/vdb
Mount it:
sudo mkdir /veeam-backup
sudo mount /dev/vdb /veeam-backup
Add to /etc/fstab:
echo "/dev/vdb /veeam-backup xfs defaults,noatime 0 0" | sudo tee -a /etc/fstab
Installing & Configuring Samba
Install Samba:
sudo dnf install samba samba-common samba-client
Edit:
sudo nano /etc/samba/smb.conf
Add at the bottom:
[veeam]
path = /veeam-backup
browseable = yes
writable = yes
guest ok = no
create mask = 0660
directory mask = 0770
Create SMB user:
sudo adduser veeam
sudo smbpasswd -a veeam
sudo chown -R veeam:veeam /veeam-backup
sudo chmod 770 /veeam-backup
Enable Samba:
sudo systemctl enable --now smb nmb
Firewall (if enabled):
sudo firewall-cmd --add-service=samba --permanent
sudo firewall-cmd --reload
Testing SMB from Arch Linux
sudo mkdir -p /mnt/veeam
sudo mount -t cifs //IP_SRV_VEEAM/veeam /mnt/veeam -o username=veeam,password=PASSWORD,vers=3.0
If you get:
make_connection_snum '/veeam-backup' does not exist or permission denied
Cause: SELinux
Rocky Linux uses SELinux in enforcing mode. Samba cannot share directories outside /var unless explicitly allowed.
Check SELinux mode:
getenforce
If it shows Enforcing
Fix:
sudo chcon -t samba_share_t /veeam-backup
sudo systemctl restart smb
Test locally:
sudo smbclient -L localhost -U veeam
You should see:
Sharename Type
veeam Disk
Test again from Arch:
sudo mount -t cifs //IP_SRV_VEEAM/veeam /mnt/veeam -o username=veeam,password=HASLO,vers=3
Verify: On Arch:
mount | grep veeam
echo "test" | sudo tee /mnt/veeam/test.txt
ls -l /mnt/veeam
sudo umount /mnt/veeam
On Rocky:
ls -l /veeam-backup
Installing Veeam Agent on Arch Linux
Arch Linux is not officially supported by Veeam.
Required packages:
sudo pacman -S mlocate
Clone AUR packages:
cd ~/Builds/aur
git clone https://aur.archlinux.org/veeam.git
git clone https://aur.archlinux.org/veeamblksnap-dkms.git
Install DKMS module:
cd veeamblknap-dkms
less PKGBUILD
makepkg -si
Install Veeam:
cd ..
cd veeam
less PKGBUILD
makepkg -si
Both veeamblksnap-dkms and mlocate are required for installation.
Snapshot Issues on Arch Linux
On my Arch Linux kernel version, the blksnap module did not build. This is a known issue with newer Arch kernels.
After many attempts, the only working solution was to disable snapshots.
Edit:
sudo nano /etc/veeam/veeam.ini
Add:
snapshotDisabled=true
Restart veeamservice:
sudo systemctl restart veeamservice
Snapshot Explanation
Without snapshots:
- files may change during backup
- databases may be mid-write
- filesystem may be inconsistent
- backup works, but is not perfectly consistent
With snapshots:
- filesystem is frozen temporarily
- backup sees a stable, unchanging view
- data is consistent
- this is the “enterprise‑grade” mode
On Arch Linux, snapshots often fail due to kernel incompatibility, so disabling them is currently the only reliable solution.
Configuring the Veeam Backup Job
Start the Veeam Agent configuration:
sudo veeam
After accepting the license agreement, selecting Workstation, and choosing the free edition, you will proceed to the backup job configuration wizard.
The initial steps (backup name, backup mode, etc.) depend on your preferences.
Destination Configuration
Choose Destination → Shared Folder
Enable SMB (CIFS)
Fill in the fields:
- Server:
IP address of the Rocky Linux SMB server (example: 192.168.x.x) - Folder:
veeam
(must match the SMB share name from smb.conf) - Domain:
leave empty (no Active Directory in this setup) - Username:
SMB user (in my case: veeam) - Password:
SMB user password
Tests
I tested the following configuration:
- Backup mode: File-level backup
Execution:
- manual backup
- scheduled backup
Restore:
- file-level restore tested successfully
All tests completed successfully.