无忧启动论坛

标题: BCD多选项引导同一个wim传递参数的一个想法 [打印本页]

作者: lhc0688    时间: 2022-5-13 02:34
标题: BCD多选项引导同一个wim传递参数的一个想法
既然BCD是挂载到注册表上的,那BCD0000000里也有对应的选项,比如名称,guid,是否可以判断注册表中那个id被激活状态,来获取当前选项参数?

或者,是否有可能在BCD的每个选项上添加一个公共参数,选择不同选项时赋不同值,然后系统引导启动后,从注册表读取该值。

这些方面技术欠缺没法验证,只是瞎想,不知是否可行。
作者: 2012jiashanni    时间: 2022-5-13 02:42
PE下没这个BCD0000000
作者: lhc0688    时间: 2022-5-13 02:42
手机打字太麻烦手误比较多
作者: lhc0688    时间: 2022-5-13 02:49
2012jiashanni 发表于 2022-5-13 02:42
PE下没这个BCD0000000

是精简掉了,还是本身就没有?
作者: lhc0688    时间: 2022-5-13 02:50
明天电脑上看看,有点不太理解
作者: 481416322    时间: 2022-5-13 04:06
有想法!
作者: 窄口牛    时间: 2022-5-13 05:35
系统也没有这个注册表,所以这个想法意义不大。
作者: szwp    时间: 2022-5-13 06:56
id固定为好,特别是双启可通用。
作者: 9527sss    时间: 2022-5-13 08:28

感谢分享
作者: zxwei    时间: 2022-5-13 09:00
帮顶
作者: lhc0688    时间: 2022-5-13 09:26
看了一下,PE里确实没有bcd00000000,是不是在bcd配置文件里关掉了?还是PE系统本身不支持?
作者: lhc0688    时间: 2022-5-13 09:28
szwp 发表于 2022-5-13 06:56
id固定为好,特别是双启可通用。

szwp老师有何高见?

我是想通过判断某个参数,来选择pecmd中命令执行方式,比如选择执行理顺盘符等。
作者: lhc0688    时间: 2022-5-13 09:42
BCDEdit /bootdebug        /bootdebug 启动选项可启用或禁用当前或指定的 Windows 操作系统启动项目的启动调试

BCDEdit /dbgsettings        /dbgsettings 选项可设置或显示计算机的当前全局调试程序设置。 若要启用或禁用内核调试程序,请使用 BCDEdit /debug 选项。

BCDEdit /debug        /debug 启动选项可启用或禁用与指定的启动项目或当前启动项目关联的 Windows 操作系统的内核调试。

---------------------

这些设置项是否可以开启bcd参数传递呢?

作者: 江南一根葱    时间: 2022-5-13 09:48
目前只找到通过boot.sdi读写信息的方法
作者: 江南一根葱    时间: 2022-5-13 09:59
有个小工具可以写入和读取boot.sdi里的信息,不过我还没用起来。
作者: lhc0688    时间: 2022-5-13 10:01
如果能在bcd里面开启注册表传递参数,那就方便太多了。
作者: 2012jiashanni    时间: 2022-5-13 10:13
lhc0688 发表于 2022-5-13 02:49
是精简掉了,还是本身就没有?

本身就没有 我很早就试想过 用bcd传递参数 然后启动一个自写程序来操作 但是发现PE没有这个注册表
作者: wintoflash    时间: 2022-5-13 11:19
我没有找到用 bcd 传递信息的方法。
目前我只知道可以通过用不同的 boot.sdi 来传递信息。
以前写了一个小工具 sdicmd ,通过修改 boot.sdi 里面镜像的保留扇区来传递信息。
https://github.com/grub4dos/sdicmd
作者: mdyblog    时间: 2022-5-13 11:55
本帖最后由 mdyblog 于 2022-5-13 12:22 编辑

挖深些。可以的。PE/网启 WIM/VHD/普通WIn  WIn2000/2003/XP/WIn7891011 都通用。
简单点用PECMD2012

PECMD  MOUN-udm  setbootcfg  C:\BOOT\BCD001  "值"  ["标签头"]
启动后系统中
//MOUN-udm  getbootcfg [-x[+|a]]  返回名 标签头      //-x[+|a]可[仅|全部]用动态配置   

PECMD  TEAM MOUN-udm  getbootcfg    retv 标签头| MESS %retv%
比如:
PECMD  MOUN-udm  setbootcfg  C:\BOOT\BCD001  "bootid=001"  
PECMD  MOUN-udm  setbootcfg  C:\BOOT\BCD002  "bootid=002"  
启动后系统中
PECMD  TEAM MOUN-udm  getbootcfg    retv bootid=| MESS %retv%



作者: lhc0688    时间: 2022-5-13 12:02
mdyblog 发表于 2022-5-13 11:55
挖深些。可以的。PE/网启 也通用。
简单点用PECMD2012

命令没看太明白,但感觉意思是确实可以通过注册表传递,我研究下试试,先谢指点!
作者: mdyblog    时间: 2022-5-13 12:03
lhc0688 发表于 2022-5-13 12:02
命令没看太明白,但感觉意思是确实可以通过注册表传递,我研究下试试,先谢指点!

PECMD2012  http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205402&extra=page%3D1
PECMD HELP MOUN

作者: szwp    时间: 2022-5-13 12:29
lhc0688 发表于 2022-5-13 09:28
szwp老师有何高见?

我是想通过判断某个参数,来选择pecmd中命令执行方式,比如选择执行理顺盘符等。

http://bbs.wuyou.net/forum.php?m ... d=430074&extra=
可以参考。
将bcdedit /enum {current} /v的结果放出来看下
作者: lhc0688    时间: 2022-5-13 12:59
szwp 发表于 2022-5-13 12:29
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430074&extra=
可以参考。
将bcdedit /enum {curr ...

还是看不太懂:
1、这段程序是在哪里执行?ISO启动时?还是进PE之后?如果启动前,那怎么能执行呢?
作者: szwp    时间: 2022-5-13 13:00
lhc0688 发表于 2022-5-13 12:59
还是看不太懂:
1、这段程序是在哪里执行?ISO启动时?还是进PE之后?如果启动前,那怎么能执行呢?

同一个wim的多选项引导后运行,比较区别。

作者: lhc0688    时间: 2022-5-13 13:00
2、获取结果值也是用bcdedit吗?这个在pecmd里也能运行吗?
作者: lhc0688    时间: 2022-5-13 13:06
szwp 发表于 2022-5-13 12:29
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430074&extra=
可以参考。
将bcdedit /enum {curr ...



在PE里这个命令无效,是不是PE里缺少这个参数项?

作者: szwp    时间: 2022-5-13 13:12
lhc0688 发表于 2022-5-13 13:06
在PE里这个命令无效,是不是PE里缺少这个参数项?

可以按id,再决定是否要整理盘符么?
作者: szwp    时间: 2022-5-13 13:13
主要看同一个wim的多选项引导后的结果区别。
作者: lhc0688    时间: 2022-5-13 13:19
szwp 发表于 2022-5-13 13:12
可以按id,再决定是否要整理盘符么?

应该可以,不过这样ISO就需要手动编辑固定,不方便通用,不过问题应该也不大。
作者: szwp    时间: 2022-5-13 13:20
lhc0688 发表于 2022-5-13 13:19
应该可以,不过这样ISO就需要手动编辑固定,不方便通用,不过问题应该也不大。

id固定为好
作者: szwp    时间: 2022-5-13 13:31
在硬盘上多建几个引导项玩。
作者: lhc0688    时间: 2022-5-13 13:39
PE启动后,为何ISO光驱是不可读的呢?有没办法让光驱变为可读?这样就可以先:bcdedit /store 指定bcd,然后就可以读取数据了吗?

作者: lhc0688    时间: 2022-5-13 13:53
本帖最后由 lhc0688 于 2022-5-13 13:56 编辑



感觉差不多有点眉目了,现在能读取原ISO里bcd参数,但是好像不是动态的,这个有没办法?



作者: hoder    时间: 2022-5-13 13:54
用bootice添加就行了,除了guid不能一样(自己改几个数字),其它可以相同。

作者: lhc0688    时间: 2022-5-13 14:00


作者: lhc0688    时间: 2022-5-13 14:22
我感觉好像是有可能了,只是要怎么操作才能得到传入的值,这个实在是没办法搞通;

如果bcd启动时能用批处理写数据到文件的话,比如【启动参数.txt】,那直接读取也就可以了,不知道该怎么操作;
作者: ddnflier    时间: 2022-5-13 14:25
回复必须要厚道~~~!!
作者: szwp    时间: 2022-5-13 15:31
光盘的BCD是不会因为选择不同引导项而改变的,从里面获取不到{current},还是硬盘PE好玩,想要利用同一wim也可以玩wimboot的vhdpe。
作者: 江南一根葱    时间: 2022-5-13 17:46
都挂载了bcd的话,直接bcdedit /enum不就行了
作者: lhc0688    时间: 2022-5-13 18:11
江南一根葱 发表于 2022-5-13 17:46
都挂载了bcd的话,直接bcdedit /enum不就行了

挂载的这个是死的,好像没用
作者: szwp    时间: 2022-5-13 19:03
没明白为啥要用ISO方式。U盘和硬盘处理方式可以一样的。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3