无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: dos时代菜鸟
打印 上一主题 下一主题

[发布] 确定当前pe 对应的 boot.wim 位置,基本解决

  [复制链接]
31#
 楼主| 发表于 2022-11-4 07:08:39 | 只看该作者
本帖最后由 dos时代菜鸟 于 2022-11-4 07:47 编辑
D_M_GuYing 发表于 2022-11-4 04:37
VM下,测试,光驱启动,我的C盘下,并没有WEPE.WIM,文件在ESP分区里

我也在试图解决这个问题,不过我的 ...

multi(0)disk(0)rdisk(0)partition(1)
不一定就是 第一硬盘 第1分区。

RDPATH=MULTI(0)DISK(0)RDISK(2)PARTITION(4)
也不一定是 第2硬盘 的 第4分区。

这个结果 与 pecmd 的 disk /part 指令引用的 硬盘号 和 分区号 不对等,这个 表达是用 ntdll.dll 得出的。


回复

使用道具 举报

32#
 楼主| 发表于 2022-11-4 07:17:09 | 只看该作者
527104427 发表于 2022-11-3 23:28
原则上是对应的,但注册表的符号链接不按常理出牌,这就不对应了

确实 对不上,如果中间变化了,就 不行了。
回复

使用道具 举报

33#
 楼主| 发表于 2022-11-4 07:19:12 | 只看该作者
D_M_GuYing 发表于 2022-11-4 04:37
VM下,测试,光驱启动,我的C盘下,并没有WEPE.WIM,文件在ESP分区里

我也在试图解决这个问题,不过我的 ...

目前光盘启动 是 会出错,你先试试 boot.wim 在硬盘的情况

点评

实机测试,两块SSD,分别安装PE并启动,无论是否在隐藏分区,我的这段代码都能分配盘符和准确定位, 再多硬盘的情况就没条件测试了 IFEX %temp%\3.INI, { LOAD %temp%\3.INI DISK ,%RDISK%,%PARTITION%  详情 回复 发表于 2022-11-4 08:27
回复

使用道具 举报

34#
发表于 2022-11-4 07:46:00 | 只看该作者
D_M_GuYing 发表于 2022-11-4 05:01
IFEX %wzPath%,!
{
    MOUN !\WEPE\WEPE.INI,X:\a,1

学习了。
回复

使用道具 举报

35#
发表于 2022-11-4 08:27:22 | 只看该作者
dos时代菜鸟 发表于 2022-11-4 07:19
目前光盘启动 是 会出错,你先试试 boot.wim 在硬盘的情况

实机测试,两块SSD,分别安装PE并启动,无论是否在隐藏分区,我的这段代码都能分配盘符和准确定位,
再多硬盘的情况就没条件测试了
IFEX %temp%\3.INI,
{
    LOAD %temp%\3.INI
    DISK ,%RDISK%,%PARTITION%,1
    CALL getNoDrv
    DISK  %nodrv%,%RDISK%,%PARTITION%,1
    ENVI wzPath=%nodrv%\WEPE\WEPE.INI
    IFEX %wzPath%,!
    {

点评

是这样理解么? [attachimg]511305[/attachimg] 记得 脚本区 有一个关于 这个理解的讨论,这样理解 会有偏差的。  详情 回复 发表于 2022-11-4 09:31
回复

使用道具 举报

36#
 楼主| 发表于 2022-11-4 09:07:19 | 只看该作者
又更新了一下,适用 cdrom 的状态了。
最好 先运行 盘符整理,把没有盘符的win可识别分区都按顺序 分配了盘符。

回复

使用道具 举报

37#
 楼主| 发表于 2022-11-4 09:17:46 | 只看该作者





回复

使用道具 举报

38#
 楼主| 发表于 2022-11-4 09:31:11 | 只看该作者
本帖最后由 dos时代菜鸟 于 2022-11-4 09:34 编辑
D_M_GuYing 发表于 2022-11-4 08:27
实机测试,两块SSD,分别安装PE并启动,无论是否在隐藏分区,我的这段代码都能分配盘符和准确定位,
再 ...

是这样理解么? x.7z (454 Bytes, 下载次数: 0)


记得 脚本区 有一个关于 这个理解的讨论,这样理解 会有偏差的。 不是一个 api 生成的 分区表达式,必须 转换下,机械的处理是不可靠的。这样得出的 disk 和 part 不一定真实。


点评

是呀,这就是大家最开始觉得五花八门,不好实现的原因  详情 回复 发表于 2022-11-4 09:43
回复

使用道具 举报

39#
发表于 2022-11-4 09:43:08 | 只看该作者

是呀,这就是大家最开始觉得五花八门,不好实现的原因

点评

用 pecmd 获取 系统未使用盘符,用 Fdrv -idle 指令就可以。  详情 回复 发表于 2022-11-4 10:12
回复

使用道具 举报

40#
 楼主| 发表于 2022-11-4 10:12:08 | 只看该作者
D_M_GuYing 发表于 2022-11-4 09:43
是呀,这就是大家最开始觉得五花八门,不好实现的原因

用 pecmd 获取 系统未使用盘符,用 Fdrv -idle 指令就可以。

点评

哎,没吃透PECMD呀,两行就完事的,要我弄了十几行 FDRV *idle nodrv MSTR s_nodrv=7,2,%nodrv%  详情 回复 发表于 2022-11-4 10:36
哦,哦,谢谢呀,我写的太笨了  详情 回复 发表于 2022-11-4 10:24
回复

使用道具 举报

41#
发表于 2022-11-4 10:24:36 | 只看该作者
dos时代菜鸟 发表于 2022-11-4 10:12
用 pecmd 获取 系统未使用盘符,用 Fdrv -idle 指令就可以。

哦,哦,谢谢呀,我写的太笨了

点评

那个 截取 注册表内容 获取 disk 和 part 的功能,不用 bat ,用 pecmd 也是可以的,看我上面的那个 x.ini 关键是 这样获取的结果 不靠谱。 我是 用之前 脚本版块 5大 的一个pecmd脚本,调用 ntdll.dll 的a  详情 回复 发表于 2022-11-4 10:31
回复

使用道具 举报

42#
 楼主| 发表于 2022-11-4 10:31:24 | 只看该作者
D_M_GuYing 发表于 2022-11-4 10:24
哦,哦,谢谢呀,我写的太笨了

那个 截取  注册表内容 获取  disk 和 part 的功能,不用 bat ,用 pecmd 也是可以的,看我上面的那个 x.ini

关键是 这样获取的结果 不靠谱。

我是 用之前 脚本版块 5大 的一个pecmd脚本,调用 ntdll.dll 的api 把他转换成 可以由 pecmd 的 disk/part 等命令使用的 格式和 编号。然后,才敢用 disk /part 等指令来操作。至少也要转换成 volumn 这样 dos 下可以用的 卷标识。
回复

使用道具 举报

43#
发表于 2022-11-4 10:36:55 | 只看该作者
dos时代菜鸟 发表于 2022-11-4 10:12
用 pecmd 获取 系统未使用盘符,用 Fdrv -idle 指令就可以。

哎,没吃透PECMD呀,两行就完事的,要我弄了十几行

FDRV *idle nodrv
MSTR s_nodrv=7,2,%nodrv%

点评

http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=423468&pid=4212767&fromuid=1198 这种方法 不靠谱,以前研究过  详情 回复 发表于 2022-11-4 12:36
回复

使用道具 举报

44#
 楼主| 发表于 2022-11-4 12:36:02 | 只看该作者
D_M_GuYing 发表于 2022-11-4 10:36
哎,没吃透PECMD呀,两行就完事的,要我弄了十几行

FDRV *idle nodrv

http://bbs.wuyou.net/forum.php?m ... 67&fromuid=1198

这种方法 不靠谱,以前研究过
回复

使用道具 举报

45#
 楼主| 发表于 2022-11-4 14:12:40 | 只看该作者
原来 pecmd 的part list volume 已经进化。
可以 直接引用 这种路径,获取对应分区信息

part -drv list volume  \ArcName\multi(0)disk(0)rdisk(0)partition(1),&part_info
弄了个 基本上能够满足需求的脚本。放在1楼。如此,精准到 boot.wim 所在位置 调取对应外置就成为可能了
回复

使用道具 举报

46#
 楼主| 发表于 2022-11-4 20:18:46 | 只看该作者
本帖最后由 dos时代菜鸟 于 2022-11-4 20:21 编辑

如图,在 pe 的 Wim 文件并列放置一个 配置文档,当 pe 启动时,如果能精准定位到 wim 位置,并确定存在 同名 ini 配置文件,就以这个 ini 文件作为启动脚本调用。

如此,给pe 增加一些 设置 就变得容易多了。
这种精准定位 wim 位置,避免了 用 forx 轮巡搜索可能加载了 别的同名外置或者脚本的情况。






点评

不同的pe有不同的文件夹位置,有不同的配置文件和外置程序位置,精准定位,更适合pe的维护。  详情 回复 发表于 2022-11-4 21:14
回复

使用道具 举报

47#
 楼主| 发表于 2022-11-4 21:14:28 来自手机 | 只看该作者
dos时代菜鸟 发表于 2022-11-4 20:18
如图,在 pe 的 Wim 文件并列放置一个 配置文档,当 pe 启动时,如果能精准定位到 wim 位置,并确定存在 同 ...

不同的pe有不同的文件夹位置,有不同的配置文件和外置程序位置,精准定位,更适合pe的维护。
回复

使用道具 举报

48#
 楼主| 发表于 2022-11-4 21:15:54 来自手机 | 只看该作者
就算多个pe公用一个文件夹,也还有配置文件可以最补充设置调整。
回复

使用道具 举报

49#
发表于 2022-11-5 03:46:41 | 只看该作者
本帖最后由 D_M_GuYing 于 2022-11-5 06:36 编辑

vm虚拟机下测试新版本boot.wim.drv-2.4
测试PE:【22.11.01】大漠孤鹰Win11PE_x64_APFS
光驱启动定位到了,成功!!
硬盘启动(PE安装到了ESP分区)如图:

运行boot.wim.drv-2.4前



运行后,ESP盘符变为C盘




回复

使用道具 举报

50#
发表于 2022-11-5 06:31:24 | 只看该作者
实机(外星人m15r6)下测试新版本boot.wim.drv-2.4
测试PE:【22.11.01】大漠孤鹰Win11PE_x64_APFS

硬盘启动(PE安装到了ESP分区),ESP分区盘符无变动,但结果和VM虚拟机测试的一样

UltraISO,隐藏启动分区模式写入U盘,运行后如图

点评

pecmd2012 是啥版本?估计是还没进化的 pecmd 没有 part -drv list volume \ArcName\%value1%,&part_info 这种获取硬盘分区的写法。 换成 最新版的再看看呢?  详情 回复 发表于 2022-11-5 07:53
回复

使用道具 举报

51#
 楼主| 发表于 2022-11-5 07:53:45 | 只看该作者
本帖最后由 dos时代菜鸟 于 2022-11-5 08:09 编辑
D_M_GuYing 发表于 2022-11-5 06:31
实机(外星人m15r6)下测试新版本boot.wim.drv-2.4
测试PE:【22.11.01】大漠孤鹰Win11PE_x64_APFS

pecmd2012 是啥版本?估计是还没进化的 pecmd 没有

part -drv list volume  \ArcName\%value1%,&part_info

这种获取硬盘分区的写法。

换成 最新版的再看看呢?

多谢测试

特意下载那个pe 测试,确实 因为 pecmd 版本太低导致。



点评

嗯,我也细看了下,应该是版本原因,可大部分PE都是这个版本 开始以为 part list cdrom 没问题part -drv list volume也应该没问题呢  详情 回复 发表于 2022-11-5 08:24
回复

使用道具 举报

52#
发表于 2022-11-5 08:24:02 | 只看该作者
dos时代菜鸟 发表于 2022-11-5 07:53
pecmd2012 是啥版本?估计是还没进化的 pecmd 没有

part -drv list volume  \ArcName\%value1%,&part ...

嗯,我也细看了下,应该是版本原因,可大部分PE都是这个版本
开始以为 part list cdrom 没问题part -drv list volume也应该没问题呢

点评

之前也考虑 这个问题,所以把 调用 api 的 脚本放进来了,后来发现 新版 可以直接用,就把那些代码取消了。 另外 ,pecmd 可以简单创建 vhd ,不用调用 diskpart 。  详情 回复 发表于 2022-11-5 08:33
回复

使用道具 举报

53#
 楼主| 发表于 2022-11-5 08:33:43 | 只看该作者
D_M_GuYing 发表于 2022-11-5 08:24
嗯,我也细看了下,应该是版本原因,可大部分PE都是这个版本
开始以为 part list cdrom 没问题part -drv ...

之前也考虑 这个问题,所以把 调用 api 的 脚本放进来了,后来发现 新版 可以直接用,就把那些代码取消了。

另外 ,pecmd 可以简单创建 vhd ,不用调用 diskpart 。
回复

使用道具 举报

54#
发表于 2022-11-5 08:35:28 | 只看该作者
我下了 PECMD2012.1.88.05.94Stable-220825U测试.7z
不行呀,,能否给我你的PECMD.EXE
回复

使用道具 举报

55#
发表于 2022-11-5 08:37:51 | 只看该作者
应该可以。
回复

使用道具 举报

56#
发表于 2022-11-5 09:13:21 | 只看该作者
{
    MOUN !\WEPE\WEPE.INI,X:\a,1
    FILE X:\a
    FORX !\WEPE\WEPE.INI,fPath,1,ENVI wzPath=%fPath%
}

新版本的PECMD.EXE 要是能实现红色部分,那分配盘符的事情就解决了

{
    MOUN MULTI(0)DISK(0)RDISK(0)PARTITION(1)\WEPE\WEPE.INI,X:\a,1
    FILE X:\a
    FORX !\WEPE\WEPE.INI,fPath,1,ENVI wzPath=%fPath%
}

点评

如果 不提前运行 分区挂载,而是 即得 即挂载,也是可以的。 几条代码就可以。 从 reg 获取路径 找出 对应 硬盘号和分区号。 挂载的事情 你懂的。  详情 回复 发表于 2022-11-5 09:19
回复

使用道具 举报

57#
 楼主| 发表于 2022-11-5 09:19:19 | 只看该作者
D_M_GuYing 发表于 2022-11-5 09:13
{
    MOUN !\WEPE\WEPE.INI,X:\a,1
    FILE X:\a

如果 不提前运行 分区挂载,而是 即得 即挂载,也是可以的。
几条代码就可以。

从 reg 获取路径 找出 对应 硬盘号和分区号。

挂载的事情 你懂的。

点评

嗯,,, 你的PECMD.EXE能附件一个不,我下载了好几个都不行  详情 回复 发表于 2022-11-5 09:25
回复

使用道具 举报

58#
发表于 2022-11-5 09:25:23 | 只看该作者
dos时代菜鸟 发表于 2022-11-5 09:19
如果 不提前运行 分区挂载,而是 即得 即挂载,也是可以的。
几条代码就可以。

嗯,,,
你的PECMD.EXE能附件一个不,我下载了好几个都不行

点评

我通常都是先对所有识别分区分配盘符  详情 回复 发表于 2022-11-5 10:09
[attachimg]511439[/attachimg]  详情 回复 发表于 2022-11-5 10:00
回复

使用道具 举报

59#
 楼主| 发表于 2022-11-5 10:00:47 | 只看该作者
D_M_GuYing 发表于 2022-11-5 09:25
嗯,,,
你的PECMD.EXE能附件一个不,我下载了好几个都不行

x.7z (939.31 KB, 下载次数: 14)



点评

实机测试 硬盘ESP启动, x.cmd加载boot.wim.drv-2.4.ini成功定位 UltraISO,隐藏启动分区模式写入U盘,U启后已经以我之前的方式分配了盘符 x.cmd加载boot.wim.drv-2.4.ini [attachimg]511444[/attachimg]  详情 回复 发表于 2022-11-5 11:12
回复

使用道具 举报

60#
 楼主| 发表于 2022-11-5 10:09:28 来自手机 | 只看该作者
D_M_GuYing 发表于 2022-11-5 09:25
嗯,,,
你的PECMD.EXE能附件一个不,我下载了好几个都不行

我通常都是先对所有识别分区分配盘符

点评

x.cmd 和x.ini放到SYSTEM32文件内,运行x.cmd可定位,可右键加载.INI就不行  详情 回复 发表于 2022-11-5 10:51
这个就有点晕了, 新的PECMD.EXE单独运行,,也就是用x.cmd调用文件夹中的正确定位 可把它放到PE内核启动后,调用SYSTEM32中的就又读不出来了,  详情 回复 发表于 2022-11-5 10:23
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-3 12:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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