我试图将USMT引入到我们公司所有未来迁移的环境中。 在做一些testing时,我有一个拒绝恢复的备份存储,有一些非常奇怪的结果。
当提取一个小的MIG文件(600MB)时,通常只需要几分钟的时间就可以完成 – 它会持续20-30分钟。 loadstate.log文件变得巨大,充满了这个,只是重复(在日志中超过一百万行):
2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Compressed=C:, Mapped=C:, DestExpanded=C:\ 2013-06-21 18:08:23, Info [0x080000] Creating stream copy in C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5290.tmp (362 bytes) 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Links C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5290.tmp and C:\Users\SYPKENJM\AppData\Roaming\Microsoft\Windows\Recent\Local (C) (667).lnk differ in target paths: 'C:\' vs. 'C:\' 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Compressed=C:, Mapped=C:, DestExpanded=C:\ 2013-06-21 18:08:23, Info [0x080000] Creating stream copy in C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5291.tmp (362 bytes) 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Links C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5291.tmp and C:\Users\SYPKENJM\AppData\Roaming\Microsoft\Windows\Recent\Local (C) (668).lnk differ in target paths: 'C:\' vs. 'C:\' 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Compressed=C:, Mapped=C:, DestExpanded=C:\ 2013-06-21 18:08:23, Info [0x080000] Creating stream copy in C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5292.tmp (362 bytes) 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Links C:\Users\SYPKENJM\AppData\Local\Temp\tmp848C.tmp\Temp\tmp5292.tmp and C:\Users\SYPKENJM\AppData\Roaming\Microsoft\Windows\Recent\Local (C) (669).lnk differ in target paths: 'C:\' vs. 'C:\' 2013-06-21 18:08:23, Info [0x080000] pCompareLnkContent: Compressed=C:, Mapped=C:, DestExpanded=C:\
我可以看到一些与这些日志条目匹配的隐藏的lnk文件(比如“Local(C)581.lnk”),但是我不知道它们来自哪里。 USMT似乎已经创build了这些文件,loadstate.log最终大概有180MB,然后才会继续。
我已经运行了usmtutils / extract,并且它非常快速地提取 – 而且这些Local(C)###。lnk文件在appdata / microsoft / windows / recent文件夹中。 这只是一个指向C:\驱动器的lnk。
任何人有任何见解,疑难解答步骤,或类似的经验?
我相信我对这个奇怪的行为有一个解释。
看起来,“忽略无关链接”function在指向驱动器根目录的链接上断开。 例如,我在指向“F:\”驱动器的“最近”文件夹中有一个LNK文件。 比较运行比较并返回false,因为“F:\”不等于“F:”。
每次运行loadstate进行恢复时,都会将相关链接的副本添加到C:\驱动器(或F:\驱动器)。 (除了从上次扫描状态运行备份的所有LNK外。
我正在testing的机器,我做了很多testing,反复进行备份和恢复。 1 LNK变成(2 + 1)= 3,变成(6 + 1)= 7,变成(14 + 1)= 15,31,63,127,255,511 …等等。 LNK比较过程显然需要将每个相似的lnk与每个其他lnk进行比较,所以它是O(n2)迭代(根据日志的输出)。 这真的很快就失控了。 一个负载状态日志在日志级别5增长到150MB,下一个日志在我最终取消进程之前是300MB。