创建Linux用户
# 创建用户组
groupadd <userGropName> -g 6000
# 创建用户并禁止使用shell
useradd <userName> -u 6000 -g 6000 -s /sbin/nologin -d /dev/null
# 创建备份目录
mkdir /home/<pathName>
# 设置权限
chown -R <userName>:<userGropName> /home/<pathName>
# 禁止其他人访问
chmod u+rwx,g+rwx,o-rwx /home/<pathName>
安装并配置netatalk
安装
apt-get install netatalk
修改配置
vim /etc/netatalk/AppleVolumes.default
在末尾加上这么一句:
/home/<pathName> "TMback" options:tm
重启Netatalk服务
sudo service netatalk restart
生成sparsebundle
连接AFP
获取mac地址
ifconfig en0 | grep ether | awk '{print $2}' | sed 's/://g'
获取本地主机名
打开「系统偏好设置-共享」,点击「编辑」按钮,然后复制你的本地主机名(不需要 .local 字符)。
在终端 app 中输入命令
sudo hdiutil create -size <size>g -type SPARSEBUNDLE -nospotlight -volname "Backup of <computer_name>" -fs "Case-sensitive Journaled HFS+" -verbose ~/Desktop/<computer_name>_<mac address>.sparsebundle
其中
替换为第三步中获得的本地主机名,
替换为第四步中获得的 MAC 地址,
设置为备份磁盘的大小
敲击回车键,输入密码,稍等一下,你的桌面上就会生成一个正确的 sparsebundle 文件。
# 连接AFP并上传`sparsebundle`文件
打开访达 app,使用快捷键 ⌘Command+K 来连接到服务器,填入 NAS 对应的 SMB 地址,
并输入 Time Machine 专属账户的用户名和密码。等待成功挂载 Time Machine 共享文件夹后,
将桌面上的 sparsebundle 文件复制到这个文件夹中。
在这一步中,千万要记住要通过访达 app 来上传文件,而不能在 NAS 后台上传。
# 安装并配置`avahi-daemon`
`apt-get install avahi-daemon`
`vim /etc/avahi/services/afpd.service`
写入以下内容
``` xml
%h
_afpovertcp._tcp
548
_device-info._tcp
0
model=Xserve
```
重启avahi-daemon服务
`service avahi-daemon restart`
# 开始备份
`sparsebundle`文件上传完毕后,重新打开「系统偏好设置-时间机器」来进行接下去正常的流程操作。
如果你不想等待 Time Machine 自动开始备份,那么你可以直接关掉系统偏好设置的窗口,或者在 Menubar 的时间机器菜单中选择「立即备份」。稍等片刻,你就能看到时间机器开始正常备份了。
## 参考文档
[一日一技 | 如何解决时间机器在 NAS 上创建备份失败的问题?](https://sspai.com/post/58100)
[未能创建备份磁盘映像 sparsebundle 错误45](http://pythonic.zoomquiet.top/data/20130302114227/index.html)
[通过afp从Mac连接到ubuntu共享文件](https://sparkydogx.github.io/2018/06/21/connect-ubuntu-server-via-afp/)
[低成本搭建Time Machine 服务器](https://zhuanlan.zhihu.com/p/31088141)
[低增加samba用户提示Failed to add entry for user](https://blog.csdn.net/minenamewj/article/details/17356703)