Windows 备份和迁移

备份

使用 resticprofile 和 restic。restic 相关见 VPS 备份文章。

配置

我个人是将 resticprofilebin 目录放在 C:\Users\<username>\.backup 目录下。


resticprofilebin 目录下创建默认配置文件 profiles.yaml

文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
version: "1"

global:
# 修改成自己的 restic 路径
restic-binary: C:\Users\<username>\Cmds\restic.exe
prevent-sleep: true

default:
# 修改成自己的 repository
repository: rclone:remote:backup-windows
password-file: .\password.txt
initialize: false

backup:
tag:
- windows
# 修改成自己需要备份的文件夹
source:
- C:\Users\<username>\Pictures
- C:\Users\<usernaem>\Documents\MyFiles
- C:\Users\<username>\Desktop\courses
group-by: host
check-after: false
no-error-on-warning: true

# 备份周期时间
schedule: 'Sun *-*-* 15:00:00'
schedule-permission: user_logged_on
# 备份日志
schedule-log: C:\Users\<username>\.backup\backup.log
schedule-lock-wait: 10m

forget:
group-by: host
keep-daily: 1
keep-weekly: 1
keep-monthly: 1
keep-yearly: 1
prune: true

schedule: "* *-*-1 16:00:00"
schedule-permission: user_logged_on
schedule-log: C:\Users\<username>\.backup\backup.log
schedule-lock-wait: 10m

试运行和运行

然后在 bin 目录下创建 password.txt,里面直接纯文本写入 resitc repository 的密码。

然后以管理员身份运行 powershell,并跳转到 bin 目录下,执行以下命令检查:

1
.\resticprofile.exe --dry-run backup

查看生成的 restic 命令是否正确。检查无误后,再使用以下命令试运行 resitc 进行备份:

1
.\resticprofile.exe backup --dry-run

检查是否是预期结果,然后就可以直接尝试运行:

1
.\resticprofile.exe backup

周期任务备份

同样以管理员身份运行 powershell,并跳转到 bin 目录下,执行以下命令:

1
.\resticprofile.exe schedule

如果任务注册成功,你应该能在 Windows 的任务计划程序中看见:

任务计划程序

迁移

如果更换电脑,想要迁移备份配置也很简单。

  1. 重新配置 rclone

    重新下载 rclone,迁移配置文件 C:\Users\<username>\AppData\Roaming\rclone\rclone.conf 即可。

  2. 重新配置 restic

    重新下载 restic,重新配置环境变量 RESTIC_REPOSITORY RESTIC_PASSWORD 即可。

  3. 数据恢复

    数据恢复不建议使用 restic restore,最好是采用局域网(localsend)直接传输或硬盘传输的方式。具体见恢复一节

  4. 新机备份

    如果你新机的数据和之前备份的数据相同,想要增量备份,那么你可以在备份中指定 parent 来实现:

    1
    restic backup --parent <snapshot-id> --files-from tmp.txt

    其中 <snapshot-id> 为你想要从哪一个 snapshot 来增量备份,你可以通过 restic snapshots 查看所有的 snapshots。

    tmp.txt 该临时文件用于指定哪些文件备份,这里临时用于第一次备份,后面都使用 resticprofile 实现备份。

    可以指定 --dry-run 试运行查看是否是预期结果。

  5. 重新配置 resticprofile

    将上述的 .backup 目录复制过来即可,重新试运行查看是否正常,然后启动周期任务。

恢复

不建议使用 restic restore 恢复文件,最好是采用局域网(localsend)直接传输或硬盘传输的方式。

如果一定要使用,restic restore 一定要精确到想要恢复的文件夹!!!(下面会讲)


因为 Windows 盘符的问题,restic 在通常情况下总是会新创建一个盘符文件。

所以可以采用以下语法(当前目录为 C:\Users\username):

1
restic restore latest:/C/Users/username/Pictures --target .

具体效果可以参考官网示例

注意到这里指定的是 latest:/C/Users/username/Pictures,精确到想要恢复的文件夹,而不是以下命令(当前目录为 C:

1
restic restore latest:/C --target .

此条命令会修改 C:C:/UsersC:/Users/username 信息!!!

如果你使用管理员模式运行,那么以上文件的权限、所有者(即 ACL)都将变成备份文件时的权限和所有者!!!而这常常不是我们想要的。


Windows 备份和迁移
https://lllei.top/2025/05/10/Windows 备份/
作者
Lei
发布于
2025年5月10日
许可协议