旧手机别扔,手把手教你DIY一台服务器
时间:2021-09-07 11:28:50
手机看文章
扫描二维码
随时随地手机看文章
[导读]本文将向你展示如何使用UrBackup和LinuxDeploy在一台Android旧手机上搭建一台备份服务器。旧手机的污染问题众所周知,我有一台旧手机,虽然外壳有裂纹和磨损,但性能还很好,因此我打算废物再利用一下。你的旧手机很可能:并没有那么旧(你会像换手机那样一两年就换一台电脑...
本文将向你展示如何使用 UrBackup 和 Linux Deploy在一台 Android 旧手机上搭建一台备份服务器。旧手机的污染问题众所周知,我有一台旧手机,虽然外壳有裂纹和磨损,但性能还很好,因此我打算废物再利用一下。你的旧手机很可能:
- 并没有那么旧(你会像换手机那样一两年就换一台电脑吗?)
- 有 4-8 个处理器和大约 4GB 的内存,以及内置 UPS。只需要再加一个外部硬盘驱动,就可以备份整个家庭的网络了!
- 文件系统只能使用 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 服务器。
- 连接客户端。
准备工作
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 工具,但请确认下载源的安全。
可选设备(强烈推荐)
尽管从技术的角度来看,你可以将备份存储在 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”)。
安装路径默认值是 "${EXTERNAL_STORAGE}/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. 更新系统。
apt update