连接其他磁盘时 Windows 错误恢复循环(UEFI)

连接其他磁盘时 Windows 错误恢复循环(UEFI)

在 Crucial M4 SSD 上安装 Windows 7 后,我在 Crucial 的 ESP 上安装了 rEFInd 启动管理器。然后我连接了 OCZ Vertex 4 SSD(并断开了 Crucial 的连接),并在 OCZ 上安装了 Xubuntu,/swap 和 /var 位于 400GB WD 驱动器上。重新连接 Crucial SSD 后,我无法启动 Windows 7(在连接 OCZ SSD 之前,它可以从 rEFInd 正常启动)。我最终陷入了 Windows 错误恢复循环。我应该注意到,当两个磁盘都连接时,Xubuntu 可以从 rEFInd 正常启动。

断开 OCZ SSD 后,我能够进入启动修复。尝试自动修复但失败,并显示以下详细信息:

Problem signature: 
Problem Event Name: StartupRepairOffline 
Problem Signature 01: 6.1.7600.16385 
Problem Signature 02: 6.1.7600.16385 
Problem Signature 03: unknown 
Problem Signature 04: 1 
Problem Signature 05: AutoFailover 
Problem Signature 06: 1 
Problem Signature 07: BadDriver 
OS Version: 6.1.7600.2.0.0.2561 
Locale ID: 1033 
#Diagnosis and repair details: 
Root cause found: 
------------------- 
A recent driver installation or upgrade may be preventing the system from starting. 
Repair action: System files integrity check and repair: 
Result: Failed. Error code: 0x490 
Time taken: 144629ms

但是,我重启后,Windows 启动正常。重新连接 OCZ SSD(或 Western Digital 400GB 驱动器 -编辑:从 WD 驱动器中删除所有 Linux 分区 - /swap 和 /var - 允许 Windows 无需启动修复即可启动)导致再次出现同样的情况。

我怎样才能解决这个问题?

答案1

您是否尝试过在高级启动选项中启动到安全模式或上次正确配置?

如果上述方法均无效,请选择“修复计算机”,然后您将访问“系统恢复选项”。您可以尝试:

  1. 启动 Windows 内存诊断。

  2. 打开 Commend Prompt,运行以下命令:

chkdsk /f /r(这将检查并修复磁盘错误)

sfc /scannow(这将检查并修复损坏的系统文件,您可以参考:http://support.microsoft.com/kb/929833

bootrec /RebuildBcd(这将重建启动信息,您可以参考:http://support.microsoft.com/kb/927392

希望这可以帮助。

答案2

您原始帖子中的括号编辑,大意是删除 Linux 分区可使 Windows 启动,这让我认为您可能是 libparted(大多数 Linux 工具使用的分区库,包括 Ubuntu 的安装程序)中长期存在的错误的受害者。具体来说,在 GPT 磁盘上,libparted 使用与 Microsoft 相同的分区类型代码创建 Linux 文件系统分区。这意味着 Windows 将尝试为分区分配驱动器号,如果您在 Windows 中打开硬盘工具,它将显示它们。如果您尝试访问其中一个,Windows 将提示您对其进行格式化。批准此操作将破坏您的 Linux 安装。当然,您没有看到这些确切的症状,但可能是同一个问题导致系统走上了不同的道路,导致不同的故障模式。

如果我的假设正确,你应该能够为你的 Linux 分区提供正确的分区类型代码,问题就会消失。目前最简单的方法是使用我的GPT fdisk ( gdisk)我相信这个工具gdisk在 Ubuntu 的软件包中是可用的:

  1. gdisk在磁盘上启动,如sudo gdisk /dev/sda。 (您可能需要更改磁盘标识符。)
  2. 键入p以查看您的分区表。Linux 分区应该列中的类型代码为 8300 Code;但基于 libparted 的工具为其赋予类型代码 0700。
  3. 键入t以更改需要更改代码的任何分区的类型代码。gdisk将要求您输入分区号和代码;输入正确的值。根据需要重复此步骤以修复所有 Linux 文件系统分区。(您的交换分区的代码应为 8200。gdisk
  4. 键入p以再次查看您的分区表并验证一切正常。如果有问题,请更正它或键入q以退出而不保存更改。
  5. 如果一切看起来正确,请键入w以保存更改并退出。

有关此问题的更多信息,请参阅我的有关该主题的网页。

相关内容