用于修复休眠失败的磁盘上的 MFT 或 NTFS 日志的工具

用于修复休眠失败的磁盘上的 MFT 或 NTFS 日志的工具

我读过一些与损坏或无法正常工作的 NTFS 分区相关的帖子,但没有找到适合我的情况的解决方案。这里是:我的系统

  • 迷你上的 SSDPCI 高速总线(PCIe),上面安装了 Windows 7。两个分区:一个分区装有戴尔实用程序(40 MB),另一个分区装有 Windows 安装本身(119 GB)。
  • 包含 450 GB NTFS 文件的 HDD,以及 30 GB 使 Ubuntu 安装正常运行的所有分区(交换、系统等)

启动设备是内置硬盘(免疫反应性放射治疗),这是唯一可行的方法;这将启用 IRRT,并启动GRUB,通过指向 HDD 上的某个扇区就可以在 SSD 上启动 Windows 7。

现在发生了什么:

我让计算机进入睡眠状态,然后几个小时后它又进入休眠状态。无线网卡被物理禁用(戴尔 M4600)。然后我启动笔记本电脑,在 GRUB 完成之前,我再次打开无线网卡。然后在 GRUB 上按“windows”。然后蓝屏死机,重新启动,Windows 无法找到启动分区:“缺少所需设备”。

我试过 Windows 7 恢复光盘:只能修复硬盘上的一小部分 Windows 安装,无法看到 SSD。“修复”没有任何作用。移除硬盘以强制绕过 GRUB 并不能使 Windows DVD 看到 SSD 的引导扇区。这还不够“Windows 安装”。

现在,如果我开始像再次安装 Windows 一样操作,Windows 会看到 C 盘上的两个分区,它们仍然在 NTFS 中。

然后我转到Linux并尝试磁盘管理:分区仍然在这里。但它们没有出现在鹦鹉螺,我无法安装它们。但是,可以恢复数据:如果我尝试在某个随机的大偏移量处读取数据(例如偏移量 20 GB,并读取 10 个块),这些块确实是“数据”,物理访问驱动器没有问题,至少它似乎没有完全失效。那我明天会做备份。

我试过测试磁盘:引导扇区完全相同,看上去没有问题,但骨髓纤维化显示为“错误”,仅此而已。无法访问文件系统内的文件。

在那个网站上,我看到了一些关于错误写入的内容NTFS 日志需要恢复损坏的 NTFS 分区

几乎是最后一篇帖子了。据我所搜索,互联网上没有关于此内容的任何信息。

而且我怀疑休眠过程的某些方面没有被逆转,因为我记得休眠过程会大大改变启动顺序(否则您可以hiberfil.sys毫无问题地移动,但您不能。它需要位于根目录中,因为引导加载程序中没有地方可以容纳文件夹位置,甚至是另一个驱动器!)。

因此,也许两个引导扇区都受到休眠的影响,当它无法完成恢复正常引导的过程时,它就一直这样,Windows 查找引导指针指向的位置,无法识别正常的 Windows 安装并拒绝修复它,并且由于 Linux 找不到 MFT,它无法安装它……或者可能是其他原因,影响了 MFT 本身。我不知道……我会试试校验备份后,修复文件,来自 Windows 7 DVD。

更新:fixmbr 和 fixboot 似乎只能从恢复控制台工作,我无法访问它。从 Windows 7 DVD,我可以执行 CHKDSK:它只说在崩溃之前该卷是 NTFS,因为“MFT 已损坏。将尝试修复。无法修复 MFT。退出 chkdsk”。

尝试 diskpart 时,它将 SSD 上的分区视为...原始。因此,这与 CHKDSK 所看到的不符。

这一切都很奇怪:一直以来,Windows 都没有看到我的 SSD 的前 40 MB,其中包含戴尔实用程序。在 Windows 7 资源管理器中,SSD 的主分区始终是C:\,而 HDD 的分区是D:\:SSD 上的这个 40 MB 分区从未出现在任何地方。但现在,Windows 看到了这个 40 MB 分区,并为其赋予了字母C:\。虽然D:\字母对应于 119 GB 分区,“原始”格式,但无法读取。我什么都不明白……

答案1

启动设备是内部硬盘 (IRRT),这是唯一可能的设备;这将启用 IRRT,并启动 GRUB,它通过指向某个部门HDD 上的 Windows 7 可以在 SSD 上启动。我认为你需要指针与此相同。^

我猜是 { 然后在 GRUB 上按下“windows”。然后出现 BSOD、重新启动,并且 windows 找不到启动分区:“缺少所需设备”。 }

没有使用相同的指针,特别是如果进入休眠状态。grub 启动必须指向您的 windows 启动扇区或 hiberfil.sys 也出现类似问题,当我尝试编辑 winresume.exe 以尝试指向 D: 时,当 windows 在 C: 上时,它不会从休眠状态启动 windows,当我使用原始副本时,它已修复此问题。

希望这可以帮助

答案2

最后,我在 C 盘(SSD)上重新安装了 Windows,安装完成后,系统确实可以再次运行,但启动顺序使 GRUB 短路。所以现在,Linux 安装已经无法实现了。

它仍然在我的 D 盘上,我知道我只需要插入一张活动 CD 并修复 GRUB 就可以使其工作,但由于其他原因,我还没有这样做。

现在已经一年了,有时在退出休眠状态时会出现其他 BSOD,但它再也没有对文件系统造成任何永久性损坏。

我认为研究所有关于启动的答案在某种程度上是正确的。整个过程“在 HDD 上启动(IRRT)->GRUB->指向 Windows 引导加载程序的正确指针->“退出休眠”初始化序列的位置”一定是在某个地方失败了,而没有传统的修复工具可以修复它。

最终,我还是没能理解问题所在,现在我的系统已经重新安装,所以我可能永远都不会知道发生了什么。如果有一天我碰巧对启动过程、IRRT、Windows、GRUB 以及我拥有的特殊磁盘配置有了足够的了解,我最终可能会猜出一个更好的解释。

但是现在,我要说的是:显然,在这个精确的配置(Dell M4600)上,在 IRRT 上使用 GRUB,在“真实”硬盘上使用 Linux,在 mini-PCI-express SSD 上使用 Windows,并激活休眠模式,这似乎是不安全的,因为即使禁用 GRUB,BSOD 仍然会发生(这意味着整个启动过程现在由 Windows 控制,即使这样,退出休眠模式可能会出现问题 - 也许 12 GB RAM 的大小,以及 9 GB hyberfil.sys 文件,在这里发挥了作用),并且由于其中一个 BSOD 可以在我之前的配置中杀死我的 NTFS 分区,而没有任何硬件故障(因为我的 SSD 仍然运行良好 - 但我还没有深入检查它的健康状况),我不明白为什么它不会再次发生。

所以,解决方案是存在的,虽然不是很令人愉快,但这个问题的确切出处尚不清楚。如果有人对此有更多见解,我将非常高兴听到。

相关内容