Linux 崩溃导致 Windows 虚拟化(物理)分区注册表损坏

Linux 崩溃导致 Windows 虚拟化(物理)分区注册表损坏

(tl;dr; 抱歉文章太长,粗体文字包含主要细节)

我有一个Windows 10 和 KDE Neon 双启动笔记本电脑。我很少启动我的 Windows 分区,但我确实经常通过虚拟化配置VMware在 Neon 中。这在大多数情况下都非常有用...

... 直到昨晚... 我在 Linux/XOrg/KDE5/(...) 的对接/断开连接时遇到了一些问题,并且我养成了暂停我的 VM 的习惯以防万一(通常),但是昨晚我忘了,果然,我的电脑完全冻结了,需要手动关闭电源。

我关闭了它,然后毫无问题地重新启动到 Linux,但现在 Windows 无法从 VM 或 UEFI 作为物理双启动分区启动。 使用扩展坞锁定了计算机并损坏了我的 Windows 分区(因为它是在虚拟环境中启动的)。

实际的引导扇区和分区似乎正常(在执行 chkdsk 并进行一些修复之后)。 启动时会出现 BSOD,提示“CRITICAL_PROCESS_DIED”。它会在迷你恢复 shell 中重新启动,提示:“所需设备未连接或无法访问 - 错误代码:0x0000225”并有 3 个选项:“按 Enter 重试,按 F8 进行启动设置,或按 Esc 进行 UEFI 固件设置”。F8 提供老式安全模式、启动日志、vga 模式等选项,我尝试了所有这些选项,结果都一样(原始 BSOD)。

我尝试过的事情:

  • 创建了各种 Win10 安装介质来尝试修复它:1 个基于 Win 10 的最新版本,一个基于之前的 Insider 版本,一个基于当前的 Insider 版本(我的分区有)
    • 最新版本首次使用了 Microsoft 的新统一更新平台 (UUP),这意味着不再有 ESD 文件(默认情况下)发送到客户端计算机,这意味着制作自制 ISO 更加困难。我下载了别人的 ISO,看起来是合法的。
  • 在这 3 个版本上,我都启动了恢复模式并运行了以下命令(全部失败):
    • DISM 恢复健康: dism /image:c:\ /cleanup-image /restorehealth /limitaccess /source:wim:d:\sources\install.wim:1(以及与此略有不同之处)
      • 72.7% 的结果为“错误 0x800f081f - 无法找到源文件。使用“源”选项指定恢复功能所需的文件的位置... DISM 日志文件可以在 X:\Windows\Logs\DISM\dism.log 中找到
    • 证监会: sfc /scannow /offbootdir=c:\ /offwindir=C:\windows
      • 结果: ”Windows 资源保护发现损坏的文件,但无法修复其中的一些文件。详细信息包含在 CBS.Log windir\Logs\CBS\CBS.log 中。例如 C:\Windows\Logs\CBS\CBS.log。请注意,目前在离线服务方案中不支持日志记录。“——我猜这算是离线服务场景!:(
    • 我也检查过了目录:\Windows\System32\Config\regback而且它只是一堆 0 字节文件
    • 我试过还原点,但我显然没有任何(我相信这需要被禁用才能在 Linux 中虚拟化我的物理 Windows 文件系统)
    • 刷新/恢复Windows 恢复 shell 中的选项不存在任何地方
    • 操作系统安装的恢复外壳无处可寻 - 只能从安装介质中找到
    • Windows 恢复工具中的启动修复功能 - 可能是有史以来最无用的安慰剂屏幕。
    • 我有尝试恢复到以前的 Windows 版本,但立即失败(这真的让我很恼火,因为我没有运行任何清理工具或任何东西,而且我两天前才更新过——怎么回事!)
      • 不过,有一件事我觉得很有希望:有一个 C:\WINDOWS.OLD\Windows\System32\Config 文件夹。我尝试用那些旧的注册表文件(2 天前的)覆盖 C:\Windows\System32\Config 中的所有注册表文件。仍然无法启动,唉。

看似有希望的事情:

  • 运行 chkdsk- 它确实修复了一些东西,似乎让我在启动过程中稍微走得更远一些,但现在它出现蓝屏并显示上述消息(编辑,抱歉忘记记录原始 BSOD 消息)
  • 我仍然可以启动到 KDE neon, 和我可以挂载 ntfs 文件系统在那里对文件做任何我需要做的事情
  • 还可以从安装媒体恢复访问文件系统命令提示符

综上所述,我的问题是:

  1. 有谁知道可以用来修复原始注册表文件的工具(我的意思不是简单地从 regback 子文件夹复制自动“备份”...就像实际修复损坏的注册表数据库)?最好是从恢复控制台或 Linux - 但如果我需要,我也可以将 reg 文件复制到另一个 Windos 框中。
  2. 我对 dism.exe 命令的操作有什么错误吗?也许我只是盯着这个看太久了,并且有一些事情很明显......
  3. 什么原因导致刷新/恢复选项没有显示在安装介质的恢复控制台上?有没有办法修复它?
  4. 为什么没有安装介质我就没有完整的恢复外壳? 这不是正常安装的吗?也可能损坏了吗?
  5. 还有其他建议吗?

谢谢你!

答案1

好的,我对第 3 号和第 4 号有一个答案,嗯......疯狂的东西......

在阅读 Tatakai 的评论后,我决定返回并重新检查 gparted。 这Windows 的恢复分区有一个黄色感叹号(好吧,其中一个,出于某种原因我有 3 个:sda1、sda5 和 sda10 - sda5 出错了)。在阅读并尝试了各种方法后,我最终宣布 f*** it 并决定使用 NTFS 重新格式化该分区,重新应用 2 个标志(隐藏和其他一些,记不清了),然后将所有文件从 sda10 复制到新创建的 sda5

虽然它还没有完全发挥作用,但我认为这是一种进步。我需要重新启动我的电脑使用本指南(笔记,从文档中间部分开始,找到“修复 Windows 8、8.1 或 10 中的 UEFI 启动”部分 - 顺序似乎很重要- 第一次我做得有点随意,没有效果,第二次我严格按照要求做,效果很好)。

好的,现在我已经可以使用本地安装的恢复环境了。一旦我启动它,它就会有一些细微的差别,例如工具在访问之前会要求输入管理员帐户密码,刷新/恢复功能现已推出

当然,该功能也随之而来,并决定今晚不会是我轻松射精的夜晚。所以它每次都会立即失败(其他一切仍然如此)。

我做了一些额外的清理和其他工作,但从未真正进入 Windows...我决定致命一击我打算运行rsync -a /mnt/win/WINDOWS.OLD/* /mnt/win/并将所有旧文件复制到新文件之上,看看它是否能启动

这就是事情变得有点疯狂的地方......有效! (有点……有一段时间……我很震惊,一切都启动了,似乎运行得很好。有几件事出了点问题,比如更改日期/时间。我认为sfc /scannow现在运行就好了,所以我就这么做了。它实际上在运行,而不是立即失败,而且大约 60% 失败了。 和突然所有文件都消失了。我的意思是 C:\WINDOWS 文件夹变成了一个空荡荡的旧文件夹,几乎没有一个文件(尽管我仍然在其中启动,但什么都不起作用)。我的用户文件夹正在慢慢消失。我可以看到每个图标都从我的桌面上消失了,大约 20 分钟后,几乎所有东西都消失了。我仍然启动到 Windows,我已锁定 explorer.exe 和 cmd.exe 进程,因此可执行文件仍在 C:\WINDOWS 中,但其他什么都没有了。

我相信所有内容都被复制到了 C:\WINDOWS.OLD。我不知道 sfc /scannow 是否触发了某些计划任务或作业,并被内部版本号搞糊涂了,所以它认为需要自行清理……毫无头绪。我需要仔细检查一下 WINDOWS.OLD,确保里面有我所有的内容。我真希望在执行这个疯狂的任务之前能听取“newcoder”的提示(他上面的评论)。

无论如何,此时操作系统已经彻底死了。我只希望我的所有文件在 WINDOWS.OLD 中仍然完好无损。感谢大家的帮助!

相关内容