在 Windows 2000 和 XP 机器上,我曾经能够执行以下操作:
ntbackup backup systemstate c: /f e:\backups\machineName\machineName-full+systemstate_200101206.bkf
这给了我一个完整的系统备份,在完成基本操作系统安装后,我可以使用它来进行系统还原。Windows 7 有一个很棒的实用程序,可以进行定期备份,并带有警报和所有这些东西。它似乎不支持命令行。我想要一个适用于我的 Windwos 7 系统的备份解决方案,它具有以下功能:
- 免费
- 是开源的(最好)
- 在系统启动时工作并使系统保持正常运行(clonezilla 非常适合离线备份,我也使用它)
- 为我提供适合完整系统还原或部分系统还原的备份(排除大多数映像软件,即使它们可以在系统通过某种影子复制巫术启动时工作)
- 可以通过命令行工作
- 压缩效果会很好,管道输出的能力会更好。
答案1
Windows 备份和恢复可以在机器运行时进行完整映像备份。可以使用 Windows 安装盘的修复工具恢复映像。备份是压缩的,您可以选择本地磁盘或网络共享进行备份。
可以使用命令行控制备份工具wbadmin.exe
。这适用于客户端操作系统(Windows 7、Windows Vista)和服务器操作系统(Server 2008、Server 2008 R2)。基本命令如下:
START BACKUP -- Runs a one-time backup.
STOP JOB -- Stops the currently running backup or recovery
operation.
GET VERSIONS -- List details of backups recoverable from a
specified location.
GET ITEMS -- Lists items contained in a backup.
GET STATUS -- Reports the status of the currently running
operation.
答案2
我不确定你这是什么意思:
为我提供适合完整系统还原或部分系统还原的备份(排除大多数映像软件,即使它们可以在系统通过某种影子复制巫术启动时工作)
但我可以提供你所要求的几乎所有其他东西虚拟阴影工具(发现于Windows SDK) 和执行文件.strarc 是开源的,尽管我从来没有费心去寻找它的源代码。
以下是菜谱:
- 创建影子副本以获得一致状态。为此,运行您想要备份的卷的位置。例如
VShadow.exe -p volumename
,(如果这是卷的挂载点),或持久卷名称。VShadow 将执行其操作,但最后,它会给您一行。从中获取 GUID。volumename
C:\
C:\Mounts\D
\\?\Volume{edbed95e-7e8d-11d8-9d01-505054503030}
SNAPSHOT ID
- 为快照分配一个驱动器号。运行
VShadow.exe -el=ShadowCopyId,UnusedDriveLetter:
whereShadowCopyId
是您从上一步获得的快照 ID。UnusedDriveLetter 当然是未使用的驱动器号。 - 执行备份。运行
strarc -cjd:UnusedDriveLetter:\ 1>MyBackup.strarc 2>MyBackup.err.txt
。UnusedDriveLetter
应该与上一步相同,因为这会告诉 strarc 从哪里开始备份。 - 恢复备份。运行
strarc -xjd:Destination MyBackup.strarc
在哪里Destination
是不言而喻的。
strarc 不压缩其文件,因此如果您想这样做,请将其输出提供给您最喜欢的流压缩程序,例如 bzip2 或 gzip。它的-z
选项允许您指定。
需要注意的是,微软想VShadow 的-p
显示快照选项仅适用于服务器级操作系统。我发现这实际上是错误的,因为我能够使用该-p
选项在 Windows 7 Enterprise 上创建驱动器号。它工作得很好。
请注意,strarc 使用 NT 备份 API(并且支持非常长的 NT 路径名),但不启用 SeBackupPrivilege。这意味着您只能备份您有权访问的内容(您确实有权限,对吧?您是管理员,对吧?)。您可以使用开源 ProcessHacker 强制执行此操作;或者,由于它是开源的,您可以添加一个选项来启用 SeBackupPrivilege。如果您选择后者,我鼓励您分享。:)
参考: