蓝屏后无法访问 NTFS 文件。chkdsk 无法检测到损坏?

Ric*_*ier 4 windows windows-server-2008 filesystems ntfs corruption


我们在 Windows 服务器上有几个文件显示在目录列表中,但无法访问。我可以取得文件的所有权,ACL 显示每个人都有读/写/执行权限;但我无法打开文件。chkdsk 在卷上没有发现任何问题。

服务器是 64 位 Win 2008 R2 Standard SP1。

我们最近在这台服务器上出现了 BSOD,并且在崩溃前不久修改了文件。崩溃与任何文件系统无关,但我认为它损坏了内核内存中的某些内容并损坏了文件系统。

以下是我在尝试访问文件“com2.log”时看到的一些内容:

D:\Logs\Application>dir com2*
Volume in drive D is Data
Volume Serial Number is 84D5-FD84

Directory of D:\Logs\Application

09/07/2011  06:57 PM           169,025 com2.log
       1 File(s)        169,025 bytes
       0 Dir(s)  39,320,612,864 bytes free

D:\Logs\Application>dir com2.log

 Directory of \\.

File Not Found

D:\Logs\Application>dir com2.*

Directory of \\.

File Not Found

D:\Logs\Application>cacls com2.log
The filename, directory name, or volume label syntax is incorrect.

D:\Logs\Application>more com2.log
Cannot access file \\.\com2

D:\Logs\Application>more com2*
Cannot access file D:\Logs\Application\com2.log
Run Code Online (Sandbox Code Playgroud)

(cacls 不显示 ACL,但我可以在 Windows 资源管理器中看到它。)

看起来它可能是扩展程序的问题。dir com2*找到它但dir com2.*没有。

该文件在 Windows 资源管理器中显示为 com2.log,但是当我双击它时,我在记事本中收到此错误,指的是 .txt 文件扩展名:

Cannot find the \\.\com2.txt file.
Do you want to create a new file?
Run Code Online (Sandbox Code Playgroud)

有没有人见过这样的事情?任何故障排除建议?

Ben*_*row 8

COM2 是保留关键字,字面意思是硬件端口 COM2,我不确定该文件最初是如何到达那里的,因为 Windows 不允许您创建名为COM2.log. 立即尝试,您将收到一条错误消息。为了好玩,还可以尝试创建LPT1.txt.

根据Naming Files, Paths, and Namespaces,以下都是保留名称,不应用作文件名。

  • 不要使用以下保留设备名称作为文件名:

    CON、PRN、AUX、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8和LPT9。还要避免这些名称后紧跟扩展名;例如,不推荐使用 NUL.txt。

您可以尝试在资源管理器中重命名文件或使用ren com2.log somethingelse.log以查看您是否可以操作该文件,但是我有一种感觉,这与您首先不应该创建文件的原因相同。

如果失败,如果您遵循如何在 Windows 中删除具有保留名称的文件,您应该能够使用以下命令删除该文件。使用相同的“完全合格”的路径,我想你也可以通过使用重命名该文件REN,而不是DEL

DEL \.\C:\SomeDirectory\com2.log

  • 最坏的情况是启动支持 NTFS 的 linux livecd。你应该可以从那里删除。 (4认同)
  • 问题文件名来自 cygwin - 我们使用它来搜索一些日志文件并保存结果。我无法使用“move”移动文件,但 Cygwin“mv”完成了这项工作。感谢完全限定的路径技术,我也会记住这一点。 (2认同)