前言
5月 11 日发布的第一个版本经过两天测试已经失败无效:容易备份中断,而且因为权限问题而出现无法再次备份。
本文会不定时更新更稳定的方法,现在您看到是重新试验过后于 5 月 16 日 更新的第二个版本。
还是有个小瑕疵:如果服务器重启,TimeMachine 容器无法正常启动,需要删除后重新部署,但不会影响到之前的备份,继续找解决办法。
暂时解决,在描述文件中增加一项配置 tty: true
TimeMachine
手里的笔记本还是 2015 年的 Macbook Air,多年前通过淘宝购买的转接卡更换成 512G 的硬盘使用至今,前几天因为升级到 Monterey,各种卡顿导致不得不降级回之前使用习惯的 Catalina。
由于之前一直都没备份过,降级后除了存在 iCloud 上的文件和照片,大部分软件都得重新安装、配置。所以觉得平时还是需要做一下备份,免得再出现意外的时候又的重复这痛苦而漫长的过程。
Docker TimeMachine
家里的 NAS 一直都是使用 Windows Server 2016,然后 Hyper-V 安装 RockyLinux(之前安装 Centos 8,用脚本迁移到 Rocky Linux)挂载 Windows 系统上的硬盘来跑各种 Docker 服务,所以这次的 TimeMachine 也是找了 Docker 镜像来运行。
试过多个镜像后,在 reddit 上给我找一个配置最简单的.
准备服务描述文件:
version: "3.7"
services:
timemachine:
image: msjpq/time-machine
container_name: timemachine
tty: true # 增加解决无法正常启动问题
network_mode: "host"
environment:
- SMB_NAME=TimeMachine
- SMB_USER=timemachine # 帐户
- SMB_PASSWORD=timemachine # 密码
- PGID=0
- PUID=0
volumes:
- /home/TimeMachine:/share # 备份路径
restart: always
Hyper-V 添加磁盘
新建一个 TimeMaChine 磁盘
虚拟机里添加磁盘
Rocky Linux
挂载磁盘
[root@Rocky /]# fdisk -l
# 新的硬盘 分区是 /dev/vdb
Disk /dev/vdb:320 GiB,343597383680 字节,671088640 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
[root@Rocky /]# fdisk /dev/vdb
欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x0b161e1d 的新 DOS 磁盘标签。
命令(输入 m 获取帮助):n
分区类型
# 输入p分为主分区
p 主分区 (0个主分区,0个扩展分区,4空闲)
# 输入e分为逻辑分区
e 扩展分区 (逻辑分区容器)
选择 (默认 p):
将使用默认回应 p。
# 输入该主分区为第几个主分区,由于是新盘我们输入1来分第一个主分区
分区号 (1-4, 默认 1): 1
# First sector 是选择该分区的起始扇区,直接回车
第一个扇区 (2048-671088639, 默认 2048):
# 使用全部可用存储额,直接回车
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-671088639, 默认 671088639):
创建了一个新分区 1,类型为“Linux”,大小为 320 GiB。
# 输入 w 保存
命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。
格式化并且挂载
# mkfs.xfs命令带-f强制格式化
[root@Rocky /]# mkfs.xfs -f /dev/vdb
Disk /dev/sdb:320 GiB,343597383680 字节,671088640 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标签类型:dos
磁盘标识符:0x0b161e1d
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/vdb1 2048 671088639 671086592 320G 83 Linux
# 用命令blkid 查看一下已是xfs格式
[root@Rocky /]# blkid /dev/vdb
/dev/sdb: UUID="905d8713-4f37-411f-936d-42a7b9e4537a" BLOCK_SIZE="4096" TYPE="xfs"
# 创建挂载目录(/home 已经存在 直接挂载)
# mount直接挂载硬盘至data
[root@Rocky /]# mount /dev/vdb /home
# 查看一下挂载的硬盘home
[root@Rocky /]# df -h
devtmpfs 841M 0 841M 0% /dev
tmpfs 870M 4.0K 870M 1% /dev/shm
tmpfs 870M 19M 851M 3% /run
tmpfs 870M 0 870M 0% /sys/fs/cgroup
/dev/mapper/cl-root 57G 36G 21G 63% /
/dev/sda1 1014M 436M 579M 43% /boot
tmpfs 174M 24K 174M 1% /run/user/976
tmpfs 174M 0 174M 0% /run/user/0
/dev/vdb 320G 2.3G 318G 1% /home
# 系统重启自动挂载该分区对fstab进行编辑
[root@Rocky /]# vi /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Dec 1 14:33:09 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root / xfs defaults 0 0
UUID=c6133267-fb84-4315-829c-a2deaffb00bf /boot xfs defaults 0 0
/dev/mapper/cl-swap none swap defaults 0 0
UUID=905d8713-4f37-411f-936d-42a7b9e4537a /home xfs defaults 0 0
启动 TimeMachine 容器:
docker-compose up -d
远程访问 :打开 Finder,使用快捷键 ⌘Command+K 来连接到服务器,填入 NAS 对应的 SMB 地址,并输入 TimeMachine 的用户名和密码;
因为之前第一版教程里已经有备份到 Windows 上,在 RockyLinux 将 Windows 上之前的备份过的 TimeMachine 文件夹整个移动到 home 目录下;
打开 TimeMachine 备份磁盘中选择刚刚建立连接的磁盘 TimeMachine,如果之前是加密备份的话,此时会提示包含了一个加密备份,选择使用现在备份,然后验证密码即可。(如果是全新备份则无此提示)
又开始愉快的继续之前的备份了。
15年的 MBP 13 乞丐版升到了 Monterey 之后一般用途比如处理表格,上网看看视频这些还是没感觉到很卡顿。
在帮老婆剪辑微课视频的时候发现 下 Monterey 的 CPU 使用率比 Catalina 时要高的多,能听到风扇呼呼作响,所以才说降级回来。
术业有专攻,自己没这方面的需求不懂飘过。
没用过NAS,家里感觉用不上啊,备份的话我专门用移动硬盘双备份……
移动储存我就只有一个 U 盘,一直觉得那玩意容易坏,哈哈。
刚开始我也觉得 nas 用处不大,但现在上面跑了十多个 docker 服务,再加上日常管理、备份照片觉得还算可以。搞这个 timemachine 也只是折腾下,重新理了一遍流程,局域网内备份还是很快的。