MacOS Time Machine via AFP

簡單介紹如何透過 Apple Filing Protocol (AFP) 協定達成網路 Time Machine 設定!

環境/設備

MacBook Pro 2017, Catalina 10.15.6
Raspberry Pi 4 Modle B, Ubuntu 20.04
USB 3.0, 1TB, External Storage

步驟

重新分割 & 格式化硬碟

用 ls -l /dev/disk/by-id` 列出所有 Ubuntu 上已經連接的硬碟和對應的裝置名稱 (sda, sdb…)

ubuntu@ubuntu:~$ ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root  9 Apr  1 17:23 usb-WD_My_Passport_259B_575837314138364B35593533-0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr  1 17:23 usb-WD_My_Passport_259B_575837314138364B35593533-0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr  1 17:23 usb-WD_My_Passport_259B_575837314138364B35593533-0:0-part2 -> ../../sda2

用 fdisk 指令重新分割的硬碟,先用 d 刪除所有分割區 (partition) 再用 n 建立新的主要分割區 (primary partition) 。新增好之後再按 w 寫入分割區設定。

ubuntu@ubuntu:~$ sudo fdisk /dev/sda

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): 

寫入之後用 mkfs 指令將分割區格式化成 EXT4 或其他格式 (以 sda1 分割區舉例)

ubuntu@ubuntu:~$ sudo mkfs -t ext4 /dev/sda1

自動掛載 (auto-mount)

先建立要掛載的路徑,接著取得分割區的 UUID 然後進到 /etc/fstab 寫入設定:(註:UUID號碼以 <UUID - NUMBER> 表示)

ubuntu@ubuntu:~$ sudo mkdir /timemachine
ubuntu@ubuntu:~$ ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Jul 25 13:27 <UUID - NUMBER> -> ../../sda1
ubuntu@ubuntu:~$ sudo vim /etc/fstab

/etc/fstab 文件最下方新增一行:

UUID=<UUID - NUMBER>    /timemachine    ext4    defaults    0    0

儲存設定之後套用設定:

ubuntu@ubuntu:~$ sudo mount -a

安裝 afp 套件

安裝 afp 套件然後進入設定檔:

ubuntu@ubuntu:~$ sudo apt install netatalk avahi-daemon -y
ubuntu@ubuntu:~$ sudo vim /etc/netatalk/afp.conf

設定檔新增要分享的路徑設定,例如:

[Time Machine]
path = /timemachine
time machine = yes

儲存之後設定資料夾權限,這裡我讓使用者 ubuntu 可以讀取 /timemachine 下的所有資料,之後重啟 netatalk 套件:

ubuntu@ubuntu:~$ sudo chown ubuntu:ubuntu -R /timemachine
ubuntu@ubuntu:~$ sudo chmod 755 -R /timemachine
ubuntu@ubuntu:~$ sudo service netatalk restart

Mac 端登入設定

連線到 ubuntu 的 IP 之後再到 Time Machine 找到網路硬碟,設定完成!

參考資料

NETATALK Manual Pages: http://netatalk.sourceforge.net/3.1/htmldocs/afp.conf.5.html
Ubuntu 19.10 (and 20.04): Setting Up Time Machine: https://www.grizzly-hills.com/2019/11/02/ubuntu-19-10-setting-up-time-machine/
AFP vs NFS vs SMB Performance on macOS Mojave: https://photographylife.com/afp-vs-nfs-vs-smb-performance