相信 MacOS 的使用者應該都熟悉官方提供的備份軟體「TimeMachine」,不過如果是 Macbook 等筆電就比較麻煩了,三不五時就要接上隨身硬碟來備份對於我這種懶人來說,定時備份根本是不可能的任務。
不過備份依然是相當重要的,除了升級系統有機會用到,再來就是現在的 Macbook 硬體如此不可靠你敢不備份嗎(笑)。為了解決懶的問題,我想用無線的方式進行備份。停產的 Airport ,或是群輝(Synology)的 NAS 都有提供 TimeMachine 無線備份的功能,然而這兩者的價格都還是偏高的QwQ
所以在一輪 Google 後,我的解決方法就是利用此篇的主角:樹莓派(Raspberry Pi)來完成這項任務,在 Pi 4 推出後,硬體規格升級到了USB3.0、Gigabit Ethrnet,做個人用的簡易 NAS 已經算是堪用,更不用說對速度要求不高的 TimeMachine 了!
準備工作
首先安裝好最新的 Raspbian Lite 版本,開機後先進行基本設定( 可以單純ssh操作省去外接的麻煩,關於headless可以參考我之前的文章:Raspberry Zero W Headless 自動連上無線網路與開啟SSH )
sudo raspi-config
把預設密碼之類改一改,還有地區之類等基本設定。
設定完後先更新一下套件。
sudo apt-get update && sudo apt-get upgrade
接著重啟樹莓派。
sudo reboot
分割磁碟(可選)
如果整顆硬碟都是要拿來做 TimeCapsule 的話此步驟可以跳過,直接續讀安裝過程。
首先列出硬碟情況:
lsblk
找到硬碟代號,例如這邊sda是我的外接硬碟,裡面有之前的分區。
首先用 fdisk
重新分割這顆硬碟:
sudo fdisk /dev/sda
進入 fdisk
可以按 m
顯示使用說明,這邊簡述我的硬碟分割過程:
輸入兩次
d
刪除兩個原先的分區n
新增分區,分區代號以及起始區塊預設,結束區塊+450G
(這樣會建立一個代號1,450G大小的分區)再次用
n
新增第二分區,一路Enter
完成剩下硬碟空間的分區w
寫入硬碟分區資料並退出fdisk
接著再次查看分割結果是否正確
lsblk
圖中可以看到硬碟已經成功分割成希望的數量以及大小
(注意:fdisk
僅支援分割2TB內的硬碟,若要分割更大的需要安裝 gparted
在桌面環境下操作)
安裝過程
準備硬碟
首先格式化硬碟(sda1
是我要格式化的分區,請依照lsblk
顯示的自行更換)
sudo mkfs.ext4 /dev/sda1
這邊建議以 ext4
格式化達到最佳效能,雖然有工具可以讓 Linux 讀取 hfsplus
等蘋果檔案格式,但是我測試之後速度慢到想哭(/‵Д′)/~ ╧╧(這邊不太確定是不是我不會設定問題,若有錯誤歡迎指正
而且 hfsplus
也無法把硬碟拆下來接上 MacOS 就直接兩邊互通,索性直接用 ext4
,以後連復原都透過網路了。
建立掛載點
sudo mkdir /mnt/TimeCapsule
查看分區的 UUID
並把它複製下來
sudo blkid
編輯 fstab
添加掛載資訊
sudo vim /etc/fstab
在最底行填上(”YOUR_UUID”替換成剛才複製的UUID)
UUID=YOUR_UUID /mnt/TimeCapsule ext4 defaults 0 2
掛載硬碟(分區)
sudo mount -a
查看掛載狀態
df -h
可以看到 sda1
已成功掛載到 /mnt/TimeCapsule
了
最後開啟硬碟權限
chmod 777 /mnt/TimeCapsule
安裝及設定 Netatalk
安裝 Netatalk
sudo apt-get install netatalk
安裝完成後用 netatalk -v
查看版本以及設定檔位置
接著編輯 nsswitch.conf
sudo vim /etc/nsswitch.conf
在 host
那行的最後加上 mdns4 mdns
如下
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 mdns
設定 afp.conf
sudo vim /etc/netatalk/afp.conf
內容如下
1 | [Global] |
保存後退出,最後啟動服務:
sudo service avahi-daemon start
sudo service netatalk start
這時應該能在 MacOS 看到你的網路硬碟了!
為了確定開機時會自動啟動服務,輸入以下指令:
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk
MacOS 端設定
接著打開 TimeMachine 設定,按選擇備份碟之後就能夠看到我們用 Raspberry Pi 的備份硬碟囉!選擇它之後輸入 Pi 的帳號密碼即可開始備份(第一次備份時間通常較長,如果開啟加密會更久),完成首次備份後接著以後就是差異備份,只要連上就會自動定期執行,在也不用怕麻煩或忘記備份了!
進階設定
Raspberry Pi 端
用戶管理
新增用戶(username改成自己需要的使用者名稱)
useradd --create-home --groups users --user-group username
建立密碼
passwd username
編輯 afp.conf
sudo vim /etc/netatalk/afp.conf
在 [Time Machine]
(顯示名稱依照之前設定的可能會有不同)新增使用者
1 | [Time Machine] |
靜態 IP
固定 Pi 的 IP,這部分可以前往路由器設定,由於每家路由器不一定相同,所以另外依照各廠商提供的說明設定。
Mac 端
首次備份時若覺得備份速度太慢可以執行以下 Script 關閉限流:
sudo sysctl debug.lowpri_throttle_enabled=0
恢復方式:
sudo sysctl debug.lowpri_throttle_enabled=1
參考
How to Use Your Raspberry Pi as a Time Machine Backup Server for macOS
How to speed up your Time Machine backups
AFP Netatalk share configuration (aka Apple Time Machine).
Raspberry Pi Time Machine (2019 update)
How to use a Raspberry Pi for your Time Machine backups
Apple Time machine on RaspberryPI
How to use a Raspberry Pi for your Time Machine backups
利用 Raspberry Pi(树莓派)打造 Time Capsule(时间胶囊)
PS 因為各種文章新舊版本問題,所以參考了不少資料才整理出一個目前可以使用,快速的設定過程。
評論