終於換了一個相對穩定的工作環境,現在,我的桌面是這樣的:
好了,總之,用移動硬盤定期備份不是長久之計,所以,身為窮逼,我們要給自己尋找一個合適、方便的備份方案了。
俗話說的好:
那麼,我們就來說說我的設計方案。
設計
首先,作為一個窮逼,設計備份方案的第一要素是經濟……?♂️知乎裡流行的什麼 J1900 之流太貴了,思前想後還是pass掉了,畢竟,我只做備份,不做那麼多共享——用不到。
J1900 成品工控 淘寶基本價格在 999左右,我自備了1T的移動硬盤,這個價格有點難以接受。
最後,我找到了一個不在中國上市的產品:BeeLink 的 z83 II !當然,從淘寶購買還會更便宜一些,很實惠。
簡單說下配置:
- 一個網口——千兆;
- 5G無線2.4G都支持;
- 一個 usb 3 兩個 usb 2;
- hdmi 和 sd卡;
- 雙核4線程 1.9GHz。
嗯,撿到寶了。
——別忘了,這是成品機器不是主板!
架構
好了,接下來就是軟件了,本來我想用 freenas 的,不過真機到手後確實無法引導,會鎖原理確定 ,似乎是 freebsd 的什麼坑,總之,使用Ubuntu的 16.04 完美啟動。
所以,用的也就是常見的 ubuntu 系列架構了:
- 使用 Netatalk 作為 tm 服務器;
- 使用 Avahi 廣播。
動手做
首先,把盒子刷成 Ubuntu 這個就不說了,更新後我們安裝 Netatalk 和 Avahi:
1 2 |
apt install netatalk apt install avahi-daemon |
創建文件 /等等/的avahi/服務/鈀.服務 來配置 avahi,寫入如下內容:
1 2 3 4 5 6 7 8 9 10 11 12 |
<service-group> <name replace-wildcards="yes">%h</name> <service> <type>_afpovertcp._tcp</type> <port>548</port> </service> <service> <type>_device-info._tcp</type> <port>0</port> <txt-record>model=Xserve</txt-record> </service> </service-group> |
接下來就是掛載硬盤了,這裡我用的是移動硬盤,為了方便日後一些活動,另外我硬盤中也放了許多文件也不方便備份重新格式化,所以我準備直接用 HFS+
掛載 HFS+
首先,你要在系統中安裝插件 易於 安裝 hfsprogs ,然後使用命令來看系統是否支持 modprobe的 hfsplus ,一般來說,這個命令不會有任何反應的,如果你這樣,那就悲劇了,比如我:
1 |
modprobe: FATAL: Module hfsplus not found in directory /lib/modules/xxxx |
這是說你的內核是精簡編譯的,你需要打官方補丁。使用命令:
1 |
sudo apt-get install linux-image-extra-$(uname -r) |
如果你的結果是找不到,那說明你用的是定製過的內核,那就需要你自己來找了,使用命令來搜索可用的包: 易於 搜索 Linux的-圖片-額外-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
Sorting... Done Full Text Search... Done linux-image-extra-4.4.0-1003-gke/xenial-updates 4.4.0-1003.3 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-1005-gke/xenial-updates,xenial-security 4.4.0-1005.6 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-1006-gke/xenial-updates,xenial-security 4.4.0-1006.6 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-21-generic/xenial 4.4.0-21.37 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-22-generic/xenial-updates,xenial-security 4.4.0-22.40 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-24-generic/xenial-updates,xenial-security 4.4.0-24.43 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-28-generic/xenial-updates,xenial-security 4.4.0-28.47 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-31-generic/xenial-updates,xenial-security 4.4.0-31.50 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-34-generic/xenial-updates,xenial-security 4.4.0-34.53 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-36-generic/xenial-updates,xenial-security 4.4.0-36.55 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-38-generic/xenial-updates,xenial-security 4.4.0-38.57 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-42-generic/xenial-updates,xenial-security 4.4.0-42.62 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-43-generic/xenial-updates 4.4.0-43.63 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-45-generic/xenial-updates,xenial-security 4.4.0-45.66 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-47-generic/xenial-updates,xenial-security 4.4.0-47.68 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-51-generic/xenial-updates,xenial-security 4.4.0-51.72 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-53-generic/xenial-updates,xenial-security 4.4.0-53.74 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-57-generic/xenial-updates,xenial-security 4.4.0-57.78 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-59-generic/xenial-updates,xenial-security 4.4.0-59.80 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-62-generic/xenial-updates,xenial-security 4.4.0-62.83 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-63-generic/xenial-updates,xenial-security 4.4.0-63.84 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-64-generic/xenial-updates,xenial-security 4.4.0-64.85 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-66-generic/xenial-updates,xenial-security 4.4.0-66.87 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.4.0-67-generic/xenial-updates,xenial-security 4.4.0-67.88 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP linux-image-extra-4.8.0-28-generic/xenial-security 4.8.0-28.30~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-30-generic/xenial-security 4.8.0-30.32~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-32-generic/xenial-security 4.8.0-32.34~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-34-generic/xenial-updates,xenial-security 4.8.0-34.36~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-36-generic/xenial-updates,xenial-security 4.8.0-36.36~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-39-generic/xenial-updates,xenial-security 4.8.0-39.42~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-41-generic/xenial-updates,xenial-security 4.8.0-41.44~16.04.1 amd64 Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-4.8.0-42-generic/xenial-updates,now 4.8.0-42.45~16.04.1 amd64 [installed] Linux kernel extra modules for version 4.8.0 on 64 bit x86 SMP linux-image-extra-virtual/xenial-updates,xenial-security 4.4.0.66.70 amd64 Transitional package. linux-image-extra-virtual-hwe-16.04/xenial-updates,xenial-security 4.8.0.41.12 amd64 Extra drivers for Virtual Linux kernel image linux-image-extra-virtual-hwe-16.04-edge/xenial-updates,xenial-security 4.8.0.34.6 amd64 Extra drivers for Virtual Linux kernel image linux-image-extra-virtual-lts-utopic/xenial-updates,xenial-security 4.4.0.66.70 amd64 Transitional package. (dummy transitional package) linux-image-extra-virtual-lts-vivid/xenial-updates,xenial-security 4.4.0.66.70 amd64 Transitional package. (dummy transitional package) linux-image-extra-virtual-lts-wily/xenial-updates,xenial-security 4.4.0.66.70 amd64 Transitional package. (dummy transitional package) linux-image-extra-virtual-lts-xenial/xenial-updates,xenial-security 4.4.0.66.70 amd64 Transitional package. (dummy transitional package) |
結果有很多,我是 16.04 TLS,所以結果都是 偉大 ,我自己隨手選了一個 Linux的-圖片-額外-4.8.0-42-通用 ,安裝完成之後重新啟動下(可能不重啟也行吧)這下再執行 modprobe的 hfsplus 應該就可以了。
使用 須藤 FDISK -升 來查看你的硬盤位置,比如我的是這樣的:
1 2 3 4 |
Device Start End Sectors Size Type /dev/sda1 40 409639 409600 200M EFI System /dev/sda2 409640 1953262983 1952853344 931.2G Apple HFS/HFS+ /dev/sda3 1953262984 1953525127 262144 128M Apple boot |
這裡找到那個最大的分區就對了!
使用命令掛載:
1 2 |
sudo fsck.hfsplus -f /dev/sda2 //强行修复一波,避免错误 sudo mount -t hfsplus -o force,rw /dev/sda2 /media/yourDir |
記得把 sda2 改成你自己的位置,掛載點的目錄要事先存在才行,不存在你要先創建。裡邊的第一條命令是用來修復 HFS+ 分區的,這個在 mac 裡很常見,以後一旦出現什麼奇奇怪怪的問題,都可以用它來修復。
權限問題
掛載成功後你的非 root 用戶可能是無法寫入的,這是由於磁盤內容自有用戶造成的,最簡單的辦法可能就是欺騙文件讓它以為你還是原來的用戶。mac 中默認用戶 UID 是 501,那麼我們就把跑 netatalk 的用戶id改為 501:
1 2 3 |
sudo groupadd admin //创建管理组 sudo useradd -d /home/tempuser -m -s /bin/bash -G admin tempuser //创建一个临时用户 sudo passwd tempuser //给用户一个密码,别忘记了 |
做完之後退出當前用戶,然後用這個臨時用戶進去,如果你用的是 ssh,那麼就退出來,用 SSH tempuss@XXX.XXX.XXX.XXX 重新登錄。登錄之後繼續:
1 |
sudo usermod --uid 501 yourusername //改你刚才用户的uid |
這時候你可能會收到提示說還有進程在佔用,不能改。這很好辦,根據提示的pid,幹掉那個進程即可: 須藤 殺 <PID> 然後重複執行上面的命令,沒關係,有多少個佔用就乾多少個……
1 2 |
sudo chown -R 501:yourusername /home/yourusername //上边这行两处都要改成你自己的用户名,这个是改目录所有权的 |
接下來,你就可以退出然後用你原來的用戶登錄了,這時候再去掛載的目錄看看,已經可寫。別忘了刪除那個臨時用戶: 須藤 則userdel - - [R tempuss
配置Netatalk
終於,可以配置 netatalk 了,在移動硬盤上創建兩個目錄,一個用於存放文件,另一個用於備份。然後編輯 /等等/netatalk/蘋果卷.默認 ,在文件最末尾寫:
1 2 3 4 5 6 |
# The line below sets some DEFAULT, starting with Netatalk 2.1. :DEFAULT: options:upriv,usedots /media/DataCenter/TimeMachine "TimeMachine" options:tm /media/DataCenter/NAS "NAS" # By default all users have access to their home directories. #~/ "Home Directory" |
重點就是第三行末尾的 選項:TM 標記這一句讓對應的目錄對 TimeMachine 可見。
最後,我們重啟對應的服務:
1 2 |
sudo service netatalk restart sudo service avahi-daemon restart |
Mac 端設置
搞好了服務器,我們的電腦也要進行一些配置:
在終端中執行這條命令讓tm發現網絡備份位置:
1 |
defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 |
這下你就應該已經能夠在 tm 配置中發現你的網絡位置了!
選擇它,輸入密碼連接後,備份開始。
更新
給服務器添加 windows 共享
win 使用的共享協議叫做 samba,協議的名字叫 smb,mac其實能夠支持smb,這樣的話我們就可以讓 tm 走 afp,另外來一個目錄專門跑 smb,用來 mac 和 win 共享文件了。 使用如下命令來安裝 samba:
1 |
sudo apt-get install samba |
編輯配置文件: VIM /等等/桑巴/SMB.CONF ,在末尾追加如下內容:
1 2 3 4 5 6 7 8 9 10 |
[share] path = /home/share browseable = yes writable = yes comment = smb share test public = no //避免匿名登录 |
然後為 samba 創建一個用戶,這個用戶必須是已經存在的用戶:
1 |
sudo smbpasswd -a smbuser |
創建的密碼就是你要登錄 samba 的密碼,別記錯了。最後重啟服務:
1 |
sudo service smbd restart |
這樣mac 和 win 就都能訪問同一個目錄了。
結論
整個過程其實挺繁瑣,主要是踩了一大堆可能別人一輩子也遇不到的坑……
機器性能很好,網絡我的局域網是千兆交換所以速度峰值在 60M/s 上,當然不那麼穩定,我沒有用過正牌的大膠囊所以也不知道是不少都這樣,但至少能用了。
至於溫度,z83 摸起來還是一如既往的微微溫熱,cpu消耗也不大:
整體價格 600 元人民幣,移動硬盤盒以及硬盤我自備了。
後續我想的就是把這個機器的 wifi 模塊驅動起來(是的默認沒有wifi的驅動,因為我自己不用所以就沒提起……)然後做個 5 G的ap也不錯的說……
然後就是跑個 smb 給室友,這樣發送文件什麼的就會很方便……
如果我做了,會立即更新在這裡。
暫時就這麼多了吧——大家早安。
本文由 落格博客 原創撰寫:落格博客 » 方便快捷 自用 搭建 TimeMachine 方案
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/2653.html
用移動硬盤定期備份不是長久之計,那把移動硬盤長期插到電腦上不就好了嘛?
是可以的,但麻煩的地方是mac會在空閒時期休眠磁盤,當下一次備份開始的時候再讀,這樣啟動的時候會有一個等待的時間,最痛苦的地方在於——————會整體卡頓一秒! ! ! !
那個,直接把硬盘插到 Mac 上不就好了??
是可以的,但麻煩的地方是mac會在空閒時期休眠磁盤,當下一次備份開始的時候再讀,這樣啟動的時候會有一個等待的時間,最痛苦的地方在於——————會整體卡頓一秒! ! ! !