无忧启动论坛

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

[分享技术]用 PECMD.EXE 固定U盘的盘符[同原理两方案]

  [复制链接]
跳转到指定楼层
1#
发表于 2008-9-28 14:53:42 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
  WinPE 启动后,在不同的机器里U盘的盘符是不同的,有不少人提出需要固定U盘的盘符,本人经试验用 PECMD.EXE 成功固定U盘的盘符,两方案采用的原理都是一样的,前提是 WinPE 启动后能识别你的U盘,如果 WinPE 启动后无法识别你的U盘(即没有U盘盘符),可以在 INI 文件中用 SHOW 命令给U盘分配盘符,方法说明如下。

方案一:

1、在U盘的某个位置上放置一个 INI 文件,本人图方便,这个 INI 文件名为 "ChangeUSB.INI",
  放在U盘的根目录,INI 文件只需两行(红色为注释)
SUBJ %CurDrv%        `删除原有的U盘的盘符
SHOW R:1,U           `给U盘新分配盘符为U:

2、在 WinPE 的内核配置文件中加一行 LOAD 命令,这行 LOAD 命令建议放在修正USB驱动之后,
  通过 LOAD 命令的前导符"\"自动加载U盘中的 "ChangeUSB.INI" 文件

3、图解说明,第一幅图没有固定U盘的情况,本人的机器里 WinPE 将U盘分配为 I:;
  第二幅图为成功固定U盘盘符的结果和相关文件的内容。

4、本方法适用于 WinPE 启动后能识别U盘的情况,如果 WinPE 启动后不能识别你的U盘,
  可以用 PECMD.EXE 的 SHOW 命令给U盘分配盘符。总之适性较强,配置也不难,
  无需修改注册表(修改注册表的方法可能通用性差),不足之处是U盘要放置一个 INI 文件,
  如果你的U盘已有 INI 文件,可以把这两行合并到已有的 INI 文件中。






方案二:

利用 INIT 命令的U参数。
1、给 WinPE 的内核配置文件 PECMD.INI 的 INIT 命令加上 U 参数;

2、在执行 INIT 命令后的适当位置加入以下两行代码(红色为注释)
TEAM SUBJ %USB%|SHOW R:1,U       `删除原有U盘的盘符,并重新分配盘符为U:
TEAM ENVI $USB=U:|ENVI $USB1=U:  `重新设置与U盘盘符相关的两个环境变量


3、[方案二]的原理与[方案一]是一致的,优点是不用在U盘上放置 INI 文件,得到的结果也与[方案一]相同。





[ 本帖最后由 lxl1638 于 2008-9-29 11:32 编辑 ]
2#
 楼主| 发表于 2008-9-28 17:56:15 | 显示全部楼层
原帖由 wxb 于 2008-9-28 16:03 发表
我是很高兴有更多的人来解决问题的
上面的说有人要郁闷的说的什么话

我仔细考虑了你这个方案,觉得还是没有我的好
我的方法唯一缺点就是一些新手可能不会操作,但是这并不难,稍微学一下就可以会的
从理论 ...


速度不会有明显差别,本人的方法对大多数人来说相对容易,通用性应没有问题,不足之处是不能保证硬盘盘符的连续。

特别是[方案二],不用在U盘上放置 INI 文件,只给内核的 PECMD.INI 文件加上两三行文字即可,可以做到与机子型号、
U盘型号、注册表等无关。

修改注册表的方法可能与机子型号、U盘型号有关,换了机子或U盘,注册表中的那堆数据会不同。

[ 本帖最后由 lxl1638 于 2008-9-28 18:01 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2008-9-28 18:10:58 | 显示全部楼层
原帖由 lyra 于 2008-9-28 18:07 发表


老九的方法兼容性好,做好一次,发给任何人都可以用,缺点却是盘符不连续。WXB的方法可以保证盘符连续,但是每个使用者都要根据自己的U盘来DIY,无法做到一次完成,所有的人都能使用。

两个方法优缺点都 ...


U盘以HDD启动时会分配为C:或D:,其它方式的U盘很少分配到C:或D:的;
其实即使U盘为C:或D:,也可以在WinPE中给硬盘安装系统的。
回复

使用道具 举报

4#
 楼主| 发表于 2008-9-28 18:24:09 | 显示全部楼层
原帖由 wxb 于 2008-9-28 18:18 发表


我的方法用于移动硬盘也已经搞清楚了,也有人成功了,看后面回帖
用于光盘我估计也是可以的,因为我发现光盘那里的键值和U盘形式一样
(没有试验光盘是因为光盘对这个需要不是很迫切)


固定光驱的盘符意义不大,因为在WinPE中给硬盘安装系统时,安装文件、系统引导不会被安装程序写到光驱中的。
另一方面,INIT命令的 C 参数会将光驱的盘符写入环境变量,启动后其它程式可以引用这些环境变量了。
回复

使用道具 举报

5#
 楼主| 发表于 2008-9-28 18:26:44 | 显示全部楼层
原帖由 wxb 于 2008-9-28 18:21 发表


你是说拔下U盘再安装的那个方法,还是还有什么方法?


安装命令 WinNT32.EXE 有自己的参数,可以设置系统安装到那个分区,同时可以设置安装程序使用的临时工作目录。
回复

使用道具 举报

6#
 楼主| 发表于 2008-9-28 19:27:13 | 显示全部楼层
原帖由 CWD 于 2008-9-28 19:15 发表
只要U盘的“VID码”“PID码”一样(一般同样主控的都一样),那么就是通用的。。。所以有这么一个想法:收集大部分主流U控的注册表信息,编辑一个命令识别U控型号来装入对应的U控注册表信息。。。


问题是要修改setupreg.hiv(setupreg.hi_)才有效,修改这个对很多人来说不容易。

在PE启动过程中用命令来识别U控型号可能行不通了,因为启动"识别U控型号的命令"前,系统的注册表信息已经生成,U盘的盘符已分配好了。
回复

使用道具 举报

7#
 楼主| 发表于 2008-9-28 20:23:51 | 显示全部楼层
原帖由 wxb 于 2008-9-28 19:30 发表

我觉得像你这样水平的完全有能力
把我那个方法吸收进U盘安装程序
也就是在U盘安装阶段用我那个思路把注册表变一下


难了,解压IS_或IM_ ==> 挂上IMG或解压ISO ==> 导出硬盘系统注册表的数据(之前要插入U盘) ==> 载入PE系统的HIV ==> 导入注册表数据 ==> 卸载PE系统的HIV ==> 替换PE系统的HIV ==> 卸载IMG或重新生成ISO ==>压缩ISO或IMG,到这里才能执行安装PE的命令。

[ 本帖最后由 lxl1638 于 2008-9-28 20:25 编辑 ]
回复

使用道具 举报

8#
 楼主| 发表于 2008-10-4 15:18:21 | 显示全部楼层
原帖由 yidawpf 于 2008-10-4 13:51 发表
TEAM ENVI W=%WinDir%|ENVI WS=%W%\SYSTEM32|ENVI WSD=%WS%\Drivers
TEAM FILE %W%\TXTSETUP.SI*|FILE %WS%\NTOSKRNL.EX*|FILE %WS%\WIN32K.SYS|PATH #%WS%\CONFIG|FILE %WS%\*.*_|FILE %WSD%\*.SY_
TEAM PAT ...


1、你的PECMD是什么版本?
2、是不是用U盘启动?U盘是不是有多个分区?
3、将后面两行红色的移到启动组试试?
回复

使用道具 举报

9#
 楼主| 发表于 2008-10-4 15:18:48 | 显示全部楼层
原帖由 my366 于 2008-10-4 15:10 发表
U的难度比较高啊,现手头上的U芯片型号:

128M
USB Mass Storage Device(Generic USB Flash Drive USB Device)
PNP设备ID: VID = 1043 PID = 8006
设备序列号: 200505251566
  设备版本: %Z!Y
  设备类 ...


本人的方法与U盘无关。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-6 22:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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