Windows 备份方案

183次阅读
没有评论

共计 3727 个字符,预计需要花费 10 分钟才能阅读完成。

背景

对于工作中生产环境的服务器备份,借助云的便利,我们可以使用 镜像 & 备份库 & 快照库 等方式,很轻易的实现备份和回滚。

而对于物理设备上的操作系统备份,Linux 可以使用 mkisofs & dd,制作ISO镜像。

我的办公环境和家用环境,有 Windows 和 Mac OS 设备,Mac OS有时间机器。

而 Windows 上自带的系统还原点,其实局限很大并不适用,因为还原点只能创建在系统盘,当系统盘出问题,会连带还原也未必能够使用。

onedrive 仅能备份部分设置项和文件,不能进行全量备份。

下文会展开讲讲如何实现 Windows 的全量备份。

Windows 相关知识

常用的 Win 镜像格式有:GHO、ISO、WIM、ESD。

  • GHO:Ghost工具软件的镜像文件扩展名。在新版操作系统,例如 ≥ 7的版本上,一般很少再使用 GHO 方式。
  • ISO:光盘镜像的存储格式之一。事实上,WIM、ESD可以被刻录到 ISO 内引用。由刻录软件或者镜像文件工具来建立。
  • WIM:全称 Windows Imaging Format,微软开发的新一代镜像格式。
    • 不保存分区信息,仅能备份系统盘;
    • 支持文件级别的压缩;
    • 可以在同一个WIM文件中存储多个镜像;
    • 支持增量备份。
  • ESD:全称 Executable Software Deployment,微软在 Windows 8 中引入的最新文件格式。
    • 不保存分区信息,仅能备份系统盘;
    • 压缩率高;
    • 支持加密;
    • 不支持增量备份。

由于 WIM 和 ESD 都只能备份系统盘。如果设备仅有一块硬盘,直接将系统盘制作为 WIM 或 ESD 镜像,即可完成全量备份。

如果有多块硬盘,数据盘备份,可以直接将数据复制到备份目的端,或者用 7-ZIP 等压缩工具打包后再复制,例如 NAS 或其他硬盘。

WIM 备份

WIM 和 ESD 格式的备份镜像,可以很轻易实现格式互转。下文主要介绍如何将系统打包为 WIM 镜像进行备份。

DISM

提示:DISM命令操作繁琐,仅做简单介绍,不推荐非专业人士使用

DISM 全称是”Deployment Image Servicing and Management”(部署映像服务和管理)。在 Win 7 后的操作系统中被内置。

在使用 DISM 命令进行镜像捕获时,最好提前关闭不必要的程序,避免捕获临时文件和正在运行的程序的数据,这些数据可能会造成备份失败,或者备份后系统无法还原。

当然也可以在正在运行的 Windows 操作系统中进行镜像捕获,前提是开启了卷影复制。

最好的方式是在 Windows 正常关闭后,在 PE 中使用 DISM 捕获镜像。

简单示例

捕获系统分区:

dism /capture-image /imagefile:D:\Windows10.wim /capturedir:C:\ /name:"Windows 10 Backup" /description:"Windows 10 system backup created on [日期]" /compress:maximum

  • /imagefile: 指定WIM文件的保存路径和文件名
  • /capturedir: 指定要捕获的目录(通常是系统所在的分区)
  • /name: 给镜像一个名称
  • /description: 添加描述信息
  • /compress: 指定压缩级别(maximum为最高压缩)

查看WIM文件信息:

dism /get-imageinfo /imagefile:D:\Windows10.wim

应用WIM镜像(如需恢复系统):

dism /apply-image /imagefile:D:\Windows10.wim /index:1 /applydir:C:\

在应用镜像前,请确保目标分区已经正确准备(如格式化)。

在目标分区格式化前,请确保镜像未受损,能够正确释放和挂载,避免破坏现有系统盘后无法恢复。

dism /Mount-Image /ImageFile:"WIM文件路径" /Index:1 /MountDir:"挂载目标路径"

高级示例

指定排除目录:

dism /capture-image /imagefile:D:\Windows10.wim /capturedir:C:\ /name:"Windows 10 Backup" /compress:maximum /Exclude-Directory:"C:\Users\用户名\Downloads" /Exclude-Directory:"C:\Temp"

使用通配符指定排除目录:

/Exclude-Directory:"C:\Users\*\AppData"

使用文本文件列表指定排除目录:

dism /capture-image /imagefile:D:\Windows10.wim /capturedir:C:\ /name:"Windows 10 Backup" /compress:maximum /ExcludeList:C:\exclude_list.txt

DISM ++

下载地址:github.com/Chuyu-Team/Dism-Multi-language/releases

DISM ++ 不依赖于 Dism,有便利的 GUI 可用于制作和恢复wim镜像。

支持运行在 Windows 或 PE 中使用。

创建镜像

Windows 备份方案

当我在需要备份的Windows 环境下创建备份,可以看到默认开启了卷影复制:
Windows 备份方案

保存类型的压缩方式自行选择:
Windows 备份方案

点击确定以创建镜像:
Windows 备份方案

恢复镜像

恢复时当然不能再 Windows 系统中执行了,除非电脑有多块系统盘。往往在 PE 下执行恢复:

Windows 备份方案

再次提醒,再格式化分区恢复镜像之前,请先测试镜像是否受损:

释放映像和挂载映像,都可用于检查。

Windows 备份方案

踩坑

虚拟驱动器类

当系统盘中创建了虚拟驱动器时,例如 WPS 云盘,备份过程会产生报错:句柄无效

此时去查看日志,翻到最后的 error 行,定位导致备份失败的路径,并加以处理。

处理方式有几种:

  • 将 WPS云盘 存储目录在 WPS 中配置,移动到非系统盘
  • 关闭 WPS 云盘功能
  • 在 PE 中制作镜像
  • 添加排除路径

    Windows 备份方案

    Windows 备份方案

    Windows 备份方案

当系统盘中创建了虚拟驱动器时,例如 Raidrive,备份过程中不会报错,但是还原过程会报错:未安装指定的服务试图加载格式不正确的程序

Windows 备份方案

查看日志可以看到

Windows 备份方案

我在这里被坑惨了,最开始没有经验,在成功创建 wim 后,直接格式化了系统分区进行还原,结果还原失败。

最后使用了 7-ZIP 将 wim 镜像直接解压缩到系统盘,但是解压缩过程中 windowsapps 路径下的文件会失败,即使系统能够引导启动,但是会导致 windows 大量自带 app 和功能无法使用。

例如登录微软账号、 UWP应用(日历、计算器、设置)等等,都无法正常运行。

AMD 缓存类

AMD 核显在恢复时可能会遇到:指明特定的安全 ID 可能不能作为对象的标签分配

错误路径为:Windows\System32\config\systemprofile\AppData\Local\AMD\DxCache\

Windows 备份方案

网络上亦有相同案例:github.com/Chuyu-Team/Dism-Multi-language/issues/1031learn.microsoft.com/en-us/answers/questions/1357102/

遗憾的是,他们没有给到能够正确解决方案。

使用 wimlib 修复受损镜像

上文遇到的坑点,都是在制作镜像时,捕获到了非标准文件。

我们当然期望能有一款工具,能够在非解压缩或挂载状态,直接编辑镜像内容,移除掉故障目录以修复映像。

  • 当 WIM 中包含故障文件时,WIM 无法被镜像管理工具挂载或解压释放;
  • 7-ZIP 能够解压 wim ,但是会引入其他错误(windowsapp 目录下文件无法正确解压);
  • 7-ZIP 仅能只读方式打开wim,无法编辑;
  • dism++ 不能直接编辑 wim;
  • dism 不能直接编辑 wim;
  • WimTool 不能直接编辑 wim。

wimlib 可以很好的解决此问题。

wimlib 是一个开源的跨平台库,在 Windows 下以命令行方式使用。

功能:

命令示例:递归删除 \ProgramData\OpenBoxLab\RaiDrive\Cache\​ 路径下所有内容

.\wimlib-imagex.exe update "D:\系统备份\um870-2024-11-23-0001.wim" 1 --command="DELETE --recursive \ProgramData\OpenBoxLab\RaiDrive\Cache\"

删除完毕后,无需进行其他操作,即时生效。

总结

制作了 wim 镜像不代表此后高枕无忧,需要验证镜像是否可成功释放后再用于恢复环境。

尽量在 PE 环境下制作镜像避免捕获异常文件导致镜像不可用。

本文属于专题:Windows

引用链接

正文完
 
pengyinwei
版权声明:本站原创文章,由 pengyinwei 2024-11-25发表,共计3727字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处:https://www.opshub.cn
评论(没有评论)