所有 NTFS 硬链接都消失了,那些 0KB 硬链接存储在磁盘上的哪里,如何恢复它们?

所有 NTFS 硬链接都消失了,那些 0KB 硬链接存储在磁盘上的哪里,如何恢复它们?

这是 NTFS 文件系统上的 Windows 7 x64 sp1。

C:\Windows\System32 文件夹中的所有硬链接都消失了,Windows 无法启动,因为操作系统加载程序 C:\Windows\System32\boot\Winload.exe 也消失了。不过,原始文件仍然位于相应的 C:\Windows\winsxs 文件夹中。启动到恢复环境并从其他文件夹复制一个 Winload.exe (x64) 后,Windows 出现错误,指出“ntoskrnl.exe 已损坏或丢失...无法验证其文件数字签名

在尝试以安全模式启动时,屏幕提示“已加载 \Windows\system32\config\system”后显示上述消息

因为在这个早期启动阶段,smss.exe 仍未加载,所以没有任何转储和日志。

Based on my study, ntoskrnl.exe depends on the following files:  
C:\\windows\\system32\\PSHED.DLL  
C:\\Windows\\System32\\hal.dll  
C:\\Windows\\System32\\kdcom.dll  
C:\\Windows\\System32\\clfs.sys  
C:\\Windows\\System32\\ci.dll  

上述所有文件均从其相应文件夹复制,并使用运行良好的 Windows 7 x64 SP1 验证其 md5。但启动错误仍然相同:“ntoskrnl.exe 已损坏或丢失...

**Background:**
  1. 重启之前,Windows 正在进行更新。然后发生了一些未知的事情,几乎所有进程都无法运行,包括 Windows 任务管理器 taskmgr.exe。

  2. 将硬盘安装到其他计算机后,似乎 C:\Windows\System32 文件夹内的所有硬链接都消失了。

  3. 我尝试了几种数据恢复软件,但是它们都无法找到那些消失的 NTFS 硬链接。

那么问题是:
这些硬链接的信息存储在哪里?如何恢复它们?它们依赖于某些 Windows 服务还是存储在注册表中?

编辑

在 WinRE(Windows 恢复环境)上执行“sfc /scannow /offbootdir=c:\ /offwindir=c:\windows”失败,并显示以下消息:
Windows 资源保护无法执行请求的操作。

并且该系统没有设立备份点。

答案1

只需从备份中重新映像/恢复,速度就会快得多,也容易得多。在我手下工作的桌面技术人员的经验法则是,如果您无法在一小时内解决问题,那么就该重新映像该机箱了。

就你的情况而言,听起来系统在 Windows 更新过程中重新启动或崩溃了,当时它正在更新一堆系统文件,所以除了 之外,谁知道还缺少哪些文件和链接%Windows%\System32\Ntoskrnl.exe。显而易见的快速修复方法是复制到ntoskrnl.exe%Windows%\System32\但听起来问题更多,所以可能需要很长时间才能启动它,更不用说启动后让它再次正常工作了。

如果您没有好的映像程序或备份,您可以随时尝试重新安装 Windows 以替换丢失/损坏的文件和硬链接。(然后您需要再次浏览所有 Windows 更新以使所有内容都升级到正确的版本,否则您可能会遇到一些非常奇怪的行为。)

这些硬链接的信息存储在哪里?如何恢复它们?它们依赖于某些 Windows 服务还是存储在注册表中?

要回答这个具体问题,它们是文件系统对象。与文件一样,它们存在于文件系统中,在目录中,不依赖于任何服务或存储在注册表中(尽管与大多数 Windows 一样,您可以编辑注册表以在启动/登录/其他事件触发器上创建硬链接)。如果它们不在那里,那么它们就消失了。硬链接可以像文件一样被删除,而且由于您已经尝试过恢复软件但没有成功,您似乎知道另一个问题的答案。您无法恢复它们,至少在这种情况下不能 - 您需要从备份中重新映像/重新安装/恢复。

答案2

“ntoskrnl.exe 已损坏或丢失...无法验证其文件数字签名”

您可能需要检查 c:\Windows\System32\catroot\ 中的目录文件。此外,WinSxS 子目录中的清单文件 (*.man) 可能已损坏。

您可以尝试使用 SFC 实用程序sfc /SCANNOW /OFFBOOTDIR=d:\ /OFFWINDIR=d:\Windowssfc /SCANFILE=d:\Windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\Windows修复安装。

相关内容