我刚刚运行了 robocopy,但 robocopy.exe 和“系统”的 CPU 使用率都达到了 100%,如进程资源管理器中的快照所示(Robocopy.exe 的线程和系统线程)。有问题的是“ntoskrnl.exe!ExfAcquirePushLockExclusive+0xb54”和“ntdll.dll!RtlFreeAnsiString+0xb4”。我刚刚运行了类似
ROBOCOPY.EXE "S:\some folder" R:\ /E /DCOPY:DAT /TIMFIX /XJ /XJD /XJF /XF "some files" /XD "some folders" /R:5 /W:5 /X /V /TS /FP /BYTES /TEE /UNILOG+:S:\somefolder\Robocopy.log /MT:128
我之前使用相同的命令没有任何问题。我不知道为什么它最近开始出现问题。如果我杀死 robocopy.exe,它会进入 BSOD(KMODE_EXCEPTION_NOT_HANDLED)。BlueScreenView 显示“由驱动程序引起:werkernel.sys”、“由地址引起:werkernel.sys+75b000”、“崩溃地址:ntoskrnl.exe+14f1a0”
我不知道是什么导致了这个问题。虽然 robocopy 的日志文件没有显示任何错误,但这很令人不安,我必须运行一整夜才能复制约 30GB 的数据。
更新:发现问题。我使用 robocopy 从作为虚拟驱动器号安装的 R-Drive Image 磁盘映像文件进行复制。R-Drive Image 的虚拟磁盘驱动程序“R-ImageDisk64.sys”有时会(但并非总是)出现在 BlueScreenView 中的“由驱动程序导致”列中。如果我先将 R-drive Image 的磁盘映像文件还原到 VHDx,然后使用 robocopy 从作为虚拟驱动器号安装的 VHDx 进行复制,问题就会消失。因此,看起来 R-Drive Image 的磁盘映像文件不是为繁重的复制任务而设计的,而是主要用于使用 R-Drive Image 自己的复制机制进行查看和恢复(逐扇区恢复等,至少不涉及 robocopy)。
更新 2:我按照 magicandre1981 的建议使用 WPR.exe 记录了 CPU 使用率过高的情况,在使用 WPA.exe 查看跟踪日志文件时,我有一些快照。但我不允许发布超过 2 个链接,所以我必须在评论中提供它们。虽然我不确定那里的一些含义,但看起来 R-ImageDisk64.sys 在使用 robocopy 从作为虚拟驱动器号安装的 R-Drive Image 磁盘映像文件复制时创建了太多自引用循环。