Windows 11 UEFI环境下复制VHDX到新SSD分区后原生启动的BootManager故障求助
有没有大佬能帮忙解决一下把VHDX复制到新SSD的新分区后,原生启动时遇到的启动管理器问题啊?
我因为声望不够没法在相关帖子下评论,只好新开个帖子求助。之前我已经成功实现过VHDX原生启动了,但现在换了新SSD,想更新启动管理器就出问题了。
新SSD是磁盘2,装的是精简版Windows 11。我试过各种步骤,但从Windows PE/安装U盘里运行bootrec /fixboot时一直提示Access is denied。
我用robocopy /j(大文件推荐用这个参数)反复复制过VHDX好几次,中间也删过分区重新尝试,但还是没法解决启动问题。
按照微软的官方步骤,第二步需要执行Dism /Apply-Image /ImageFile:install.wim /index:1 /ApplyDir:V:\,但我手头没有install.wim,所以这步没法做。其实我都忘了当初第一次实现原生启动是怎么搞定的,只记得用diskpart转成GPT格式后,才终于能把系统装到新建的VHDX里。
现在新磁盘的状态:我已经清理并重新创建了分区,也重新复制了VHDX,但还是没法启动。目前启动时的所有恢复选项都坏了,自动修复直接失败。我确认新磁盘是GPT格式(虽然在WinPE的diskpart里没找到明确的标识项)。
作为最后手段,我试过复制并更新原本能正常工作的BCD条目——这是唯一能在启动选项里新增条目的方法,但新增的条目根本没法正常启动。我不敢随便尝试破坏性操作,所以至今还没敢重建BCD。
说白了就是:我感觉bcdboot /fixboot应该是我需要的工具,但现在整个启动环境已经乱得没法修复了。
刚搜到了一些针对bcdboot权限问题的步骤,正打算试试,但在正常Windows的管理员CMD里,bootrec根本不被识别,不过\efi\microsoft\boot文件夹是能正常访问的:
cd/d X:\EFI\Microsoft\Boot\(X是你给EFI分区分配的盘符)bootrec/fixbootren BCD BCD.bakbcdboot C:\Windows /l en-us /s x: /f ALL(请根据自己的实际设置修改参数)bootrec /rebuildbcd
但即使在WinPE里运行这些命令,bootrec和bcdboot的问题还是存在。
我还运行了chkdsk,没检测到任何磁盘问题。也试着查看[system]:\efi\microsoft\boot里的启动文件内容,但都是不可读的二进制文件。
现在彻底卡壳了!除了重新格式化SSD并重装系统,我能想到的办法要么是想办法修复DISM(比如找个install.wim,可能需要另一个Windows ISO镜像),要么试试第三方工具比如Paragon。
最后附上diskpart里的磁盘分区信息:
新物理磁盘是Disk0,目前没有恢复分区,怀疑是系统分区有问题导致无法启动:
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 931 GB 675 GB * Partition 1 System 100 MB 1024 KB Partition 2 Primary 256 GB 229 MB
旧SSD是Disk1,原本使用的VHD在它的分区5上:
Disk 1 Online 119 GB 5645 MB * * Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 100 MB 1024 KB Partition 2 Dynamic Reserved 1024 KB 101 MB Partition 3 Reserved 15 MB 102 MB Partition 4 Dynamic Data 69 GB 117 MB Partition 5 Dynamic Data 40 GB 69 GB Partition 6 Recovery 9 GB 109 GB
正在使用的VHD(盘符C:)是Disk3(卷9),它的分区情况:
Partition ### Type Size Offset ------------- ---------------- ------- ------- Partition 1 System 100 MB 1024 KB Partition 2 Reserved 128 MB 101 MB Partition 3 Primary 34 GB 229 MB
备注:内容来源于stack exchange,提问作者Jonny




