本文將向你展示如何使用 UrBackup 和 Linux Deploy在一臺 Android 舊手機上搭建一臺備份服務(wù)器。舊手機的污染問題眾所周知,我有一臺舊手機,雖然外殼有裂紋和磨損,但性能還很好,因此我打算廢物再利用一下。 你的舊手機很可能:
-
并沒有那么舊(你會像換手機那樣一兩年就換一臺電腦嗎?)
-
有 4-8 個處理器和大約 4GB 的內(nèi)存,以及內(nèi)置 UPS。只需要再加一個外部硬盤驅(qū)動,就可以備份整個家庭的網(wǎng)絡(luò)了!
-
文件系統(tǒng)只能使用 EXT4。這是唯一兼容 UrBackup 和 Android 的文件系統(tǒng)。因此沒有文件系統(tǒng)級別的壓縮等功能。
-
從 chroot 環(huán)境下無法直接調(diào)用 systemd。我們會安裝一個簡單的啟動腳本,啟動 UrBackup 服務(wù),并使用 pkill 停止服務(wù)。此外,我們還會添加一個 cronjob,在系統(tǒng)啟動時啟動服務(wù)。
-
UrBackup 主要以 Windows 為主。雖然它提供 Linux 的完整備份功能,但其 Linux 版本的完整鏡像依然是 beta 版狀態(tài)。此處我們會安裝穩(wěn)定版,所以我們的服務(wù)器無法支持利用 Linux 客戶端進行完整鏡像備份。但是,你可以在客戶端上創(chuàng)建備份鏡像,然后備份含有這些鏡像的目錄。最后,UrBackup 團隊也在開發(fā) Mac 客戶端支持,但同樣是beta 版。對于我來說,我沒有 Windows 服務(wù)器,我也不想備份我的Windows 筆記本電腦,所以我只在 Linux 服務(wù)器上使用 UrBackup。
-
Linux Deploy 提供的發(fā)行版和版本支持很有限。我試驗了 Centos7、Ubuntu 18.04 和 Debian 10,其中只有 Debian 10 能夠毫無錯誤地運行。UrBackup 對 Debian 的支持也為最好(其他發(fā)行版都沒有 ARM64 的 .deb 包)。
-
root 手機。具體做法請參考相關(guān)文檔,不在此贅述。
-
安裝 Linux Deploy 并部署 Debian Buster。
-
安裝 UrBackup 服務(wù)器。
-
連接客戶端。
準(zhǔn)備工作
root Android手機我的手機是 Pixel 4a(8核CPU,6GB內(nèi)存)。手機的特定型號應(yīng)該沒有太大關(guān)系,但不同的型號可能會遇到不同的問題。如果你的手機是在過去五年內(nèi)發(fā)布的,那么規(guī)格上應(yīng)該沒問題。我建議至少 4 核 CPU 和 2GB 的內(nèi)存,這對于大多數(shù)家庭網(wǎng)絡(luò)來說應(yīng)該就夠了,但是你必須想清楚備份要求。此外不要忘記, Android 操作系統(tǒng)本身將占用一些資源。如果你打算通過 Magisk 來 root 手機,則請注意:-
確保你使用的 boot.img 文件與手機當(dāng)前的引導(dǎo)程序版本相符。
-
如果你使用的是 Android 11,而且 Magisk 程序無法正常工作,請降級到 Android 10再試。我在 Pixel 4a 上擺弄了一整天的 Android 11。
-
如果你不想使用 Magisk,請非常謹(jǐn)慎地使用其他工具。有很多其他應(yīng)用程序可能含有惡意軟件。CF-Auto-Root 也是一款很好的 root 工具,但請確認(rèn)下載源的安全。
可選設(shè)備(強烈推薦)
盡管從技術(shù)的角度來看,你可以將備份存儲在 SD 卡上,但不建議這樣做。SD 卡的速度較慢,可靠性較低,并且無法長時間處理持續(xù)寫入。如果你計劃備份到SD 卡,那么估計一年內(nèi)就會損壞(如果數(shù)據(jù)量大,甚至一個月內(nèi)就會出問題)。帶 USB 線的外置 HDD/SSD大小和寫入速度取決于你個人,但我更關(guān)心可靠性,而不是存儲和速度。如果你有大量存儲空間(幾百甚至幾千GB),則速度很重要。在這種情況下,寫入速度很關(guān)鍵,因為你可以及時完成備份。為了可靠性,我們必須考慮品牌。使用廉價的驅(qū)動器,就要做好心理準(zhǔn)備備份過程中會出現(xiàn) I/O 錯誤。USB 擴展塢根據(jù)你的手機,可能需要支持 micro USB 或 USB-C。這個擴展塢應(yīng)該至少有一個 USB 端口,可以連接到外部驅(qū)動器,而且還有一個充電的端口,但我建議選擇一個帶有以太網(wǎng)適配器的擴展塢。你可以通過 WiFi 運行該服務(wù)器,但以太網(wǎng)更快、更可靠。以太網(wǎng)線如果你在以太網(wǎng)上運行服務(wù)器,則需要準(zhǔn)備一個以太網(wǎng)線。第一步:安裝 Linux Deploy 并部署 Debian Buster
1-1. 在 root 完手機后,打開 GitHub,下載 Linux Deploy 和 BusyBox的 .apk 軟件包,安裝這兩個應(yīng)用。 1-2. 安裝完畢后,打開 BusyBox。安裝的過程中,記錄下 BusyBox 的安裝位置。在下圖中,BusyBox 安裝到了"/system/xbin"。稍后我們會用到這個位置。 1-3. 打開 Linux Deploy,點擊右下方的設(shè)置圖標(biāo)。 完成如下設(shè)置: 架構(gòu)所有安卓手機都是 AARCH64/ARM64。確保顯示的是 “arm64”(或者是其他發(fā)行版的 “aarch64”)。安裝路徑默認(rèn)值是 "${EXTERNAL_STORAGE}/linux.img"。這是你的 SD 卡,你可以留著它(可以在樹莓派上工作)。但是,如果沒有插入 SD 卡或未正確格式化,則安裝將失敗。我建議安裝到你的內(nèi)部存儲中。我假設(shè)你不會使用手機干別的事情,因為它需要一直插著電。鏡像大小(MB)我建議至少保留 15 GB,但請確保為 Android 留出足夠的存儲空間。這部分空間會占用內(nèi)部存儲,因此最后剩下的空間可能沒有 50 GB 這么多。初始化系統(tǒng)如果沒有設(shè)置為 “sysv”,則 cronjobs 將不會在啟動時運行。掛載如果你不擔(dān)心將來的存儲擴展,則掛載外部塊設(shè)備時只需將其路徑直接添加到掛載點。如果以后有擴展存儲的打算,則可以考慮邏輯分區(qū)。我們在此加載的設(shè)備,都可以在啟動時直接訪問,但不能用于分區(qū)和格式化。但是,請記住,重新啟動手機時,塊設(shè)備的名稱 (/dev/block/sdX) 可能會變化,因此可能需要在重新啟動時檢查/更新此配置。如果你掛載的是邏輯卷,則名稱不會變化,也不需要檢查。如何找到外部塊設(shè)備的路徑在 Android 上,你可以通過 “/dev/block/sdX”(而不是 “/dev/sdX”)找到塊設(shè)備。為了確定哪個 sdX 設(shè)備是外部塊設(shè)備,你需要在插入該設(shè)備的服務(wù)器上運行“l(fā)sblk”。然后搜索各種設(shè)備,并查看哪一個與你的設(shè)備一致(就存儲容量/現(xiàn)有分區(qū)而言)。如果你在啟動后插入設(shè)備,則可能是最后一個設(shè)備。注意:掛載塊設(shè)備后,你必須先解除掛載或關(guān)閉服務(wù)器,然后才能從物理上斷開塊設(shè)備的連接。如果在未解除掛載的情況下斷開塊設(shè)備的連接,則很可能會丟失所有數(shù)據(jù)。1-4. 回到首頁,并打開左上角的菜單。選擇 “Settings”(設(shè)置),并一直向下滾動到 “PATH variable”(路徑變量)。這就是你安裝 BusyBox 的位置。設(shè)置好 “PATH variable” 后,選擇 “Update ENV”(更新環(huán)境變量)。 1-5. 返回首頁,打開右上角的菜單。點擊 “Install”(安裝)。你將看到安裝的實時日志。完成后,日志將以 “deploy”結(jié)尾。選擇屏幕左下角的 “START”(開始)。Android 手機上就開始運行 Debian 服務(wù)器了!第二步:安裝 UrBackup 服務(wù)器
2-1. SSH 到新部署的服務(wù)器。IP 地址與手機相同,端口為 22,你可以使用步驟 1-3 中設(shè)置的憑據(jù)登錄。本教程后續(xù)內(nèi)容均假設(shè)你以 root 身份登錄。打開 Linux Deploy 就可以看到你的 IP: 2-2. 更新系統(tǒng)。apt update && apt upgrade -y && apt install wget
2-3. 下載 UrBackup 的 .deb 包。wget https://hndl.urbackup.org/Server/2.4.13/urbackup-server_2.4.13_arm64.deb
這是目前最新的穩(wěn)定版本。2-4. 創(chuàng)建備份目錄。在這個例子中,我將備份目錄設(shè)置為 “/mnt/backup”。如果你掛載了存儲,則目錄已經(jīng)創(chuàng)建好了;如果沒有,請創(chuàng)建目錄:
mkdir -p /mnt/backup
更新權(quán)限:chownurbackup/mnt/backup
chgrp urbackup /mnt/backup
允許 UrBackup 寫入此目錄。2-5. 安裝啟動腳本。我們無法在 chroot 環(huán)境中調(diào)用 systemd,因此需要手動啟動該服務(wù):/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime
為了避免每次都輸入該命令,我們可以創(chuàng)建一個腳本:nano /usr/bin/urbackupsrv-star
將其復(fù)制到下面的文件中:#!/bin/sh
/usr/bin/urbackupsrv run --config /etc/default/urbackupsrv --no-consoletime
保存并退出。添加執(zhí)行權(quán)限:chmod 755 /usr/bin/urbackupsrv-start
2-6. 啟動服務(wù)。urbackupsrv-start
該命令將啟動服務(wù)器的日志。你可以按下 CTRL-C 停止服務(wù),因此需要另開一個 SSH 會話。如果想停止此服務(wù),只需要干掉它就可以了:pkill urbackup
2-7. 添加定時作業(yè)。由于我們無法以傳統(tǒng)的方式“啟用” UrBackup 服務(wù),因此需要設(shè)置一個定時作業(yè)來啟動該服務(wù)。此外,如果你斷開外部塊存儲或重新啟動手機,備份目錄的權(quán)限可能會恢復(fù)。為確保在重新啟動時這些設(shè)置能保留下來,我們需要添加定時作業(yè)。打開 crontab:crontab -e
添加作業(yè):@reboot chown urbackup [full/path/to/backup_directory] && chgrp urbackup [full/path/to/backup_directory] && urbackupsrv-start
保存并退出。2-8. 打開 Web 界面。通過 Web 瀏覽器導(dǎo)航到服務(wù)器的端口 55414:http://YOUR_SERVER_IP:55414
第三步:連接客戶端
3-1. 點擊屏幕右下方的 “Add new client”(添加新客戶端): 3-2. 點擊 “Add new Internet client/client behind NAT”,并輸入新客戶端的名稱: 這是新客戶端的主機名。3-3. 安裝客戶端。對于 Windows 客戶端:按照“Download preconfigured client installer for Windows” 的說明安裝客戶端。對于 Linux 客戶端:記下頂部的 “Default authentication key”,回頭有需要。登錄到客戶端,并運行此安裝腳本:(不要運行服務(wù)器提供的腳本)TF=$(mktemp) && wget "https://hndl.urbackup.org/Client/2.4.11/UrBackup%20Client%20Linux%202.4.11.sh" -O $TF && sudo sh $TF; rm -f $TF(檢查最新的客戶端下載。)在安裝過程中,腳本會要求你選擇快照機制。對于“LVM - Logical Volume Manager snapshots”,請輸入“2”: 安裝完成后,請確認(rèn)客戶端的正常運行:service urbackupclientbackend status
如果客戶端沒有運行,請運行下述命令:service urbackupclientbackend start
最后,通過下述命令將客戶端連接到服務(wù)器:urbackupclientctlset-settings
-kinternet_mode_enabled-vtrue
-kinternet_server-v"YOUR_SERVER_IP"
-kinternet_server_port-v"55415"
-kcomputername-v"YOUR_CLIENT_NAME"
-k internet_authkey -v "YOUR_DEFAULT_AUTHENTICATION_KEY"
請確保"YOUR_CLIENT_NAME"與3-2中設(shè)置的主機名相同,"YOUR_DEFAULT_AUTHENTICATION_KEY"是服務(wù)器前面生成的鍵。3-4. 配置服務(wù)器。返回 Web 界面,你會發(fā)現(xiàn)客戶端并不在線,點擊頂部導(dǎo)航欄上的“Settings”(設(shè)置):點擊“Settings”頁面上的“Internet”(互聯(lián)網(wǎng))頁簽,檢查如下設(shè)置:
(如果所有客戶端都是本地的,則可以取消“Do image backups over the internet”以及“Do full file backups over the internet”。)滾動到底部并單擊保存。3-5. 設(shè)置備份目錄。在“Settings”頁面上,點擊“”Client settings(客戶端設(shè)置)。選中“Separate settings for this client”,在“File Backups”下的“Default directories to backup”中設(shè)置你想備份的目錄。如果想添加多個目錄,可以用分號“;”分隔。
你還可以在此設(shè)置備份間隔。點擊底部的保存。對于 Linux 客戶端,你也可以從客戶端的命令行設(shè)置:urbackupclientctl add-backupdir -d FILE_PATH
重啟服務(wù)器:pkillurbackup
urbackupsrv-start
3-6. 重新登錄到 Web 界面。到此為止,客戶端已經(jīng)連接好了。可能“File backup status”(文件備份狀態(tài))會顯示“No paths to backup configured”(沒有設(shè)置備份路徑),但沒關(guān)系,在第一次完成備份之前,都會這顯示。另外請注意,如果你連接的是Linux 客戶端,則不支持鏡像備份。但是,你可以通過 Linux 客戶端運行鏡像備份,并設(shè)置備份鏡像的目錄。接下來,你就可以嘗試一下備份了!
-
智能手機
+關(guān)注
關(guān)注
66文章
18431瀏覽量
179859 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9021瀏覽量
85184
原文標(biāo)題:干貨|舊手機別扔,手把手教你DIY一臺服務(wù)器
文章出處:【微信號:電子工程世界,微信公眾號:電子工程世界】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論