7

我编写了一个备份工具,能够为 Windows 备份文件和卷的图像。要检测哪些文件已更改,我使用 Windows 更改日志。我已经使用卷影复制功能对文件和卷映像进行一致的复制。

为了检测哪些块发生了变化,我现在使用哈希。这意味着整个卷必须被读取一次(因为必须计算所有块的哈希值是哪个块发生了变化)。集成到 Windows 7 中的备份能够创建增量卷映像,而无需检查所有块。我无法找到一种用于块级更改日志的 API。

有人知道如何访问这些信息吗?(我愿意深入研究 NTFS 内部结构——甚至读取和解析特殊文件)

4

2 回答 2

3

我认为在任何地方都没有块级更改信息。最有可能的是,Windows 7 集成备份的作用是安装文件系统过滤器驱动程序,就像某些备份产品和防病毒软件一样。过滤器驱动程序可以拦截所有文件系统调用,并通过这种方式知道哪些块已更改。如果您这样做,您基本上可以构建自己的更改日志,该日志适用于块级别,但仅适用于您感兴趣的文件。

我真的很想在这里知道一个更好的答案。

于 2011-02-21T15:35:40.640 回答
0

当您说 Windows 更改日志时,我认为您指的是 NTFS USN?它看起来非常像 Windows 7 备份使用 VSC 和 NTFS USN 的组合来检测更改并创建增量映像,就像您已经在做的那样。

于 2014-07-11T14:27:54.987 回答