局域网内使用 Samba 搭建 macOS 时间机器的远程备份

发布时间 2023-04-03 00:34:33作者: huoyanCC

局域网内使用 Samba 搭建 macOS 时间机器的远程备份

update: 02/04/2023 23:42


samba是一个历史悠久的开源软件。可用于Linux 和 Unix 标准的文件与 Windows 互相操作。而 macOS 本身就是基于 Unix 衍生而来,因此理论上我们可以通过 samba 服务搭建属于我们自己的文件共享服务。

本文通过在一台 24小时不间断运行的 Ubuntu 服务器上搭建 samba 服务,实现了局域网内的 macOS 时间备份。备份的目标地址是 Ubuntu 上指定的文件夹。

1. 在 Ubuntu 上设置 samba

1.1 Ubuntu 安装 samba 服务和相关插件

  • 注1: 注意本文需要 samba >= 4.8
sudo apt update
sudo apt install samba -y
sudo apt install samba-vfs-modules -y

# 验证安装
whereis samba
# 查看 samba 版本
samba -V
# 查看 samba 服务状态
sudo systemctl status smbd

1.2 创建时间机器的目录

# 将 <your path> 替换成你想存放时间机器的文件夹
sudo mkdir -p <your path>
# 验证是否创建成功
ls <your path>

1.3 修改 samba 的配置

1.3.1 在 [global] 配置下增加如下设置

[global]
    min protocol = SMB2 # 最小支持为 SMB2
    ea support = yes	# Apple 扩展需要支持扩展属性(xattr)

1.3.2 新增 [TimeMachineBackup] 条目

  • 注1: 该条目的名字可以自由定义
  • 注2: 需要将 path = <your path> 替换为你刚刚创建的时间机器的目标目录
[TimeMachineBackup]
    comment = macos time machine backup	# 备注
    path = <your path>	# 你的目标文件夹,使用你刚刚创建的文件夹的绝对目录
    browseable = yes
    read only = no	# 设置非只读
    writable = yes	# 设置可写,与上面作用相同
    public = no		# 设置为非公开
    # create mask = 0700
    guest ok = no	# 取消匿名访问
    # valid users = <your username>	# 这里可以设置指定用户访问
    vfs objects = fruit streams_xattr	# 次序很重要
    fruit:time machine = yes	# 设置为  time machine
    fruit:metadata = stream	# 如何存储 OS X 元数据
    fruit:model = MacSamba	# 访达中的图标
	# 文件清理的一些配置
    fruit:veto_appledouble = no
    fruit:nfs_aces = no
    fruit:posix_rename = yes
    fruit:zero_file_id = yes
    fruit:wipe_intentionally_left_blank_rfork = yes
    fruit:delete_empty_adfiles = yes

1.3 重启 samba 服务

sudo /etc/init.d/samba restart

1.3 添加 samba 用户

  • 注1: 替换 为你 Ubuntu 的用户名
  • 注2: 如果你设置的用户名不是 Ubuntu 上已有的用户,将会创建失败
  • 注3: 这里的密码与你 Ubuntu 用户的密码可以不同
sudo smbpasswd -a <your username>
# 输入你 Ubuntu 存在的用户名,设置一个新的密码

2. macOS 设置时间机器

2.1 macOS Ventura(13) 开启远程时间机器

  1. 在要用作“时间机器”备份目的位置的 Mac 中,选取苹果菜单 苹果 >“系统设置”。
  2. 点按边栏中的“通用”,然后点按右侧的“共享”。
  3. 打开“文件共享”。系统可能会要求你输入管理员密码。
  4. 点按“文件共享”旁边的信息按钮 。
  5. 点按“共享文件夹”列表下的添加按钮 (+),然后选取一个用于“时间机器”备份的文件夹。
  6. 按住 Control 键点按你添加的文件夹,然后从显示的快捷菜单中选取“高级选项”。

macOS

  1. 选择“共享为时间机器备份目的位置”,然后点按“好”。
    在其他 Mac 电脑上设置“时间机器”时,你现在应该能够选择这个共享文件夹作为备份磁盘。

2.2 更早版本的 macOS 开启远程时间机器

  1. 在要用作“时间机器”备份目的位置的 Mac 中,选取苹果菜单 苹果 >“系统偏好设置”。
  2. 点按“共享”。
  3. 从左侧的服务列表中,选择“文件共享”。
  4. 点按右侧“共享文件夹”列表下的添加按钮 (+),然后选取一个用于“时间机器”备份的文件夹。
  5. 按住 Control 键点按你添加的文件夹,然后从显示的快捷菜单中选取“高级选项”。

  1. 选择“共享为时间机器备份目的位置”,然后点按“好”。
    在其他 Mac 电脑上设置“时间机器”时,你现在应该能够选择这个共享文件夹作为备份磁盘。

2.3 设置时间机器的备份硬盘

2.3.1 首先确保你的 MacBook 和 Ubuntu 位于同一局域网中

2.3.2 打开 系统 > 时间机器,选择你 Ubuntu 上硬盘

截屏2023-04-03 00.23.58.png

2.3.3 输入你刚刚设置的 samba 服务的账户名和密码)


Reference

  1. Samba 官网
  2. Samba 推荐的支持 macOS 的设置
  3. (macOS 开启 SMB 远程时间机器)[https://support.apple.com/zh-cn/HT202784]
  4. 一位仁兄的博客,但是我找不到地址了,以后找到了补上