BackupZit

Windows 服务器裸机还原

分步指南:为运行中的 Windows 服务器和 PC 创建磁盘映像,并从恢复 U 盘把故障机器还原到空磁盘——同一硬件、新硬件或虚拟机均可。

你将设置什么

文件备份只能找回文档;磁盘映像能找回整台机器:分区表、启动分区、Windows、程序、设置和数据。BackupZit 在 Windows 运行时从 VSS 快照创建映像,只保存已使用和已更改的块,并从恢复 ISO 将其写回新磁盘——硬盘损坏、遭遇勒索软件或更新失败的服务器无需重装即可恢复运行。BackupZit 免费且开源(AGPLv3)。

准备工作

  • 一台 BackupZit 控制台——使用下载页面上的现成映像创建的小型 Linux 虚拟机(2 vCPU、2–4 GB 内存、16–20 GB 磁盘),或在现有的 Debian、Ubuntu、AlmaLinux 或 Rocky Linux 服务器上运行安装脚本。
  • 另一台机器上的备份存储:SFTP、NAS 上的 SMB 共享、兼容 S3 的存储桶、Azure Blob Storage 或加固的 BackupZit 存储库。
  • 要保护的 Windows 机器:Windows 10、11 和 Windows Server 2016 或更高版本;Windows 7 SP1、Server 2008 R2 SP1 和 2012 R2 通过 legacy 代理,映像功能相同。
  • 一次性:一台安装了免费 Windows ADK 的 Windows PC,用于构建恢复 ISO(第 3 步),以及一个 U 盘。

第 1 步——安装代理

  1. 在控制台中打开 Agent 页面,点击创建注册令牌。你会得到一个注册码(BZ1-…),7 天内有效,可用于任意数量的机器。
  2. 在每台机器上运行 Agent 页面中的 Windows 代理 MSI 并粘贴注册码。机器较多时,可通过 GPO、Intune 或 RMM 工具静默安装:
    msiexec /i backupzit-agent.msi /qn ENROLLCODE="BZ1-..."
    或者让控制台通过 WinRM 安装:Agent → 从此处安装到机器。
  3. 一分钟内,该机器及其磁盘就会出现在 Agent 页面上。

第 2 步——创建映像作业

  1. 打开备份作业,为该机器创建作业并选择磁盘映像。
  2. 选择所有磁盘,用一个作业捕获每块内部磁盘(包括以后添加的);或勾选单块磁盘,整块或只选部分分区(例如排除已由文件备份覆盖的大型数据分区)。
  3. 选择目标存储、计划和保留策略。常见组合:每周或每晚一次映像,加上每日文件备份。

工作原理:

  • 所有磁盘的所有卷都从同一个 VSS 快照读取,因此各磁盘之间保持一致——例如 D: 上的数据库和 E: 上的日志。
  • 只读取已使用的块(NTFS 分配位图),存储库中已有的块不会再次上传。同一台机器的第二个映像通常只上传百分之几的数据。
  • 备份在离开机器之前就在本机以 AES-256 加密。请把控制台显示的恢复密钥与备份分开保存。
  • USB 和 SD 磁盘、挂载的 VHD/VHDX 文件以及可移动介质不包含在所有磁盘中,以免外部备份盘备份自己。

自动还原测试(默认每周一次,位于设置 → 还原测试)会读取最新映像中的随机块,并与校验和比对。

第 3 步——构建一次 Windows 恢复 ISO

Windows PE 不允许再分发,因此恢复 ISO 需要在任意一台 Windows 10/11 或 Server PC 上构建一次:

  1. 安装 Microsoft 免费的 Windows ADK(Deployment Tools 功能)和 Windows PE 加载项。
  2. 从发布页面下载 build-winpe.ps1,并从已安装代理的机器的 C:\Program Files\backupzit Agent 复制 backupzit-agent.exe。
  3. 在管理员 PowerShell 中运行:
    .\build-winpe.ps1 -AgentExe .\backupzit-agent.exe -Out .\backupzit-recovery.iso
    添加 -DriverDir C:\Drivers 以加入存储或网络驱动(例如 Proxmox 虚拟机的 VirtIO),添加 -RecoveryJson .\recovery.json 让恢复系统无需输入即可连接。
  4. 也可以把 ISO 复制到控制台的 /var/lib/backupzit/dist,之后它会出现在恢复介质页面上。

用 Rufus(ISO 模式)或 balenaEtcher 把 ISO 写入 U 盘。在恢复介质页面可以点击创建恢复码并下载 recovery.json;把它复制到 U 盘的 backupzit 文件夹,机器就能无需输入直接连接控制台。请先在备用 PC 或虚拟机上测试一次 U 盘——不要等到真正需要的那天。

Linux 机器使用 Linux 系统作业而不是磁盘映像来保护;它们的恢复 ISO(backupzit-recovery-linux.iso)随每个版本发布。

第 4 步——还原到空磁盘

  1. 从恢复 U 盘启动机器。它会以恢复模式启动代理并连接控制台(或询问服务器地址和恢复码)。
  2. 该机器会作为恢复代理连同其磁盘出现在恢复介质页面和 Agent 中。
  3. 在活动中打开映像备份,选择将此映像还原到磁盘。
  4. 在在代理上还原中选择恢复代理,在目标磁盘中选择新磁盘——容量至少等于原磁盘的已用空间。目标磁盘上的所有数据都会被删除;请确认。
  5. 运行完成后拔出 U 盘并重启。

支持 GPT 和 MBR 磁盘以及 UEFI 和 BIOS 启动。分区布局和 ID 会重新创建,因此还原后的磁盘能像以前一样启动。使用所有磁盘时,一次还原一块磁盘:先系统盘,再其他磁盘。

同一表单也可以还原到运行中机器的空闲磁盘。如果原磁盘在同一台机器中,请勾选之后让磁盘保持脱机,以免 Windows 更改副本的磁盘 ID。

还原到不同硬件

Windows 只有在拥有启动磁盘控制器的驱动时才能启动。因此,来自 Intel 控制器 PC 的映像在 AMD 主板、NVMe SSD 或虚拟机上会以 INACCESSIBLE_BOOT_DEVICE 停止。勾选还原到不同硬件,BackupZit 会在写入映像后为还原的 Windows 做好准备:

  • Windows 内置的常见磁盘控制器驱动会在启动时重新加载:AHCI/SATA、NVMe、Intel RST、LSI/Broadcom/Dell PERC SAS 和 RAID、HPE Smart Array、Hyper-V 和 VMware。
  • 通过 DISM 添加额外驱动:恢复 ISO 中的驱动,以及附加驱动程序中指定的文件夹——例如 U 盘上新主板的存储和网络驱动(E:\Drivers;子文件夹也会被搜索)。
  • 为新机器重新生成启动文件(bcdboot)。

运行页面会列出已启用和已添加的驱动。其余新设备由 Windows 在首次启动时识别;在新硬件上可能需要重新激活。

物理机转虚拟机:还原到 Proxmox VE 或 Hyper-V

磁盘映像也是把旧物理服务器迁移到虚拟机、或测试映像能否真正启动的最简单方法:

  • Proxmox VE:创建虚拟机,GPT 磁盘使用 OVMF(UEFI),MBR 磁盘使用 SeaBIOS;添加至少与原磁盘一样大的 VirtIO SCSI 磁盘和 VirtIO 网卡。挂载恢复 ISO(构建时包含 VirtIO 驱动),并勾选还原到不同硬件进行还原。
  • Hyper-V:创建至少与原磁盘一样大的空虚拟机磁盘——UEFI/GPT 用第 2 代,BIOS/MBR 用第 1 代——从恢复 ISO 启动虚拟机,并勾选还原到不同硬件进行还原。

从映像中取回单个文件

只需要一个文件夹时不必整盘还原。映像运行会列出每块磁盘及其分区;点击浏览文件即可浏览 NTFS 卷、下载文件(多个文件打包为 ZIP),或还原到任意代理上的文件夹。在控制台中浏览需要备份位于网络存储上(SFTP、S3、SMB、Azure 或加固存储库)。

需要了解的限制

  • 磁盘映像适用于 Windows(NTFS 卷、GPT 和 MBR 磁盘)。Linux 机器请使用 Linux 系统作业。
  • 目标磁盘的容量必须至少等于原磁盘的已用空间。
  • 不能在 UEFI 和传统 BIOS 之间还原——目标的启动方式必须与原机器相同。
  • 由于 Windows PE 不允许再分发,Windows 恢复 ISO 需要你用 Windows ADK 自行构建一次。

下一步

下载 BackupZit,查看磁盘映像功能,或阅读控制台内置指南中关于映像和还原的章节。虚拟机请参阅 Proxmox VE 和 Hyper-V 指南。欢迎在 GitHub Discussions 提问。企业可以从 MaxZit 获得商业支持(仅提供英文服务)。