選單

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

原作者:Hannah Lee  譯者:彎月

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

本文將向你展示如何使用 UrBackup 和 Linux Deploy在一臺 Android 舊手機上搭建一臺備份伺服器。舊手機的汙染問題眾所周知,我有一臺舊手機,雖然外殼有裂紋和磨損,但效能還很好,因此我打算廢物再利用一下。

你的舊手機很可能:

並沒有那麼舊(你會像換手機那樣一兩年就換一臺電腦嗎?)

有 4-8 個處理器和大約 4GB 的記憶體,以及內建 UPS。只需要再加一個外部硬碟驅動,就可以備份整個家庭的網路了!

警告:這只是一個嘗試可能性的專案。由於我們使用的是 Android,因此必須克服一些困難,而且很多方面都會受到限制。這可能並不是最簡單的備份家庭網路的方法,也不是使用 UrBackup 的最佳用途。但在設定完成,伺服器可以正常執行後,你就可以輕鬆地管理多臺機器的備份並新增儲存。

下面是一些限制:

檔案系統只能使用 EXT4。這是唯一相容 UrBackup 和 Android 的檔案系統。因此沒有檔案系統級別的壓縮等功能。

從 chroot 環境下無法直接呼叫 systemd。我們會安裝一個簡單的啟動指令碼,啟動 UrBackup 服務,並使用 pkill 停止服務。此外,我們還會新增一個 cronjob,在系統啟動時啟動服務。

UrBackup 主要以 Windows 為主。雖然它提供 Linux 的完整備份功能,但其 Linux 版本的完整映象依然是 beta 版狀態。此處我們會安裝穩定版,所以我們的伺服器無法支援利用 Linux 客戶端進行完整映象備份。但是,你可以在客戶端上建立備份映象,然後備份含有這些映象的目錄。最後,UrBackup 團隊也在開發 Mac 客戶端支援,但同樣是beta 版。對於我來說,我沒有 Windows 伺服器,我也不想備份我的Windows 膝上型電腦,所以我只在 Linux 伺服器上使用 UrBackup。

Linux Deploy 提供的發行版和版本支援很有限。我試驗了 Centos7、Ubuntu 18。04 和 Debian 10,其中只有 Debian 10 能夠毫無錯誤地執行。UrBackup 對 Debian 的支援也為最好(其他發行版都沒有 ARM64 的 。deb 包)。

如果你打算與我一起嘗試一下,則請看下面的行動計劃:

root 手機。具體做法請參考相關文件,不在此贅述。

安裝 Linux Deploy 並部署 Debian Buster。

安裝 UrBackup 伺服器。

連線客戶端。

請記住,本教程採用了非常特殊的配置,,其中大部分是為了適應在 chroot 環境中,在 Android 上使用 Debian。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

準備工作

root Android手機

我的手機是 Pixel 4a(8核CPU,6GB記憶體)。手機的特定型號應該沒有太大關係,但不同的型號可能會遇到不同的問題。如果你的手機是在過去五年內釋出的,那麼規格上應該沒問題。我建議至少 4 核 CPU 和 2GB 的記憶體,這對於大多數家庭網路來說應該就夠了,但是你必須想清楚備份要求。此外不要忘記, Android 作業系統本身將佔用一些資源。

如果你打算透過 Magisk 來 root 手機,則請注意:

確保你使用的 boot。img 檔案與手機當前的載入程式版本相符。

如果你使用的是 Android 11,而且 Magisk 程式無法正常工作,請降級到 Android 10再試。我在 Pixel 4a 上擺弄了一整天的 Android 11。

如果你不想使用 Magisk,請非常謹慎地使用其他工具。有很多其他應用程式可能含有惡意軟體。CF-Auto-Root 也是一款很好的 root 工具,但請確認下載源的安全。

Linux Deploy 應用

該應用可以在 Debian 伺服器上執行 chroot 環境。

你可以從 GitHub 下載最新版本。應用商店中的版本已經沒人維護了。

BusyBox 應用

該應用可以為 Linux Deploy 提供 Unix 工具程式。可用的“Busy Box”應用有好幾個,但只有這個版本與 Linux Deploy 相容。

你可以從 GitHub 下載最新版本。應用商店中的版本已經沒人維護了。

充電線

手機的充電線。

從另一臺機器上透過 SSH 連線到伺服器

儘管理論上可以在手機上安裝 Termux 或 SSH 應用進行操作,但透過鍵盤進行操作肯定更容易。

可選裝置(強烈推薦)

儘管從技術的角度來看,你可以將備份儲存在 SD 卡上,但不建議這樣做。SD 卡的速度較慢,可靠性較低,並且無法長時間處理持續寫入。如果你計劃備份到SD 卡,那麼估計一年內就會損壞(如果資料量大,甚至一個月內就會出問題)。

帶 USB 線的外接 HDD/SSD

大小和寫入速度取決於你個人,但我更關心可靠性,而不是儲存和速度。如果你有大量儲存空間(幾百甚至幾千GB),則速度很重要。在這種情況下,寫入速度很關鍵,因為你可以及時完成備份。為了可靠性,我們必須考慮品牌。使用廉價的驅動器,就要做好心理準備備份過程中會出現 I/O 錯誤。

USB 擴充套件塢

根據你的手機,可能需要支援 micro USB 或 USB-C。這個擴充套件塢應該至少有一個 USB 埠,可以連線到外部驅動器,而且還有一個充電的埠,但我建議選擇一個帶有乙太網介面卡的擴充套件塢。你可以透過 WiFi 執行該伺服器,但乙太網更快、更可靠。

乙太網線

如果你在乙太網上執行伺服器,則需要準備一個乙太網線。

第一步:安裝 Linux Deploy 並部署 Debian Buster

1-1。 在 root 完手機後,開啟 GitHub,下載 Linux Deploy 和 BusyBox的 。apk 軟體包,安裝這兩個應用。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

1-2。 安裝完畢後,開啟 BusyBox。安裝的過程中,記錄下 BusyBox 的安裝位置。在下圖中,BusyBox 安裝到了“/system/xbin”。稍後我們會用到這個位置。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

1-3。 開啟 Linux Deploy,點選右下方的設定圖示。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

完成如下設定:

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

架構

所有安卓手機都是 AARCH64/ARM64。確保顯示的是 “arm64”(或者是其他發行版的 “aarch64”)。

安裝路徑

預設值是 “$/linux。img”。這是你的 SD 卡,你可以留著它(可以在樹莓派上工作)。但是,如果沒有插入 SD 卡或未正確格式化,則安裝將失敗。我建議安裝到你的內部儲存中。我假設你不會使用手機幹別的事情,因為它需要一直插著電。

映象大小(MB)

我建議至少保留 15 GB,但請確保為 Android 留出足夠的儲存空間。這部分空間會佔用內部儲存,因此最後剩下的空間可能沒有 50 GB 這麼多。

初始化系統

如果沒有設定為 “sysv”,則 cronjobs 將不會在啟動時執行。

掛載

如果你不擔心將來的儲存擴充套件,則掛載外部塊裝置時只需將其路徑直接新增到掛載點。如果以後有擴充套件儲存的打算,則可以考慮邏輯分割槽。我們在此載入的裝置,都可以在啟動時直接訪問,但不能用於分割槽和格式化。但是,請記住,重新啟動手機時,塊裝置的名稱 (/dev/block/sdX) 可能會變化,因此可能需要在重新啟動時檢查/更新此配置。如果你掛載的是邏輯卷,則名稱不會變化,也不需要檢查。

如何找到外部塊裝置的路徑

在 Android 上,你可以透過 “/dev/block/sdX”(而不是 “/dev/sdX”)找到塊裝置。為了確定哪個 sdX 裝置是外部塊裝置,你需要在插入該裝置的伺服器上執行“lsblk”。然後搜尋各種裝置,並檢視哪一個與你的裝置一致(就儲存容量/現有分割槽而言)。如果你在啟動後插入裝置,則可能是最後一個裝置。

注意:掛載塊裝置後,你必須先解除掛載或關閉伺服器,然後才能從物理上斷開塊裝置的連線。如果在未解除掛載的情況下斷開塊裝置的連線,則很可能會丟失所有資料。

1-4。 回到首頁,並開啟左上角的選單。選擇 “Settings”(設定),並一直向下滾動到 “PATH variable”(路徑變數)。這就是你安裝 BusyBox 的位置。設定好 “PATH variable” 後,選擇 “Update ENV”(更新環境變數)。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

1-5。 返回首頁,開啟右上角的選單。點選 “Install”(安裝)。你將看到安裝的實時日誌。完成後,日誌將以 “deploy”結尾。 選擇螢幕左下角的 “START”(開始)。Android 手機上就開始執行 Debian 伺服器了!

第二步:安裝 UrBackup 伺服器

2-1。 SSH 到新部署的伺服器。

IP 地址與手機相同,埠為 22,你可以使用步驟 1-3 中設定的憑據登入。本教程後續內容均假設你以 root 身份登入。開啟 Linux Deploy 就可以看到你的 IP:

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

2-2。 更新系統。

2-3。 下載 UrBackup 的 。deb 包。

這是目前最新的穩定版本。

2-4。 建立備份目錄。

在這個例子中,我將備份目錄設定為 “/mnt/backup”。如果你掛載了儲存,則目錄已經建立好了;如果沒有,請建立目錄:

更新許可權:

允許 UrBackup 寫入此目錄。

2-5。 安裝啟動指令碼。

我們無法在 chroot 環境中呼叫 systemd,因此需要手動啟動該服務:

為了避免每次都輸入該命令,我們可以建立一個指令碼:

將其複製到下面的檔案中:

儲存並退出。

新增執行許可權:

2-6。 啟動服務。

該命令將啟動伺服器的日誌。你可以按下 CTRL-C 停止服務,因此需要另開一個 SSH 會話。

如果想停止此服務,只需要幹掉它就可以了:

2-7。 新增定時作業。

由於我們無法以傳統的方式“啟用” UrBackup 服務,因此需要設定一個定時作業來啟動該服務。此外,如果你斷開外部塊儲存或重新啟動手機,備份目錄的許可權可能會恢復。為確保在重新啟動時這些設定能保留下來,我們需要新增定時作業。

開啟 crontab:

新增作業:

儲存並退出。

2-8。 開啟 Web 介面。

透過 Web 瀏覽器導航到伺服器的埠 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”,回頭有需要。

登入到客戶端,並執行此安裝指令碼:

(不要執行伺服器提供的指令碼)

(檢查最新的客戶端下載。)

在安裝過程中,指令碼會要求你選擇快照機制。對於“LVM - Logical Volume Manager snapshots”,請輸入“2”:

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

安裝完成後,請確認客戶端的正常執行:

如果客戶端沒有執行,請執行下述命令:

最後,透過下述命令將客戶端連線到伺服器:

請確保“YOUR_CLIENT_NAME”與3-2中設定的主機名相同,“YOUR_DEFAULT_AUTHENTICATION_KEY”是伺服器前面生成的鍵。

3-4。 配置伺服器。

返回 Web 介面,你會發現客戶端並不在線,點選頂部導航欄上的“Settings”(設定):

點選“Settings”頁面上的“Internet”(網際網路)頁籤,檢查如下設定:

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

(如果所有客戶端都是本地的,則可以取消“Do image backups over the internet”以及“Do full file backups over the internet”。)

滾動到底部並單擊儲存。

3-5。 設定備份目錄。

在“Settings”頁面上,點選“”Client settings(客戶端設定)。選中“Separate settings for this client”,在“File Backups”下的“Default directories to backup”中設定你想備份的目錄。如果想新增多個目錄,可以用分號“;”分隔。

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

你還可以在此設定備份間隔。

點選底部的儲存。

對於 Linux 客戶端,你也可以從客戶端的命令列設定:

重啟伺服器:

3-6。 重新登入到 Web 介面。

到此為止,客戶端已經連線好了。可能“File backup status”(檔案備份狀態)會顯示“No paths to backup configured”(沒有設定備份路徑),但沒關係,在第一次完成備份之前,都會這顯示。

另外請注意,如果你連線的是Linux 客戶端,則不支援映象備份。但是,你可以透過 Linux 客戶端執行映象備份,並設定備份映象的目錄。

接下來,你就可以嘗試一下備份了!

舊手機 別賣掉換臉盆了,自制【伺服器】瞭解一下!

END