克隆Windows 11到SATA硬盘后原NVME硬盘无法启动的问题求助
大家好,我最近碰到了一个棘手的启动问题,折腾了好久都没解决,想请各位大佬给点思路:
背景
之前看到三星980/990 Pro在2023年2月出现了只读变砖的固件问题,所以打算给我的三星NVME盘更固件,最简单的方法是在Windows里用Samsung Magician软件操作。
为了保险起见,我先把系统盘都克隆了:
- 把NVME1(Force MP600,Windows 11系统)克隆到SATA1硬盘
- 把NVME2(EVO 980 Pro,Linux系统)克隆到SATA2硬盘
所有盘都是2TB容量,用dd_rescue克隆的过程没有出现IO错误。
现在Linux的原盘和克隆盘都没问题,980 Pro的固件也已经更完了,但Windows这边出问题了。
问题描述
我像往常一样从MP600 NVME启动Windows,准备装Samsung Magician给980 Pro更固件,结果发现Windows居然把SATA克隆盘的分区当成了C盘——后来才想到是我的ASRock X570 Pro4主板BIOS里SATA设备比NVME先被识别。
等我反应过来,拔掉克隆盘再启动,直接就BSOD了,报错:
Your PC/Device needs to be repaired
A required device isn't connected or can't be accessed
Error code: 0xc000000e
我用Windows安装介质启动尝试修复,结果也失败:
Startup Repair couldn't repair your PC.
Log file: \System32\Logfiles\Srt\SrtTrail.txt
之后我把SATA克隆盘的内容克隆回原NVME,结果启动还是同样的BSOD。
现在的情况是:
- 插着原NVME和SATA克隆盘启动,系统会优先用克隆盘的C盘
- 拔掉克隆盘,原NVME就报找不到设备的BSOD
我尝试过的操作
- 直接拔掉克隆盘启动原NVME→BSOD
- 使用Windows安装介质的启动修复工具→修复失败
- 从克隆盘克隆回原NVME→依然BSOD
- 在PE的命令提示符里用
diskpart给原NVME的系统分区分配C盘符,再执行修复→没用,系统还是优先认SATA盘
相关日志与系统信息
Startup Repair诊断日志
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.
分区信息(PowerShell输出)
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
更新与后续尝试
后来我尝试重建BCD,结果也失败了:
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修改原NVME的文件系统ID,结果直接出现新的BSOD:
Error Code 0xc0000185 is caused by a corruption of files related to the boot function of a Windows PC.
现在我有点动摇要不要放弃,但还是希望能修复原NVME的启动,毕竟数据都在上面。同时也给大家提个醒:千万不要在不同控制器的硬盘上插着Windows的完整克隆盘启动,系统会直接搞乱原盘的启动配置。
有没有大佬遇到过类似的问题?求指点!
备注:内容来源于stack exchange,提问作者Ярослав Рахматуллин

