前文 树莓派设置samba文件共享 介绍了树莓派设置samba搭建共享网盘的详细步骤。然而samba要与macos良好的协作,例如作为time machine(时光机器)的备份目的地,需要额外的设置。

首先,/etc/samba/smb.conf文件的[global]段应增加如下设置以禁用samba1协议和支持os x系统的拓展属性:

min protocol = SMB2
ea support = yes

其次,作为备份的共享文件夹设置应设置支持time machine。一个作为备份文件夹的配置示例:

[tmbackup]
    comment = macos time machine backup
    path = 你的备份路径
    browseable = yes
    public = no
    writable = yes
    create mask = 0700
    valid users = 授权用户名
    # 加载模块以支持AAPL拓展,注意顺序很重要!
    vfs objects = catia fruit streams_xattr
    # 支持aapl
    fruit:aapl = yes
    # 存储os x的元数据
    fruit:metadata = stream
    # 设置服务器在finder中的图标
    fruit:model = MacPro
    # 支持time machine,非常重要!
    fruit:time machine = yes
    # 文件清理的一些配置
    fruit:posix_rename = yes
    fruit:veto_appledouble = no
    fruit:wipe_intentionally_left_blank_rfork = yes
    fruit:delete_empty_adfiles = yes

配置好后重启samba服务让设置生效:sudo systemctl restart smbd

time machine只能选择系统自动发现的硬盘(airport utility能找到的),故而树莓派需要自动广播让os x找到有支持time machine的备份硬盘(文件夹)存在。幸运的是,raspbian系统上默认安装和启用了Avahi服务,Avahi服务会自动提供服务广播。如果你的系统未安装Avahi,使用该命令可安装并启用服务:sudo apt install -y avahi && sudo systemctl enable avahi-daemon && sudo systemctl start avahi-daemon

接下来配置time machine。打开系统设置,找到time machine(时光机器),解锁后点击“选择磁盘”,如果配置无误且在同一个局域网的话,会看到共享的samba硬盘:

time machine使用samba共享文件夹

选择磁盘,在弹框中输入samba的用户名和密码,完成设置。

今后,只要连到了树莓派的局域网,time machine将自动备份电脑,再也无需担心电脑出现的意外。

注意:如果samba不设置支持time machine,即使使用命令行的tmutil setdestination命令也无法设置为time machine的备份硬盘,会提示:”Incompatible file system type: smbfs (error 45) The backup destination could not be set”。

参考

  1. https://blog.dazzyd.org/providing-time-machine-on-linux/
  2. https://wiki.samba.org/index.php/Configure_Samba_to_Work_Better_with_Mac_OS_X