克隆到 SATA 驱动器后,Windows 拒绝从原始 nvme 驱动器启动

克隆到 SATA 驱动器后,Windows 拒绝从原始 nvme 驱动器启动

背景:

在了解到我的一个 nvme 驱动器可能存在固件问题后(搜索:Samsung 980/990 pro read-only bricking 2023 February)。我决定将适当的固件更新应用于三星驱动器。最简单的方法是从 Windows 使用三星魔术师软件。

在执行任何操作之前,我决定将 win11 系统克隆到 SATA 驱动器,并将我的 Linux 系统克隆到 SATA 驱动器。简而言之,克隆过程可以描述如下:

 nvme1 (force mp600) -> sata1  { Windows 11 }
 nvme2 (evo 980 pro) -> sata2  { Linux }

所有有问题的驱动器都具有相同的 2TB 容量。我使用 dd_rescue 将原始驱动器克隆到 SATA 驱动器。该过程中没有出现 I/O 错误。

原始 Linux(980 Pro)和克隆版运行良好,尽管在 980 nvme 上发现了大量令人震惊的 SMART 错误,但它似乎运行良好。已应用固件补丁,问题已解决。

问题:

像往常一样从 mp600 nvme 启动“隔离的 Windows 系统”后,打算下载三星魔术师并将补丁应用到其他 980-nvme 驱动器,但发生了以下情况:

Windows 决定使用克隆驱动器中的克隆分区作为 C: 驱动器。大概是因为在此 BIOS 和主板(x570 pro4 by asrock)中,SATA 驱动器在 NVME 驱动器之前被发现。因此,在经历了痛苦而缓慢的启动过程和大量咒骂之后,我意识到 Windows 现在正在使用速度慢得多的 C:克隆驱动器,而不要使用原装驱动器。

对此,我想,这没什么大不了的。我只需拔下克隆并照常启动即可。不。

蓝屏死机。

Recovery
Your PC/Device needs to be repaired
A required device isn't connected or can't be accessed

Error code: 0xc000000e {0x c000 000e}

You'll need to use recovery tools (bla, bla, bla)

我尝试使用“常规”修复安装介质的方法。但失败了:

蓝屏死机。

 Startup Repair couldn't repair your PC.
 Press "advanced options" to try other options to repair your PC or "Shut down" to turn off your PC.

 Log file: \System32\Logfiles\Srt\SrtTrail.txt

从那时起,我尝试从 SATA 克隆回 NVME,最终结果仍是相同的 BSOD。

奇怪的是,原始系统可以从克隆的驱动器正常启动,并且源中的 C、D、E 分区也被替换,而原始分区被分配给“较晚”的字母,例如 h、e、f。

我还尝试手动将 C 字母 ( *) 应用于原始驱动器,然后从安装 USB 执行修复系统步骤。但是,操作系统或 BIOS 似乎更喜欢 SATS 驱动器,如果未连接 SATA 驱动器,我就会得到第一个 BSOD。

总结一下:

当启动时存在原始和克隆时,将选择克隆。当启动时不存在克隆时,Windows 会报告设备丢失并停止并显示 BSOD。

据推测,迁移到新驱动器是一种常见的用例,所以很可能发生了这种情况。但是,我想从原始 nvme 启动,而不是从 sata 克隆启动。你遇到过这个问题吗?我需要一些建议。


日志输出:

  Startup Repair diagnosis and repair log
  ---------------------------
  Last successful boot time: ‎2/‎14/‎2023 2:16:36 PM (GMT)
  Number of repair attempts: 1
  
  Session details
  ---------------------------
  System Disk = \Device\Harddisk2
  Windows directory = D:\Windows
  AutoChk Run = 0
  Number of root causes = 1
  
  Test Performed: 
  ---------------------------
  Name: Check for updates
  Result: Completed successfully. Error code =  0x0
  Time taken = 0 ms
  
  Test Performed: 
  ---------------------------
  Name: System disk test
  Result: Completed successfully. Error code =  0x0
  Time taken = 0 ms
  
  Test Performed: 
  ---------------------------
  Name: Disk failure diagnosis
  Result: Completed successfully. Error code =  0x0
  Time taken = 93 ms
  
  Test Performed: 
  ---------------------------
  Name: Disk metadata test
  Result: Completed successfully. Error code =  0x0
  Time taken = 407 ms
  
  Test Performed: 
  ---------------------------
  Name: Disk metadata test
  Result: Completed successfully. Error code =  0x0
  Time taken = 78 ms
  
  Test Performed: 
  ---------------------------
  Name: Target OS test
  Result: Completed successfully. Error code =  0x0
  Time taken = 15 ms
  
  Test Performed: 
  ---------------------------
  Name: Volume content check
  Result: Completed successfully. Error code =  0x0
  Time taken = 1735 ms
  
  Test Performed: 
  ---------------------------
  Name: Boot manager diagnosis
  Result: Completed successfully. Error code =  0x0
  Time taken = 0 ms
  
  Test Performed: 
  ---------------------------
  Name: System boot log diagnosis
  Result: Completed successfully. Error code =  0x0
  Time taken = 15 ms
  
  Test Performed: 
  ---------------------------
  Name: Event log diagnosis
  Result: Completed successfully. Error code =  0x0
  Time taken = 125 ms
  
  Test Performed: 
  ---------------------------
  Name: Internal state check
  Result: Completed successfully. Error code =  0x0
  Time taken = 0 ms
  
  Test Performed: 
  ---------------------------
  Name: Check for installed LCU
  Result: Completed successfully. Error code =  0x0
  Time taken = 20250 ms
  
  Test Performed: 
  ---------------------------
  Name: Check for installed driver updates
  Result: Completed successfully. Error code =  0x0
  Time taken = 735 ms
  
  Test Performed: 
  ---------------------------
  Name: Check for pending package install
  Result: Completed successfully. Error code =  0x0
  Time taken = 1828 ms
  
  Test Performed: 
  ---------------------------
  Name: Boot status test
  Result: Completed successfully. Error code =  0x0
  Time taken = 16 ms
  
  Root cause found: 
  ---------------------------
  Boot status indicates that the OS booted successfully.
  
  ---------------------------
  ---------------------------



*将 c 盘符应用于原始驱动器

USB 启动媒体 -> 高级工具
-> cmd 提示符
-> diskpart
-> 选择磁盘 3
-> 选择卷 4
-> 分配字母=c


两个驱动器上的分区

PS C:\Users\jaro> Get-PhysicalDisk  | Where-Object -Property FriendlyName -Match "(Force|ST2000)" | Select-Object -Property MediaType,Model,Size

MediaType Model                       Size
--------- -----                       ----
SSD       Force MP600        2000398934016
HDD       ST2000DX001-1CM164 2000398934016


PS C:\Users\jaro> Get-Partition -DiskNumber 2


   DiskPath: \\?\scsi#disk&ven_&prod_st2000dx001-1cm1#7&2e1550d9&0&050000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

PartitionNumber  DriveLetter Offset                                                      Size Type
---------------  ----------- ------                                                      ---- ----
1                           1048576                                                   100 MB System
2                           105906176                                                  16 MB Reserved
3                C           122683392                                              361.28 GB Basic
4                           388041277440                                              625 MB Recovery
5                A           388697686016                                            80.05 GB Basic
6                           474649460736                                                1 GB Unknown
7                G           475724251136                                             1.39 TB Basic


PS C:\Users\jaro> Get-Partition -DiskNumber 4


   DiskPath: \\?\scsi#disk&ven_nvme&prod_force_mp600#5&eb22283&0&000000#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}

PartitionNumber  DriveLetter Offset                                                      Size Type
---------------  ----------- ------                                                      ---- ----
1                           1048576                                                   100 MB System
2                           105906176                                                  16 MB Reserved
3                           122683392                                              361.28 GB Unknown
4                           388041277440                                              625 MB Recovery
5                E           388697686016                                            80.05 GB Basic
6                           474649460736                                                1 GB Unknown
7                F           475724251136                                             1.39 TB Basic

BCD 内容

PS C:\Windows\system32> .\bcdedit.exe

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume11
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {4c5f0d94-502c-11ed-ba51-f3bde6dbb2bd}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 11
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {4c5f0d96-502c-11ed-ba51-f3bde6dbb2bd}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
resumeobject            {4c5f0d94-502c-11ed-ba51-f3bde6dbb2bd}
nx                      OptIn
bootmenupolicy          Standard

更新:

我尝试让两个 Windows 安装都出现在 BCD 中,但该步骤也失败了,大概是因为这些驱动器上的 fs-id 相同。

X:\sources>bootrec /rebuildbcd
Scanning all discs for Windows installations.

Please wait, since this may take a while...

Successfully scanned Windows installations.
Total identified Windows installations:2 
[1]  \\?\GLOBALROOT\Device\HarddiskVolume28\Windows
Add installation to bootlist? Yes(Y)/No(N)/All(A):Y
[2]  D:\Windows
Add installation to bootlist? Yes(Y)/No(N)/All(A):Y
The requested system device cannot be identified due do multiple indistinguishable devices potentially matching the identification criteria

我做了一些其他的事情来尝试保存这个系统,比如使用该工具更改文件系统的系统 ID volumeid.exe,但最终却出现了 BSOD:

 Error Code 0xc0000185 is caused by a corruption of files 
 related to the boot function of a Windows PC.

我猜还是有可能修复引导加载程序的,但由于这方面的信息很难获得。我可能会放弃,继续前进,并为未来做笔记:

请勿使用位于不同磁盘和控制器上的相同克隆来启动 Windows,因为操作系统可能会破坏您的原始安装。

答案1

A)使用一些专用的克隆软件可能会更好
B)下次启动原始操作系统之前尝试旋转 fs-id,但可能会导致克隆处于无法启动的状态,因为 fs-id 可能在 Windows 引导加载程序中使用
C)

请勿使用位于不同磁盘和控制器上的相同克隆来启动 Windows,因为操作系统可能会破坏您的原始安装。

相关内容