当 DIR $dir 显示同一个文件时,什么可能导致 DIR $file 报告“未找到文件”?

当 DIR $dir 显示同一个文件时,什么可能导致 DIR $file 报告“未找到文件”?

我可以 DIR 一个文件,但该文件不存在,但 DIR 它的目录,或与它位于同一目录中的文件,可以正常工作。

这是硬件问题还是软件问题?如果是硬件问题,是驱动器问题还是其他更严重的问题?

2013-06-13 9:35 C:\>dir  E:\Shares\Users\Test\Desktop\XAV-1.htm
 Volume in drive E is BKUP2013-1
 Volume Serial Number is 1AEA-6007

 Directory of E:\Shares\Users\Test\Desktop

File Not Found

然而:

2013-06-13 9:36 C:\>dir  E:\Shares\Users\Test\Desktop
 Volume in drive E is BKUP2013-1
 Volume Serial Number is 1AEA-6007

 Directory of E:\Shares\Users\Test\Desktop

2013-06-12  07:15 PM    <DIR>          .
2013-06-12  07:15 PM    <DIR>          ..
[snip]
2006-05-04  03:48 PM             1,232 Customer Files.lnk
2009-09-03  09:06 AM               767 Internet Explorer.lnk
2010-03-11  09:49 AM               104 My Computer.lnk
2004-01-02  04:50 PM             1,221 Reference Material.lnk
2011-11-18  05:08 PM               482 Shortcut to Downloads.lnk
2013-04-27  03:07 AM    <DIR>          Unused Desktop Shortcuts
2013-06-12  02:41 PM             2,710 XAV-1.htm
2011-01-10  03:31 PM        21,637,284 XP_EzTrends_1.0.3835.exe
              11 File(s)     27,977,417 bytes
               3 Dir(s)  670,902,140,928 bytes free

还有一个兄弟姐妹:

2013-06-13 9:36 C:\>dir  E:\Shares\Users\Test\Desktop\XP_EzTrends_1.0.3835.exe
 Volume in drive E is BKUP2013-1
 Volume Serial Number is 1AEA-6007

 Directory of E:\Shares\Users\Test\Desktop

2011-01-10  03:31 PM        21,637,284 XP_EzTrends_1.0.3835.exe
               1 File(s)     21,637,284 bytes
               0 Dir(s)  670,902,140,928 bytes free

此外,我可以毫无问题地打开 XAV-1.htm,并且它具有与 XP_EzTrends...exe 相同的 ACL 配置文件。

关于 ACL,如果我在“我的电脑”中右键单击 C: 或 E: 驱动器,然后点击“安全”,它们都会显示 SYSTEM 具有完全控制权。据我了解,这是指NT AUTHORITY\SYSTEM更新:此外,ACL 与我们过去用于 E: 的旧驱动器大致相同,而 E: 现在对我们来说太小了。我将其插入并检查,如果有的话,ACL 对旧驱动器的限制更严格,用户只能读取。但是,对于系统、所有人和管理员,新旧驱动器都允许完全访问。(这可能太宽松了,但这更偏向于“它应该可以工作”。) 更新2:我打开了审核并检查了事件日志,就像 2008 年一样应该在安全日志中创建一个类别为 的事件Object Access,但我的安全日志中没有这样的事件。我想知道脚注这里关于域策略的胜过在这里适用,即使这是在域控制器上。 更新 3:好的,我已设法Object Access显示条目,方法是在域/域控制器策略区域中启用对象访问日志记录,此外还请求在特定文件夹上进行任何类型访问,包括所有人、我和系统。但是,运行备份不会生成任何条目,它们来自使用 MMC 插件。

更新 4:我修改了备份脚本,除了通常进行的随机统计抽样外,还手动逐字节验证桌面目录中的所有文件,并将驱动器重新格式化为 exFAT,这样每个文件都会从头开始复制。只有Success Audit Object Access当这些文件受到验证步骤的影响时,我才会获得条目。我现在正在两个驱动器中的第二个驱动器上尝试同样的事情,这是看起来更不稳定的驱动器,所以我们会看看它说了什么。

更新 5:奇怪的是,测试用户和系统用户在备份桌面目录时都有交替的Success Audit条目。不过没有失败。同时,我正在观察 ROBOCOPY 的工作,它对大部分备份都没有遇到任何问题。现在它在每个文件上都失败了,从这个开始(最后一个成功的文件和前两个失败——从那时起它似乎成功和失败了):

\C\Rebuild\Apache\httpd-2.2.24-win32\Apache2\modules\mod_version.so
            New File               11776 2013/02/25 20:09:27    C:\scheduled\res \C\Rebuild\Apache\httpd-2.2.24-win32\Apache2\modules\mod_vhost_alias.so
          New Dir          4    C:\scheduled\res\C\Rebuild\Backup\
            New File              14.7 m 2010/12/01 17:09:00    C:\scheduled\res \C\Rebuild\Backup\cbSetup.exe 2013/07/10 17:37:04 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\cbSetup.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File              14.7 m 2010/12/01 17:09:00    C:\scheduled\res \C\Rebuild\Backup\cbSetup.exe 2013/07/10 17:37:06 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\cbSetup.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File              14.7 m 2010/12/01 17:09:00    C:\scheduled\res \C\Rebuild\Backup\cbSetup.exe 2013/07/10 17:37:08 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\cbSetup.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File              14.7 m 2010/12/01 17:09:00    C:\scheduled\res \C\Rebuild\Backup\cbSetup.exe 2013/07/10 17:37:09 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\cbSetup.exe The system cannot find the path specified.

ERROR: RETRY LIMIT EXCEEDED.

            New File               2.0 m 2010/03/04 16:18:28    C:\scheduled\res \C\Rebuild\Backup\diffutils-2.8.7-1.exe 2013/07/10 17:37:10 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\diffutils-2.8.7-1.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File               2.0 m 2010/03/04 16:18:28    C:\scheduled\res \C\Rebuild\Backup\diffutils-2.8.7-1.exe 2013/07/10 17:37:11 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\diffutils-2.8.7-1.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File               2.0 m 2010/03/04 16:18:28    C:\scheduled\res \C\Rebuild\Backup\diffutils-2.8.7-1.exe 2013/07/10 17:37:12 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\diffutils-2.8.7-1.exe The system cannot find the path specified. Waiting 1 seconds... Retrying...
            New File               2.0 m 2010/03/04 16:18:28    C:\scheduled\res \C\Rebuild\Backup\diffutils-2.8.7-1.exe 2013/07/10 17:37:13 ERROR 3 (0x00000003) Copying File C:\scheduled\res\C\Rebuild \Backup\diffutils-2.8.7-1.exe The system cannot find the path specified.

ERROR: RETRY LIMIT EXCEEDED.

但是:

2013-07-1017:45 C:\>dir C:\scheduled\res\C\Rebuild\Backup\cbSetup.ex
 Volume in drive C has no label.
 Volume Serial Number is 3C18-E114

 Directory of C:\scheduled\res\C\Rebuild\Backup

2010-12-01  01:09 PM        15,492,608 cbSetup.exe
               1 File(s)     15,492,608 bytes
               0 Dir(s)  240,190,017,536 bytes free

2013-07-1017:45 C:\>dir C:\Rebuild\Backup\cbSetup.exe
 Volume in drive C has no label.
 Volume Serial Number is 3C18-E114

 Directory of C:\Rebuild\Backup

2010-12-01  01:09 PM        15,492,608 cbSetup.exe
               1 File(s)     15,492,608 bytes
               0 Dir(s)  239,572,938,752 bytes free

2013-07-1017:46 C:\>

更新 6:更奇怪的是,它似乎确实复制了它本应放弃的文件,并带有一个奇怪的日期戳(它对同一目录中的兄弟文件也这样做了):

2013-07-1017:46 C:\>dir e:\IN\Rebuild\Backup\cbSetup.exe
 Volume in drive E is BAERO2013-2
 Volume Serial Number is 76F0-668E

 Directory of e:\IN\Rebuild\Backup

1980-01-01  08:00 PM        15,492,608 cbSetup.exe
               1 File(s)     15,492,608 bytes
               0 Dir(s)  822,191,718,400 bytes free

2013-07-1018:05 C:\>

并且,对于那些我很确定没有出错的(现在已经超出了我在命令窗口中可以滚动回的范围),其中随机的一些的时间戳被弄乱了(ROBOCOPY 将其标记为不完整的方式):

2013-07-1018:05 C:\>dir e:\IN\Rebuild\Apache
 Volume in drive E is BAERO2013-2
 Volume Serial Number is 76F0-668E

 Directory of e:\IN\Rebuild\Apache

2013-07-10  05:36 PM    <DIR>          .
2013-07-10  05:36 PM    <DIR>          ..
1980-01-01  08:00 PM         6,042,112 httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi
2013-07-10  05:36 PM                80 httpd-2.2.15-win32-x86-openssl-0.9.8m-r2.msi.md5
1980-01-01  08:00 PM         6,085,632 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
2013-07-10  05:36 PM                76 httpd-2.2.17-win32-x86-openssl-0.9.8o.msi.md5
1980-01-01  08:00 PM         9,097,535 httpd-2.2.23-win32-ssl_0.9.8.zip
1980-01-01  08:00 PM         9,257,408 httpd-2.2.24-win32.zip
2012-11-06  05:23 AM             2,251 service-dependencies--unused.reg
2010-10-20  07:51 AM             2,410 services.bat
2013-05-28  06:57 AM             2,665 services-splittest.bat
2012-11-06  05:58 AM             2,448 services-upgradetest.bat
2013-07-10  05:36 PM    <DIR>          httpd-2.2.24-win32
              10 File(s)     30,492,617 bytes
               3 Dir(s)  821,313,273,856 bytes free

2013-07-1018:07 C:\>

然而,正如您所看到的,使用 cmp.exe 时,ROBOCOPY 备份的 C 卷影副本中的 C 文件和 ROBOCOPY 开始之前格式化的 E 文件逐字节相同:

2013-07-1018:13 C:\>c:\scheduled\res\cmp.exe --verbose c:\scheduled\res\C\Rebuild\Apache\httpd-2.2.24-win32.zip e:\IN\Rebuild\Apache\httpd-2.2.24-win32.zip

2013-07-1018:13 C:\>c:\scheduled\res\cmp.exe --verbose c:\Rebuild\Apache\httpd-2.2.24-win32.zip e:\IN\Rebuild\Apache\httpd-2.2.24-win32.zip

2013-07-1018:13 C:\>

更新 7: 现在我明白了一些文件正在通过The process cannot access the file because it is being used by another process.,其他人则说The system cannot find the path specified.。这两条消息似乎都是转移注意力的手段,因为我正在使用 /B 运行 ROBOCOPY,这意味着它以备份操作员的身份运行,并且应该可以访问所有本地文件,而这些文件就是本地文件。此外,我正在查看 Open Files MMC 管理单元,但它们没有。我甚至在它抱怨之后立即对其中一个“正在被另一个进程使用”的文件使用了 LockHunter,根据我的经验,LockHunter 从未失败过,但它却说没有任何东西在使用它。我已经踢掉了所有用户,我是唯一登录的人,而且我当然不会像这样接触随机的文件组。我已经禁用了任务计划程序,并验证了我的 robocopy 是目前唯一正在运行的 robocopy 进程。

更新 8:自从重新格式化为 exFAT 后,我还没有尝试过CHKDSK /R,所以我这样做了。它显示 7 小时后坏扇区为 0 KB(这是一个 1 TB 的驱动器。)

这是几周前买的 WD USB 外置硬盘。是时候拿回去了?还是我们的 USB 端口坏了​​?还是怎么回事?

更新 9:我们刚刚尝试了从当地一家企业借来的 1 TB 硬盘,它是 USB 2.0,而不是 USB 3.0,就像我们以前的硬盘一样(但更大)。它没有表现出与原始问题完全相同的行为,但在备份过程中,验证步骤确实失败了,说文件不存在于 E: 上,尽管之后它确实存在,而且我可以单独对其进行 DIR,这与上述情况不同。

相关内容