Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Ntbackup是大家熟悉的在Windows 2003 Server系统中用来进行系统备份的工具,Windows Server 2008和Windows Server 2008 R2中用Windows Server backup代替了Ntbackup。那么Windows Server backup在进行系统状态备份时,究竟是如何决定哪些文件时系统状态文件的呢?
当完成一个系统状态备份之后,我们可以通过检查C:\Windows\logs\WindowsServerBackup中的备份日志来得到本系统状态文件的完整列表。可以想象,在域控制器上的系统状态文件列表和Web服务器上的列表是不同的。那系统又是如何得知这些不同的呢?
要回答以上的问题,我们先要理解Snapshot。Snapshot即所谓的系统快照工具,对于服务器来说,利用其可以轻松地创建、加载、恢复系统快照,以实现服务器系统的备份和还原。Windows Server backup并不是对系统当前磁盘的物理文件进行备份,而是请操作系统先创建一个系统状态的Snapshot。我们可以把这个Snapshot看作是一个虚拟的磁盘。Windows Server backup仅仅对这个虚拟磁盘作备份操作。
实际上, Windows Server backup服务本身并不十分理解系统状态究竟应该包括那些具体文件。当操作系统创建Snapshot时 ,它会查询当前系统中安装的VSS Writers。如果某个Writer的VSS_USAGE_TYPE属性设置为VSS_UT_BOOTABLESYSTEMSTATE 或VSS_UT_SYSTEMSERVICE。这个Writers将负责提供他认为需要在系统状态中备份的文件内容。
typedef enum VSS_USAGE_TYPE {
VSS_UT_UNDEFINED = 0,
VSS_UT_BOOTABLESYSTEMSTATE = 1,
VSS_UT_SYSTEMSERVICE = 2,
VSS_UT_USERDATA = 3,
VSS_UT_OTHER = 4
} ;
在Windows server 2008和Windows Server 2008 R2系统中,系统状态备份的绝大多数内容由System Writer提供。System Writer运行于Cryptographic Services (CryptSvc) 的系统服务中。一般情况下,他用于枚举以下的系统文件:
所有系统安装的静态文件. 它包括所有被Windows Resource Protection (WRP)保护的文件.
所有Windows Side-by-Side (WinSxS) 目录的内容
所有即插即用的驱动程序
所有运行在用户模式的服务以及非即插即用的驱动程序
所有CryptSvc 所拥有的目录文件(catalog)
了解以上的工作机制,我们再回到之前的一个问题:有没有办法改变或排除一些系统状态信息的的内容?答案是肯定的。但这不是Windows Server backup需要完成的工作,而更多是依赖于提供系统状态信息的各个VSS Writers。如果某些文件是由一个特定的Write枚举出来的而这个Write又提供相应的接口来改变它所枚举的内容,我们就可以改变系统备份具体内容。例如,对于System Writer,我们可以通过ExcludedBinaryPaths的注册表来排出一些文件 (在Windows Server 2008
R2 SP1中已经包含了这个设置。对于Windows Server 2008和Windows Server 2008 R2,需要安装升级包https://support.microsoft.com/?id=980794才能使用这个设置)。
希望以上的信息对大家了解Windows Server 2008服务器的系统状态备份有所帮助。
本博文仅供参考,微软公司对其内容不作任何责任担保或权利赋予。