无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4262|回复: 54

[讨论] BCD多选项引导同一个wim传递参数的一个想法

  [复制链接]
发表于 2022-5-13 02:34:32 来自手机 | 显示全部楼层 |阅读模式
既然BCD是挂载到注册表上的,那BCD0000000里也有对应的选项,比如名称,guid,是否可以判断注册表中那个id被激活状态,来获取当前选项参数?

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

这些方面技术欠缺没法验证,只是瞎想,不知是否可行。
发表于 2022-5-13 02:42:23 | 显示全部楼层
PE下没这个BCD0000000

点评

是精简掉了,还是本身就没有?  详情 回复 发表于 2022-5-13 02:49
回复

使用道具 举报

 楼主| 发表于 2022-5-13 02:42:49 来自手机 | 显示全部楼层
手机打字太麻烦手误比较多

点评

哦  发表于 2022-5-13 04:21
回复

使用道具 举报

 楼主| 发表于 2022-5-13 02:49:20 来自手机 | 显示全部楼层
2012jiashanni 发表于 2022-5-13 02:42
PE下没这个BCD0000000

是精简掉了,还是本身就没有?

点评

本身就没有 我很早就试想过 用bcd传递参数 然后启动一个自写程序来操作 但是发现PE没有这个注册表  详情 回复 发表于 2022-5-13 10:13
回复

使用道具 举报

 楼主| 发表于 2022-5-13 02:50:18 来自手机 | 显示全部楼层
明天电脑上看看,有点不太理解

点评

现在是13号了  发表于 2022-5-13 04:22
回复

使用道具 举报

发表于 2022-5-13 04:06:35 | 显示全部楼层
有想法!
回复

使用道具 举报

发表于 2022-5-13 05:35:57 来自手机 | 显示全部楼层
系统也没有这个注册表,所以这个想法意义不大。

点评

实机系统里确实有。  发表于 2022-5-13 09:30
回复

使用道具 举报

发表于 2022-5-13 06:56:58 来自手机 | 显示全部楼层
id固定为好,特别是双启可通用。

点评

szwp老师有何高见? 我是想通过判断某个参数,来选择pecmd中命令执行方式,比如选择执行理顺盘符等。  详情 回复 发表于 2022-5-13 09:28
回复

使用道具 举报

发表于 2022-5-13 08:28:19 | 显示全部楼层

感谢分享
回复

使用道具 举报

发表于 2022-5-13 09:00:13 | 显示全部楼层
帮顶
回复

使用道具 举报

 楼主| 发表于 2022-5-13 09:26:07 | 显示全部楼层
看了一下,PE里确实没有bcd00000000,是不是在bcd配置文件里关掉了?还是PE系统本身不支持?
回复

使用道具 举报

 楼主| 发表于 2022-5-13 09:28:40 | 显示全部楼层
szwp 发表于 2022-5-13 06:56
id固定为好,特别是双启可通用。

szwp老师有何高见?

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

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430074&extra= 可以参考。 将bcdedit /enum {current} /v的结果放出来看下  详情 回复 发表于 2022-5-13 12:29
回复

使用道具 举报

 楼主| 发表于 2022-5-13 09:42:57 | 显示全部楼层
BCDEdit /bootdebug        /bootdebug 启动选项可启用或禁用当前或指定的 Windows 操作系统启动项目的启动调试

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

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

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

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

使用道具 举报

发表于 2022-5-13 09:48:50 | 显示全部楼层
目前只找到通过boot.sdi读写信息的方法

点评

我刚搜资料也看到了,但感觉这个太麻烦,而且PE启动后的盘符是不是也会不一样?(不是x盘)  发表于 2022-5-13 09:58
回复

使用道具 举报

发表于 2022-5-13 09:59:57 | 显示全部楼层
有个小工具可以写入和读取boot.sdi里的信息,不过我还没用起来。
回复

使用道具 举报

 楼主| 发表于 2022-5-13 10:01:02 | 显示全部楼层
如果能在bcd里面开启注册表传递参数,那就方便太多了。
回复

使用道具 举报

发表于 2022-5-13 10:13:51 | 显示全部楼层
lhc0688 发表于 2022-5-13 02:49
是精简掉了,还是本身就没有?

本身就没有 我很早就试想过 用bcd传递参数 然后启动一个自写程序来操作 但是发现PE没有这个注册表
回复

使用道具 举报

发表于 2022-5-13 11:19:16 | 显示全部楼层
我没有找到用 bcd 传递信息的方法。
目前我只知道可以通过用不同的 boot.sdi 来传递信息。
以前写了一个小工具 sdicmd ,通过修改 boot.sdi 里面镜像的保留扇区来传递信息。
https://github.com/grub4dos/sdicmd
回复

使用道具 举报

发表于 2022-5-13 11:55:14 | 显示全部楼层
本帖最后由 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%


点评

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

使用道具 举报

 楼主| 发表于 2022-5-13 12:02:43 | 显示全部楼层
mdyblog 发表于 2022-5-13 11:55
挖深些。可以的。PE/网启 也通用。
简单点用PECMD2012

命令没看太明白,但感觉意思是确实可以通过注册表传递,我研究下试试,先谢指点!

点评

PECMD2012 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=205402&extra=page%3D1 PECMD HELP MOUN  详情 回复 发表于 2022-5-13 12:03
回复

使用道具 举报

发表于 2022-5-13 12:03:56 | 显示全部楼层
lhc0688 发表于 2022-5-13 12:02
命令没看太明白,但感觉意思是确实可以通过注册表传递,我研究下试试,先谢指点!

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

使用道具 举报

发表于 2022-5-13 12:29:29 | 显示全部楼层
lhc0688 发表于 2022-5-13 09:28
szwp老师有何高见?

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

http://bbs.wuyou.net/forum.php?m ... d=430074&extra=
可以参考。
将bcdedit /enum {current} /v的结果放出来看下

点评

[attachimg]501212[/attachimg] 在PE里这个命令无效,是不是PE里缺少这个参数项?  详情 回复 发表于 2022-5-13 13:06
还是看不太懂: 1、这段程序是在哪里执行?ISO启动时?还是进PE之后?如果启动前,那怎么能执行呢?  详情 回复 发表于 2022-5-13 12:59
回复

使用道具 举报

 楼主| 发表于 2022-5-13 12:59:02 | 显示全部楼层
szwp 发表于 2022-5-13 12:29
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430074&extra=
可以参考。
将bcdedit /enum {curr ...

还是看不太懂:
1、这段程序是在哪里执行?ISO启动时?还是进PE之后?如果启动前,那怎么能执行呢?

点评

同一个wim的多选项引导后运行,比较区别。  详情 回复 发表于 2022-5-13 13:00
回复

使用道具 举报

发表于 2022-5-13 13:00:28 | 显示全部楼层
lhc0688 发表于 2022-5-13 12:59
还是看不太懂:
1、这段程序是在哪里执行?ISO启动时?还是进PE之后?如果启动前,那怎么能执行呢?

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

使用道具 举报

 楼主| 发表于 2022-5-13 13:00:56 | 显示全部楼层
2、获取结果值也是用bcdedit吗?这个在pecmd里也能运行吗?
回复

使用道具 举报

 楼主| 发表于 2022-5-13 13:06:36 | 显示全部楼层
szwp 发表于 2022-5-13 12:29
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430074&extra=
可以参考。
将bcdedit /enum {curr ...

sshot-1.jpg

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

点评

应该是PE里没有挂载BCD,bcdedit命令缺少可读取的【存储项】  发表于 2022-5-13 13:25
可以按id,再决定是否要整理盘符么?  详情 回复 发表于 2022-5-13 13:12
也能看到 启动项名称  发表于 2022-5-13 13:08
实机系统是可以执行,能看到guid  发表于 2022-5-13 13:07
回复

使用道具 举报

发表于 2022-5-13 13:12:15 | 显示全部楼层
lhc0688 发表于 2022-5-13 13:06
在PE里这个命令无效,是不是PE里缺少这个参数项?

可以按id,再决定是否要整理盘符么?

点评

应该可以,不过这样ISO就需要手动编辑固定,不方便通用,不过问题应该也不大。  详情 回复 发表于 2022-5-13 13:19
回复

使用道具 举报

发表于 2022-5-13 13:13:26 | 显示全部楼层
主要看同一个wim的多选项引导后的结果区别。

点评

区别这个应该是能明白的,只是跟注册表取值一样问题:PE中没有挂载bcd,也就是【bcdedit】没有可操作的【存储项】,这样有何办法解决?能解决的话,直接读注册表应该是一样道理了。  发表于 2022-5-13 13:22
回复

使用道具 举报

 楼主| 发表于 2022-5-13 13:19:03 | 显示全部楼层
szwp 发表于 2022-5-13 13:12
可以按id,再决定是否要整理盘符么?

应该可以,不过这样ISO就需要手动编辑固定,不方便通用,不过问题应该也不大。

点评

id固定为好  详情 回复 发表于 2022-5-13 13:20
可以手动统一写成“00000000-0000-0000-00000001”、00000002、00000003  发表于 2022-5-13 13:19
回复

使用道具 举报

发表于 2022-5-13 13:20:35 | 显示全部楼层
lhc0688 发表于 2022-5-13 13:19
应该可以,不过这样ISO就需要手动编辑固定,不方便通用,不过问题应该也不大。

id固定为好

点评

如果能读取id,那应该也能同时读取 Description 值才对。  发表于 2022-5-13 13:30
问题是id也没法读取到啊,跟上面道理一样,这个有什么诀窍?  发表于 2022-5-13 13:29
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-17 05:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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