Winapi NTFS重解析点何时不是重解析点?

Winapi NTFS重解析点何时不是重解析点?,winapi,backup,ntfs,computer-forensics,Winapi,Backup,Ntfs,Computer Forensics,在测试备份和恢复软件时,我遇到了以下异常情况:在对文件和文件夹进行全面清点后,我得到了一些声称是Archive | Sparse | repassepoint的文件。恢复后,这些文件仅为归档文件|稀疏文件 在清单中,我对BackupRead流生成一系列SHA1散列,这些散列在恢复之前和之后都匹配……这意味着,我把我最初阅读的内容放回原处。然而,如果有一个repassedata块,而我没有写出它,那么散列就不会匹配 在具有这组属性的其他文件中,恢复通常会发生,并且恢复了所有预期属性。这意味着遇到了

在测试备份和恢复软件时,我遇到了以下异常情况:在对文件和文件夹进行全面清点后,我得到了一些声称是
Archive | Sparse | repassepoint
的文件。恢复后,这些文件仅为
归档文件|稀疏文件

在清单中,我对
BackupRead
流生成一系列SHA1散列,这些散列在恢复之前和之后都匹配……这意味着,我把我最初阅读的内容放回原处。然而,如果有一个
repassedata
块,而我没有写出它,那么散列就不会匹配

在具有这组属性的其他文件中,恢复通常会发生,并且恢复了所有预期属性。这意味着遇到了
ReparseData
,结果文件显示为
ReparsePoint
post restore

恢复后,操作系统似乎运行正常,文件加载并执行(许多奇怪的文件是.dll)

我在权限方面没有问题-我已经声明了所有必要的权限,并使用
文件\u标志\u打开\u重新分析\u点打开文件
,为
备份做好准备。一切似乎都正常工作

但我很担心。我不知道我是如何或者为什么丢失了RepassePoint标志的。我不知道它最初是如何被标记为重解析点的。我不知道这是否是原始安装的一些奇怪的工件。是否有方法设置文件中没有实际重分析点的
重分析点
属性

以下是一些受影响文件和位置的简短列表:

Windows\WinSxS\amd64_microsoft-windows-filehistory-core_31bf3856ad364e35_10.0.14393.0_none_e2812d3f8d830dbb 
  (all files)
Windows\WinSxS\amd64_microsoft-windows-gdi_31bf3856ad364e35_10.0.14393.0_none_d74783f3713901b3
  atmfd.dll
  atmlib.dll
  dciman32.dll
大多数(但不是全部)有问题的文件也恰好在卷上的其他位置进行了硬链接(通常在
程序文件中处于低位)。硬链接绝对不是重分析点(它们的实现方式不同)


总共有几百个。整个卷大约有160K个文件。我是否应该忘记它?

根据您的上下文,重新分析文件的一个可能解释是重复数据消除。分层存储也可能使用重分析点——无论如何,远程存储早在Server 2003就已经使用了,不过我不确定存储空间是否使用了重分析点。无论如何,在我看来,系统似乎在您打开文件后立即删除重分析点,源文件在备份后是否仍具有重分析点标志?“我使用文件标志打开重分析点以准备备份。”-您必须在准备备份时执行此操作,但不能在备份时执行(或者你在文本中感到困惑)。“这些奇怪的文件中有很多是.dll”-所以你有0字节大小的x.dll指向y.dll?什么是重分析标记?IO_重分析_标记_符号链接?IO_重分析_标记_挂载_点只与folders@RbMm,到目前为止,我还没有理由打开/知道重新分析标志…希望这是真的。你认为我有理由需要知道吗?我在读取和rite.@HarryJohnston,应该提到-测试图像是一个win 7 pro,已升级为win 10 pro…如果在那里发现重复数据消除,会感到惊讶。恢复后,ReparsePoint标志刚刚消失:-这是个谜。顺便说一句-数千个指向\windows.old的硬链接(惊喜)我的问题是,在执行备份之后,即在执行还原之前,ReparsePoint标志是否仍然存在于原始文件中。您使用什么样的映像技术来安装测试机?也许这就是重新分析点的原因——想想看,甚至是MS的标准Windows安装媒体使用成像(基于WIM格式),其中包括某种重复数据消除,尽管我不认为它是基于重分析点的。