惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
罗磊的独立博客
SecWiki News
SecWiki News
The Register - Security
The Register - Security
The GitHub Blog
The GitHub Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
IT之家
IT之家
博客园 - 聂微东
T
The Exploit Database - CXSecurity.com
Recorded Future
Recorded Future
大猫的无限游戏
大猫的无限游戏
Know Your Adversary
Know Your Adversary
Latest news
Latest news
Vercel News
Vercel News
G
GRAHAM CLULEY
D
DataBreaches.Net
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
SegmentFault 最新的问题
博客园_首页
雷峰网
雷峰网
T
Tenable Blog
Spread Privacy
Spread Privacy
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
V
Visual Studio Blog
J
Java Code Geeks
博客园 - Franky
The Cloudflare Blog
Apple Machine Learning Research
Apple Machine Learning Research
C
CERT Recently Published Vulnerability Notes
T
Threatpost
Google DeepMind News
Google DeepMind News
F
Fortinet All Blogs
P
Privacy International News Feed
T
Threat Research - Cisco Blogs
T
The Blog of Author Tim Ferriss
V
Vulnerabilities – Threatpost
Recent Announcements
Recent Announcements
Blog — PlanetScale
Blog — PlanetScale
Security Latest
Security Latest
U
Unit 42
M
MIT News - Artificial intelligence
Y
Y Combinator Blog
K
Kaspersky official blog
有赞技术团队
有赞技术团队
B
Blog
腾讯CDC

有意

生活三两事(3) Openwrt的一些小折腾(5) 基于 PVE 的折腾之路(4)之 影音库云盘自动化 基于 PVE 的折腾之路(3)之 影音库自动化 基于 PVE 的折腾之路(2)之 安装群晖 基于 PVE 的折腾之路(1)之 Proxmox VE 的安装配置 日常吐槽(1) 初次自己全责的交通事故 Docker 部署 macvlan 网络下的 qBittorrent
折腾nas ——TimeMachine(修改)
痞子鱼 · 2022-05-11 · via 有意

前言

5月 11 日发布的第一个版本经过两天测试已经失败无效:容易备份中断,而且因为权限问题而出现无法再次备份。

本文会不定时更新更稳定的方法,现在您看到是重新试验过后于 5 月 16 日 更新的第二个版本。

还是有个小瑕疵:如果服务器重启,TimeMachine 容器无法正常启动,需要删除后重新部署,但不会影响到之前的备份,继续找解决办法。
暂时解决,在描述文件中增加一项配置 tty: true

手里的笔记本还是 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 磁盘

Jietu20220513-195910.jpg

虚拟机里添加磁盘

Jietu20220514-114250.jpg

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 的用户名和密码;

Jietu20220514-130833.jpg

因为之前第一版教程里已经有备份到 Windows 上,在 RockyLinux 将 Windows 上之前的备份过的 TimeMachine 文件夹整个移动到 home 目录下;

打开 TimeMachine 备份磁盘中选择刚刚建立连接的磁盘 TimeMachine,如果之前是加密备份的话,此时会提示包含了一个加密备份,选择使用现在备份,然后验证密码即可。(如果是全新备份则无此提示)

Jietu20220513-194401.jpg

又开始愉快的继续之前的备份了。

Jietu20220515-192950.jpg

Nas TimeMachine