The following are the steps to connect a USB external disk to proxmox host and enable Time machine. The instructions work for macOS 10.13 → 15.7.1
1. Connect your USB disk and mount it #
lsblk # find your USB disk, e.g. /dev/sdb
fdisk /dev/sdb # create GPT + one partition (n → enter → enter → w)
mkfs.ext4 /dev/sdb1
mkdir -p /mnt/usb-timemachine
blkid /dev/sdb1 # copy UUIDEdit /etc/fstab:
nano /etc/fstabAdd:
UUID=<your-uuid> /mnt/usb-timemachine ext4 defaults 0 2Then:
mount -a2. Install Samba + Avahi #
apt update
apt install samba avahi-daemon avahi-utils -y
systemctl enable --now smbd nmbd avahi-daemon3. Create Time Machine User #
useradd -m time-machine-user
passwd time-machine-user
smbpasswd -a time-machine-user
smbpasswd -e time-machine-userPrepare the directory:
mkdir -p /mnt/usb-timemachine/timemachine
chown -R time-machine-user:time-machine-user /mnt/usb-timemachine/timemachine
chmod -R 770 /mnt/usb-timemachine/timemachine4. Configure Samba #
nano /etc/samba/smb.confReplace all contents with:
[global]
workgroup = WORKGROUP
server string = Proxmox Time Capsule
map to guest = Bad User
disable spoolss = yes
host msdfs = no
server signing = mandatory
smb encrypt = required
min protocol = SMB2
max protocol = SMB3
server min protocol = SMB2_10
ea support = yes
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:metadata = stream
fruit:posix_rename = yes
fruit:resource = file
fruit:locking = none
fruit:encoding = native
fruit:zero_file_id = yes
strict sync = no
sync always = no
spotlight = no
[TimeMachine]
path = /mnt/usb-timemachine/timemachine
read only = no
valid users = time-machine-user
vfs objects = catia fruit streams_xattr
fruit:time machine = yes
fruit:time machine max size = 900G
msdfs root = noRestart:
systemctl restart smbd nmbd5. Advertise via Bonjour (Avahi) #
nano /etc/avahi/services/smb.servicePaste:
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h Time Capsule</name>
<service>
<type>_smb._tcp</type>
<port>445</port>
</service>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=TimeCapsule8,119</txt-record>
</service>
</service-group>Restart Avahi:
systemctl restart avahi-daemonVerify broadcast:
avahi-browse -a | grep SMBExpected output:
= eth0 IPv4 pve Time Capsule _smb._tcp local6. Test Locally #
smbclient -L localhost -U time-machine-userExpected:
Sharename Type
--------- ----
TimeMachine Disk7. Connect from macOS #
-
Finder → Go → Connect to Server
smb://pve.local/TimeMachine(or use your Proxmox IP, e.g.
smb://192.168.1.8/TimeMachine) -
Login as time-machine-user
-
Open System Settings → General → Time Machine → Add Backup Disk
-
Select “pve Time Capsule” and use the same credentials
-
Time Machine will show “Preparing backup…”
8. Verify on Proxmox #
ls /mnt/usb-timemachine/timemachineYou should see:
<YourMacName>_<UUID>.sparsebundleDone!
You now have a fully compatible, Proxmox-hosted Time Machine server that works across macOS 10.13 → 15.7, supports multiple Macs, uses SMB3 encryption, and broadcasts as a genuine Time Capsule.
📛
-
Tested on Proxmox version Linux pve 6.14.8-2-pve #1 SMP PREEMPT_DYNAMIC PMX 6.14.8-2 (2025-07-22T10:04Z) x86_64 GNU/Linux. ↩︎