环境信息:Ubuntu 24.04
安装服务
apt-get update
apt-get install samba samba-common -y
apt-get install avahi-daemon avahi-utils -y
配置avahi服务,用于Time Machine的自动发现
在这个文件中,添加你当前机器的IP及主机名
cat /etc/avahi/hosts
192.168.3.1 TimeMachine.local
创建smb用户,并设置密码
useradd TimeMachineUser
(echo TimeMachinePassword;echo TimeMachinePassword)|smbpasswd -a TimeMachineUser -s
创建要备份的目录,配置权限
mkdir -p /data/TimeMachine
chmod 755 /data/TimeMachine
chown TimeMachineUser:TimeMachineUser /data/TimeMachine -R
创建samba的配置文件
tee /etc/samba/smb.conf <<-'EOF'
[global]
workgroup = WORKGROUP
server string = Router Time Machine Server
server min protocol = SMB2
client min protocol = SMB2
client max protocol = SMB3_11
logfile = /var/log/samba/%m.log
max log size = 50
log level = 1
hide unreadable = yes
invalid users = root admin administrator
# ================= macOS VFS 模块优化 =================
vfs objects = catia fruit streams_xattr
fruit:aapl = yes
fruit:nfs_aces = no
fruit:metadata = stream
fruit:veto_appledouble = yes
fruit:posix_appledouble = no
fruit:delete_empty_ADs = yes
fruit:wipe_intentionally_left_blank_rfork = yes
fruit:posix_rename = yes
fruit:model = TimeCapsule
fruit:copyfile = yes
[RouterTM]
comment = macOS Time Machine Share
path = /data/TimeMachine
browseable = yes
writable = yes
available = yes
valid users = TimeMachineUser
force user = TimeMachineUser
force group = TimeMachineUser
create mask = 0644
directory mask = 0755
# 启用Time Machine
fruit:time machine = yes
# 配额
fruit:time machine max size = 1000G
# 防数据损坏配置:强制实时物理刷盘
# 作用:Mac 发送 commit 指令时强制将脏数据落盘,防止断网/休眠导致 sparsebundle 索引和加密头坏死
strict sync = yes
sync always = yes
# 避免文件锁死与僵尸挂载点
kernel oplocks = no
posix locking = no
EOF
重启相关服务
systemctl restart smbd.service
systemctl restart avahi-daemon.service
接下来就可以在Mac上添加这个Time machine的备份了
Mac 上如果遇到备份失败,可用下面命令查询失败的日志
log show --predicate 'subsystem == "com.apple.TimeMachine"' --info --last 1h