无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3864|回复: 19
打印 上一主题 下一主题

[求助] BCD文件中对于第二硬盘,第三硬盘的写法到底哪种是正确的?

  [复制链接]
跳转到指定楼层
1#
发表于 2019-8-20 12:16:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chinaren12 于 2019-8-26 10:06 编辑

起因是给一台笔记本加了一个固态,这个固态在系统中被认为是HD1,此笔记本为纯uefi启动

然后我把HD0的esp分区,msr分区,c盘全部克隆到HD1上面。

企图让系统从hd1上引导系统。结果bios里面不认,只能认到hd0上的esp分区,

于是在pe里面修改bcd文件。

发现bcd文件中的启动分区写法和bcd编辑工具不一样。
原版的bcd文件里面对于第一个启动分区的写法是hd0(0,2)

而用easybcd和bootice编辑bcd文件后得到的写法是启动分区=f:或者是启动分区=g:。如果按照原版bcd的文件的写法,第二个硬盘的启动分区应该写成

HD1(1,2)这样的形式。但是easybcd和bootice都不允许这样修改,只能选定某个分区。

这样的指定盘符的写法,想在pe里面修改这个启动分区又不能修改。

那么,我想请问下,这个到底哪种写法是正确的?是HD0(0,2)还是e: ,f:,g:,h:这样的盘符写法?





固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {bootmgr}
                        {73da0478-64e9-11e9-bc12-806e6f6e6963}
                        {2cb82594-63e8-11e9-bc06-806e6f6e6963}
timeout                 0

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {a6f12ef4-89a8-11e9-a960-adc91c04e001}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

固件应用程序(101fffff)
-------------------------------
标识符                  {2cb82594-63e8-11e9-bc06-806e6f6e6963}
description             USB Drive (UEFI)

固件应用程序(101fffff)
-------------------------------
标识符                  {73da0478-64e9-11e9-bc12-806e6f6e6963}
description             Internal Hard Disk or Solid State Disk

Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {a6f12ef6-89a8-11e9-a960-adc91c04e001}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {a6f12ef4-89a8-11e9-a960-adc91c04e001}
nx                      OptIn
bootmenupolicy          Standard

Windows 启动加载器
-------------------
标识符                  {a6f12ef6-89a8-11e9-a960-adc91c04e001}
device                  ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{a6f12ef7-89a8-11e9-a960-adc91c04e001}
path                    \windows\system32\winload.efi
description             Windows Recovery Environment
locale                  zh-CN
inherit                 {bootloadersettings}
displaymessage          Recovery
osdevice                ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{a6f12ef7-89a8-11e9-a960-adc91c04e001}
systemroot              \windows
nx                      OptIn
bootmenupolicy          Standard
winpe                   Yes

从休眠状态恢复
---------------------
标识符                  {a6f12ef4-89a8-11e9-a960-adc91c04e001}
device                  partition=C:
path                    \WINDOWS\system32\winresume.efi
description             Windows Resume Application
locale                  zh-CN
inherit                 {resumeloadersettings}
recoverysequence        {a6f12ef6-89a8-11e9-a960-adc91c04e001}
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
filedevice              partition=C:
filepath                \hiberfil.sys
bootmenupolicy          Standard
debugoptionenabled      No

Windows 内存测试程序
---------------------
标识符                  {memdiag}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\memtest.efi
description             Windows 内存诊断
locale                  zh-CN
inherit                 {globalsettings}
badmemoryaccess         Yes

EMS 设置
------------
标识符                  {emssettings}
bootems                 No

调试器设置
-----------------
标识符                  {dbgsettings}
debugtype               Local

RAM 故障
-----------
标识符                  {badmemory}

全局设置
---------------
标识符                  {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}

启动加载器设置
--------------------
标识符                  {bootloadersettings}
inherit                 {globalsettings}
                        {hypervisorsettings}

虚拟机监控程序设置
-------------------
标识符                  {hypervisorsettings}
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

恢复加载器设置
----------------------
标识符                  {resumeloadersettings}
inherit                 {globalsettings}

设备选项
--------------
标识符                  {a6f12ef7-89a8-11e9-a960-adc91c04e001}
description             Windows Recovery
ramdisksdidevice        partition=\Device\HarddiskVolume4
ramdisksdipath          \Recovery\WindowsRE\boot.sdi

评分

参与人数 1无忧币 +5 收起 理由
qq2348227 + 5

查看全部评分

2#
发表于 2019-8-20 12:21:59 | 只看该作者
hd0应该指磁盘编号,f:g:h:是卷标号

点评

是的,但是一般的bcd编辑工具都是通过指定盘符来确认启动分区的。比如我在pe下面, 指定启动盘为g:盘,但是如果按照物理顺序来,这个g:盘是HD1(1,3),那么在系统刚开始启动的时候,bcd应该无法认识g盘,他只能通  详情 回复 发表于 2019-8-20 12:30
回复

使用道具 举报

3#
 楼主| 发表于 2019-8-20 12:30:58 | 只看该作者
lhc0688 发表于 2019-8-20 12:21
hd0应该指磁盘编号,f:g:h:是卷标号

是的,但是一般的bcd编辑工具都是通过指定盘符来确认启动分区的。比如我在pe下面,
指定启动盘为g:盘,但是如果按照物理顺序来,这个g:盘是HD1(1,3),那么在系统刚开始启动的时候,bcd应该无法认识g盘,他只能通过第2块硬盘的第三个分区是启动分区来识别。

那么在这种情况下,bcd里面应该如何写呢?
回复

使用道具 举报

4#
发表于 2019-8-20 12:35:29 | 只看该作者
楼主你还是先搞清楚BIOS的启动顺序设置。

删除HD0的esp分区。

BIOS设置HD1为第一启动。

点评

无法启动。就是这么简单  详情 回复 发表于 2019-8-20 12:37
回复

使用道具 举报

5#
 楼主| 发表于 2019-8-20 12:37:15 | 只看该作者
心零 发表于 2019-8-20 12:35
楼主你还是先搞清楚BIOS的启动顺序设置。

删除HD0的esp分区。

无法启动。就是这么简单

点评

无法用简单的语言告诉你怎么做·····  详情 回复 发表于 2019-8-20 12:50
回复

使用道具 举报

6#
发表于 2019-8-20 12:50:48 | 只看该作者
chinaren12 发表于 2019-8-20 12:37
无法启动。就是这么简单

无法用简单的语言告诉你怎么做·····

点评

我后面的解决办法就是用hd0上的bcd引导HD1上的启动分区。 我跟你说,我把hd0拆掉都无法引导。后来没办法了,只能修改hd0上的bcd文件,通过hd0引导hd1上的系统。 bios里面锁定为uefi启动,secure boot为锁定。  详情 回复 发表于 2019-8-20 12:53
回复

使用道具 举报

7#
 楼主| 发表于 2019-8-20 12:53:29 | 只看该作者
心零 发表于 2019-8-20 12:50
无法用简单的语言告诉你怎么做·····

我后面的解决办法就是用hd0上的bcd引导HD1上的启动分区。

我跟你说,我把hd0拆掉都无法引导。后来没办法了,只能修改hd0上的bcd文件,通过hd0引导hd1上的系统。

bios里面锁定为uefi启动,secure boot为锁定。

下回有机会你试试,
回复

使用道具 举报

8#
发表于 2019-8-20 14:14:31 | 只看该作者
先用工具安装 再用工具查看 论坛有很多这种工具
VHDX_OneKey_2013
WinNTSetup_v3.9.4.0
BOOTICE

点评

别人的要求就是系统不能动,我直接克隆过去,不过是从hd0改到HD1而已,跟vhd有什么关系呢? 之前的hd0是机械硬盘,现在把系统改到hd1固态硬盘上面。 这跟winntsetup也没关系呀,  详情 回复 发表于 2019-8-20 14:47
回复

使用道具 举报

9#
 楼主| 发表于 2019-8-20 14:47:03 | 只看该作者
liujun2000 发表于 2019-8-20 14:14
先用工具安装 再用工具查看 论坛有很多这种工具
VHDX_OneKey_2013
WinNTSetup_v3.9.4.0

别人的要求就是系统不能动,我直接克隆过去,不过是从hd0改到HD1而已,跟vhd有什么关系呢?

之前的hd0是机械硬盘,现在把系统改到hd1固态硬盘上面。

这跟winntsetup也没关系呀,

回复

使用道具 举报

10#
发表于 2019-8-20 15:04:29 | 只看该作者
本帖最后由 liujun2000 于 2019-8-20 15:08 编辑

操蛋
你不能在 第二硬盘 第一分区 安装一个系统 看看 软件是怎么写的啊
就几分钟时间搞定
比你在这里等回复 要快n倍


uefi启动 e盘启动后 变c盘

4444.png (47.79 KB, 下载次数: 28)

4444.png

5555.png (61.42 KB, 下载次数: 22)

5555.png

点评

这个bcd工具可否分享下,谢谢!  详情 回复 发表于 2020-3-21 15:48
你这个是纯UEFI启动不?  详情 回复 发表于 2019-8-20 21:29
回复

使用道具 举报

11#
 楼主| 发表于 2019-8-20 21:29:13 | 只看该作者
liujun2000 发表于 2019-8-20 15:04
操蛋
你不能在 第二硬盘 第一分区 安装一个系统 看看 软件是怎么写的啊
就几分钟时间搞定

你这个是纯UEFI启动不?
回复

使用道具 举报

12#
发表于 2019-8-21 13:25:17 | 只看该作者
我这是看看,懒的动脑筋了
回复

使用道具 举报

13#
发表于 2019-8-25 22:23:16 | 只看该作者
和楼主有同样的疑惑,用easybcd和bootice查看bcd文件,看到的启动分区是用盘符表示的,但是电脑启动读取BCD文件的时候并没有盘符的概念啊。BCD文件里定位启动分区会是WINDOWS系统分区的UUID吗?怎么证实这一点? 有没有BCD文件的二进制数据结构参考?
另外,我进PE偷偷删除了ESP和WINDOWS系统盘之间的一个分区,改变了WINDOWS系统盘的分区序号,win10系统仍然正常启动。

点评

同理,我也是很困惑。bcd文件里面到底是如何标识启动分区的。  详情 回复 发表于 2019-8-26 09:59
回复

使用道具 举报

14#
 楼主| 发表于 2019-8-26 09:59:52 | 只看该作者
badgateway 发表于 2019-8-25 22:23
和楼主有同样的疑惑,用easybcd和bootice查看bcd文件,看到的启动分区是用盘符表示的,但是电脑启动读取BCD ...

同理,我也是很困惑。bcd文件里面到底是如何标识启动分区的。

点评

每个硬盘或分区都有guid之类的标记 一串数字 用于区分不同的硬盘。注册表里面有,和bcd配套的  详情 回复 发表于 2019-8-26 18:57
回复

使用道具 举报

15#
 楼主| 发表于 2019-8-26 10:07:30 | 只看该作者
固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {bootmgr}
                        {73da0478-64e9-11e9-bc12-806e6f6e6963}
                        {2cb82594-63e8-11e9-bc06-806e6f6e6963}
timeout                 0

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  zh-CN
inherit                 {globalsettings}
default                 {current}
resumeobject            {a6f12ef4-89a8-11e9-a960-adc91c04e001}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

固件应用程序(101fffff)
-------------------------------
标识符                  {2cb82594-63e8-11e9-bc06-806e6f6e6963}
description             USB Drive (UEFI)

固件应用程序(101fffff)
-------------------------------
标识符                  {73da0478-64e9-11e9-bc12-806e6f6e6963}
description             Internal Hard Disk or Solid State Disk

Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \WINDOWS\system32\winload.efi
description             Windows 10
locale                  zh-CN
inherit                 {bootloadersettings}
recoverysequence        {a6f12ef6-89a8-11e9-a960-adc91c04e001}
displaymessageoverride  Recovery
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \WINDOWS
resumeobject            {a6f12ef4-89a8-11e9-a960-adc91c04e001}
nx                      OptIn
bootmenupolicy          Standard

Windows 启动加载器
-------------------
标识符                  {a6f12ef6-89a8-11e9-a960-adc91c04e001}
device                  ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{a6f12ef7-89a8-11e9-a960-adc91c04e001}
path                    \windows\system32\winload.efi
description             Windows Recovery Environment
locale                  zh-CN
inherit                 {bootloadersettings}
displaymessage          Recovery
osdevice                ramdisk=[\Device\HarddiskVolume4]\Recovery\WindowsRE\Winre.wim,{a6f12ef7-89a8-11e9-a960-adc91c04e001}
systemroot              \windows
nx                      OptIn
bootmenupolicy          Standard
winpe                   Yes

从休眠状态恢复
---------------------
标识符                  {a6f12ef4-89a8-11e9-a960-adc91c04e001}
device                  partition=C:
path                    \WINDOWS\system32\winresume.efi
description             Windows Resume Application
locale                  zh-CN
inherit                 {resumeloadersettings}
recoverysequence        {a6f12ef6-89a8-11e9-a960-adc91c04e001}
recoveryenabled         Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
filedevice              partition=C:
filepath                \hiberfil.sys
bootmenupolicy          Standard
debugoptionenabled      No

Windows 内存测试程序
---------------------
标识符                  {memdiag}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\memtest.efi
description             Windows 内存诊断
locale                  zh-CN
inherit                 {globalsettings}
badmemoryaccess         Yes

EMS 设置
------------
标识符                  {emssettings}
bootems                 No

调试器设置
-----------------
标识符                  {dbgsettings}
debugtype               Local

RAM 故障
-----------
标识符                  {badmemory}

全局设置
---------------
标识符                  {globalsettings}
inherit                 {dbgsettings}
                        {emssettings}
                        {badmemory}

启动加载器设置
--------------------
标识符                  {bootloadersettings}
inherit                 {globalsettings}
                        {hypervisorsettings}

虚拟机监控程序设置
-------------------
标识符                  {hypervisorsettings}
hypervisordebugtype     Serial
hypervisordebugport     1
hypervisorbaudrate      115200

恢复加载器设置
----------------------
标识符                  {resumeloadersettings}
inherit                 {globalsettings}

设备选项
--------------
标识符                  {a6f12ef7-89a8-11e9-a960-adc91c04e001}
description             Windows Recovery
ramdisksdidevice        partition=\Device\HarddiskVolume4
ramdisksdipath          \Recovery\WindowsRE\boot.sdi


这是我自己的win10 BCD导出的数据,看上去也不全是C,D,E,F这样的表述,还有 partition=\Device\HarddiskVolume1

回复

使用道具 举报

16#
发表于 2019-8-26 21:16:57 | 只看该作者
cckp 发表于 2019-8-26 18:57
每个硬盘或分区都有guid之类的标记 一串数字 用于区分不同的硬盘。注册表里面有,和bcd配套的

我也猜测通过UUID定位win10系统分区是最合适的,但注册表或BCD编辑器看到的那些UUID既不是win10分区的分区UUID,也不是win10分区的卷UUID。
电脑启动,控制权交给bootmgfw.efi后,到底通过什么定位到win10的系统分区呢???
回复

使用道具 举报

17#
发表于 2019-8-28 14:47:19 | 只看该作者
找遍论坛,没找到关于这个的讨论
回复

使用道具 举报

18#
发表于 2020-2-29 13:28:48 | 只看该作者
学习来了,不知道U盘应该用哪个来表示
回复

使用道具 举报

19#
发表于 2020-3-21 15:48:35 | 只看该作者
liujun2000 发表于 2019-8-20 15:04
操蛋
你不能在 第二硬盘 第一分区 安装一个系统 看看 软件是怎么写的啊
就几分钟时间搞定

这个bcd工具可否分享下,谢谢!

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=57675&extra=page%3D1  详情 回复 发表于 2020-3-21 18:47
回复

使用道具 举报

20#
发表于 2020-3-21 18:47:50 | 只看该作者
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-4-26 00:16

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表