无忧启动论坛

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

DOS下加载USB2.0驱动再启动PE (新增全自动判断U盘盘符版本)

[复制链接]
跳转到指定楼层
1#
发表于 2007-10-28 22:47:41 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
版主记:
楼主的构思很巧妙,即从内存虚拟出一个大的(28M)的软盘镜像,将winpe.is_等必备文件拷贝入此镜像,再启动,真是很好的想法,这才是真正的USB2.0启动之一,方式为DOS下加载。
在此提点改进意见:
1. 不使用di1000dd.sys来分配USB盘符,使用通用性最高的aspidisk.sys
2. usbasp.sys使用/v /e /norst参数,这样只加载USB2.0驱动,且不影响USB鼠标和键盘的使用。
3. menu.lst中对于直接支持usb2.0 high speed速度的主板,增加直接启动PE的选项。



4月16日更新
更新里面的usbaspi.sys为2.24版
对于loadsys版本,根据chenall的建议,更改了判断盘符的办法,放弃使用call,只针对U盘/移动硬盘的盘符进行循环,更高效率
对于devload版本,采用对di1000dd.sys添加参数,使其从r盘开始,然后用if从r开始判断,也不再采用call的办法
根据版主的建议,usb驱动也添加了/v /e /norst参数
img容量大小仍未28800KB
也就是说如果你的PE核心镜像大小在26M以上
请用winimage调整下img的容量
不要调太大,够装你的PE核心,然后空出2M左右用来存放DOS启动相关文件等
不然就是浪费内存了



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

大家根据需要自己修改下里面的autoexec.bat中复制pe文件部分和判断u盘盘符判断,grub命令行中引用的文件名称和路径
这几个U盘文件分别是 winnt.xpe/ntdetect.com/peldr/winpe.is_
自己动手的办法
我已经提供了peldr文件
该文件是我从毛桃0418PE中提取出来的,已经修改好了目录结构(具体修改,winnt.xpe>boot\pe.x ; ntdetect.com>boot\ntd.pro )

1. 在U盘或者移动硬盘的启动分区上建立好boot目录,在boot目录下建立好grub目录,在grub目录中放入grub4dos主程序grub.exe
2. 下载附件peldr.rar,解压并把peldr并放在boot目录下
3. 下载附件loadsys1.gz和devload.gz并放在boot目录下
4. 将原来毛桃的winnt.xpe文件改名为pe.x并移动到boot目录下,修改pe.x文件,将其中的winpe.is_更改成boot\winpe.is_(如果是小小强的PE,修改为boot\winpe.im_)根据情况自己修改
5. 将原来的ntdetect.com文件改名为ntd.pro并移动到boot目录下
6. 用grub4dos调用的菜单添加两项[菜单中的find --set-root......根据自己情况可以考虑更改,因为某些U盘用find查找不到文件,但是可以直接用root (设备名称)来定义,例如如果你的U盘被识别为hd0,则可以改成root (hd0,0)如果识别为fd0则改成root (fd0)就可以啦]
title 直接启动winpe(这个菜单可以不加,在原来的菜单下修改下peldr对应的文件名称和路径就可以啦)
find --set-root /boot/peldr
chainloader /boot/peldr
title 先进入dos加载完USB2.0驱动后再进入PE(loadsys装载驱动)
find --set-root /boot/usbdsk.flg
map --mem /boot/loadsys1.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot


title 先进入dos加载完USB2.0驱动后再进入PE(devload装载驱动)
find --set-root /boot/usbdsk.flg
map --mem /boot/devload1.gz (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
boot

loadsys1.gz (197.28 KB, 下载次数: 7482)
devload1.gz (158.99 KB, 下载次数: 6016)

[ 本帖最后由 hytmtet 于 2008-4-16 10:07 PM 编辑 ]

peldr.rar

139.73 KB, 下载次数: 11543, 下载积分: 无忧币 -2

评分

参与人数 1无忧币 +100 收起 理由
chnhhwz + 100 精品文章

查看全部评分

2#
 楼主| 发表于 2007-10-28 23:02:09 | 显示全部楼层
刚才拔掉USB鼠标又测了一下
又提升了5秒的速度
没办法呀

在HP的新机器上
根本不用加载USB驱动,直接用grub4dos启动PELDR
到进入桌面仅仅20秒完成


在我的机器上就只有死慢啦
还好有这招
现在提高到50秒进桌面啦~~哈哈

刚才忘记测在PE下再插USB鼠标能用不(因为用的触摸板,只点了下重启的,没插外接鼠标)应该是没问题的~
回复

使用道具 举报

3#
 楼主| 发表于 2007-10-29 18:58:04 | 显示全部楼层
原帖由 fujianabc 于 2007-10-29 06:52 PM 发表
类似的方法我早就是过了,给搂住一些建议:
在dos下可以用loadsys来加载usb驱动,然后复制u盘中的文件至ramdisk,之后用loadsys卸载usb驱动,在执行grub.exe就不会死机了。


多谢提醒
先谢谢啦
我自己用就不想再改了~
复制到ramdisk是肯定不行的
grub4dos没办法定位ramdisk设备
不过可以定位仿真的软驱
我本来想复制到硬盘的
但是通用性不强,例如有的机器根本没分区的新机器就比较麻烦
后来想到用大容量的img软盘镜像..

loadsys的方式留给后来人研究吧~现在没时间做这个啦
回复

使用道具 举报

4#
 楼主| 发表于 2007-10-29 20:43:55 | 显示全部楼层
原帖由 fujianabc 于 2007-10-29 08:25 PM 发表

我的意思是这个ramdisk不是dos的ramdisk,而是用grub中的map --mem或者memdisk生成的ramdisk,copy当然是在dos下运行的。
另外,grub4dos中还包含了一个hmload.com程序,它可以在dos下生成一个ramdisk,然后 ...



可以考虑
loadsys制作出来的兼容性应该更高
因为在启动grub.exe之前可以卸载USB驱动
减小了grub.exe启动出错的可能

在自己的机器上试了
无论是否卸载usb驱动
都会造成grub.exe直接启动卡死
卡死是由于内置菜单的find --set-root...命令造成的
因为在加载USB驱动之前,U盘被识别为HD0,0/或者FD0之类的
一旦加载这驱动,导致U盘的原有设备HD0,0/FD0无效
导致grub4dos在搜索hd0,0时卡死(我的机器是hd0,0的)
修改内置菜单
或者用grub --config-file="....."
可以解决这个问题
当然用命令行更方便~
回复

使用道具 举报

5#
 楼主| 发表于 2007-10-29 20:45:56 | 显示全部楼层
原帖由 zhaohj 于 2007-10-29 01:09 PM 发表
-----------必须加上duse.exe-------------------------------------------------------------  
怎么没见你的加上?
请提供上述文件打包下载


我用过duse和usbmass
直接在dos下就死机了.....
反倒只用那一个驱动,再加一个分配盘符的驱动就没事
速度是2.0的
我测试过
一个52M的ISO文件
从硬盘copy到U盘上花了12秒左右
回复

使用道具 举报

6#
 楼主| 发表于 2007-10-31 10:47:14 | 显示全部楼层
原帖由 ck 于 2007-10-31 10:41 AM 发表
按照您的方法和步骤,文件名和文件夹名也照搬
前面的程序执行一切顺利
到“if not exist %ypan%:\boot\winpe.is_ goto err”这步,能顺利的把所有文件都copy到虚拟的boot文件夹中,下面的不知道是否执行:
% ...


重新下载附件试试
卸载驱动这次没偷懒
把要卸载的驱动名称也加上去了的
loadsys /u di1000dd.sys
loadsys /u usbaspi.sys

如果还死机
换一个版本的grub.exe试试

因为驱动都卸载了
原则上应该是没问题的
不然就没办法啦
说明grub.exe在你的主板上没办法正常运行
回复

使用道具 举报

7#
 楼主| 发表于 2007-10-31 12:01:48 | 显示全部楼层
既然文件都复制对了
就应该没问题了

你手动输入命令试试
把批处理pe.bat中的
grub.exe --config-file=...
改成
grub.exe --config-file="commandline"
这个应该是可以进到grub4dos的
如果进不到grub4dos
说明grub.exe运行不正常

进入到grub4dos后
手动输入命令
root (fd0)
chainloader (fd0)/boot/peldr
boot

如果这时出现你说的情况
则是由于你自己的peldr文件以及winnt.xpe等配置的问题,这就好解决了,仔细检查peldr,boot\pe.x\boot\ntd.pro这几个文件就行了
用我附件中的peldr替换过了的么?
回复

使用道具 举报

8#
 楼主| 发表于 2007-10-31 13:46:29 | 显示全部楼层
copy确实很快的~
24M的IS_用了2秒左右
在我的机器上
你可以自己修改下autoexec.bat中相关内容
将PELDR/WINNT.XPE/NTDETECT.COM等都用原来的文件来修改
不一定要用我修改的
我是用0418版本中的PELDR修改的

CK不是有自己修改过的PELDR么
好像你的CKBOOT里面也是修改到BOOT目录下的吧
你用你自己的就好啦~
回复

使用道具 举报

9#
 楼主| 发表于 2007-10-31 13:48:40 | 显示全部楼层
总之
PELDR/WINNT.XPE/WINPE.IS_/NTDETECT.COM这四个文件
在U盘上是什么名字,是什么目录结构
copy到仿真的A盘中
仍然保持原来的名字和目录结构就可以了

如果你在U盘上的能运行
COPY到A盘也一样可以运行的
回复

使用道具 举报

10#
 楼主| 发表于 2007-10-31 17:56:34 | 显示全部楼层
嗯..忘记改PELDR为隐藏属性了
U盘上的改了的
硬盘上的没改
发的硬盘上的上来
这就更新一下.....

回楼上
批处理中有判断
如果复制不成功会有提示
并中断操作
不会启动grub4dos的
回复

使用道具 举报

11#
 楼主| 发表于 2007-10-31 18:11:08 | 显示全部楼层
原帖由 xwmkmk 于 2007-10-29 08:12 AM 发表
密切关注楼主的进展,要是能选择性的加载usb2.0驱动就更好了。


不用选择性加载USB2.0驱动啊
本身这个gz文件也是由grub4dos来运行的
如果机器bios中就能提供usb2.0高速访问
则无需运行这个gz文件,直接用grub4dos运行peldr就可以了

否则就选另一个菜单
运行这个gz文件,加载好usb2.0驱动之后再通过grub.exe来运行peldr.......
回复

使用道具 举报

12#
 楼主| 发表于 2007-10-31 21:54:32 | 显示全部楼层
原帖由 123 于 2007-10-31 08:31 PM 发表
下午发现把移动硬盘格成FAT格式后启动超快,加载RAMDISK不到2秒钟!原来FAT32要1分多钟。

啊..这个
差距也太明显了吧
是不是加载到本地硬盘上的is_镜像了.....
回复

使用道具 举报

13#
 楼主| 发表于 2007-11-1 17:12:16 | 显示全部楼层
回楼上
已经新增了全自动判断u盘的版本了```
回复

使用道具 举报

14#
 楼主| 发表于 2007-11-2 07:36:54 | 显示全部楼层
仿真A盘大小就是那个autousb.img的容量大小
自己用winimage调整一下img大小就是啦
我只用maotao的pe
所以autousb.img容量大小在28M左右(毛桃WINPE.IS_ 24.5M+PELDR+NTDETECT.COM+DOS文件+驱动等..自己粗略算一下,然后更改下容量就可以了)
设置大了不是浪费内存么...
你自己改改仿真软盘的容量就是啦

[ 本帖最后由 hytmtet 于 2007-11-2 07:38 AM 编辑 ]
回复

使用道具 举报

15#
 楼主| 发表于 2007-11-2 19:19:09 | 显示全部楼层
原帖由 jzdai0903 于 2007-11-2 04:31 PM 发表
我條大小另存新檔後...

autousb.ima都變成398KB左右...

樓主能說說怎麼製作autousb.ima的流程嗎...

或是樓主能幫忙做一個34MB的autousb.ima...

壓成autousb.gz 應該也只有200多kb...感謝...


仅仅是调整容量的话
IMG文件大小是不会改变的
你的还变大了5KB...
说明文件有碎片
你整理一下另存为就可以啦
压缩后大小仍然为193KB
我已经做好了一个
http://shing.ys168.com
马上传上去
img容量为34560KB
应该够你用了吧....
回复

使用道具 举报

16#
 楼主| 发表于 2007-11-3 11:45:16 | 显示全部楼层
所以说grub.exe没有grldr爽

但是grldr吧,启动时间比较久,主要是指在我这种bios中不加载驱动只能提供1.1速度的机器

我的U盘
用NTLDR+GRLDR的方式启动
光是进入GRUB4DOS
都要37秒...!!!!!
(详细情况, 开机,按BIOS设备选择热键,选择USB-HDD,回车,开始记时,U盘开始闪烁,12秒后,提示TRY HD0,0.....再过13秒后,开始BOOT GRLDR....,再过10秒后,开始出现TURN GATE A20...,总共37秒,总算进入了GRUB4DOS的菜单了,,而且我的菜单是内置在GRLDR的,要是外置,更慢.....得个40秒了..郁闷)

而HP的新机器,也就1、2秒就进入菜单了...晕死我了.....

采用IO.SYS+GRUB.EXE的方式倒是快
也就不到10秒就能启动到GRUB4DOS了
可是在某些机器上启动不了grub.exe
出错....纯DOS.没有加载任何驱动之类的,连HIMEM都没加载的

现在我有1个U盘
1个读卡器+sony的记忆棒

U盘量产成本地盘,用NTLDR+GRLDR
另外分区用IO.SYS+grub.exe

记忆棒用IO.SYS+GRUB.EXE

基本上还是保障了速度合兼容性
回复

使用道具 举报

17#
 楼主| 发表于 2007-11-4 07:11:33 | 显示全部楼层
原帖由 z640919a 于 2007-11-3 06:04 PM 发表
请问LZautousb.gz 和usbdos.gz压缩gz是用什么软件?怎样压缩.gz文件的?我用RAR和7-ZIP压缩的.gz文件怎都不行.

wingzip啊
绿色版软件
网上很多下载地方的
回复

使用道具 举报

18#
 楼主| 发表于 2007-11-5 10:26:55 | 显示全部楼层
原帖由 z640919a 于 2007-11-5 09:03 AM 发表

请问LZ这种情况下怎样具体修改内置菜单或者用grub --config-file="....."?我是用NTIDR + GRIDR(内存768MB),文件copy没有问题.修改 grub --config-file="commandline"有如下错误:program too big to fit in me ...


那你可以试试加入EMM386.EXE
config.sys如下配置

device=himem.sys /testmem:off
device=emm386.exe noems
dos=umb
dos=high


然后可以考虑对一些命令加上lh
例如
lh loadsys usbaspi.sys
lh grub.exe --.......................

多尝试一下吧
回复

使用道具 举报

19#
 楼主| 发表于 2007-11-6 07:06:08 | 显示全部楼层
楼上几位的意见不错
另外发现di1000dd.sys的参数
/d
例如/dL
指定U盘开始盘符为L
估计意思是从L开始分配盘符~
这样手动版本就可以预先定义U盘盘符为L
自动版本就可以从L开始往后循环,大大提高了效率.......
这几天抽空再做了
回复

使用道具 举报

20#
 楼主| 发表于 2007-11-6 12:55:21 | 显示全部楼层
郁闷了点

用loadsys.exe来载入di1000dd.sys的话
添加了/lO
参数
的确也从O开始分配盘符了
但是虽然分配了盘符
访问O时确提示 不能读取驱动器O......
而如果在CONFIG.SYS或者用DEVLOAD.exe来加载
则没有问题
但是想要卸载这一驱动又比较麻烦了

我用CONFIG.SYS在得道盘符后卡了很长时间
而用DEVLOAD.EXE则不会

虽然没有卸载驱动
但是在我的机器上
GRUB.EXE正常运行
回复

使用道具 举报

21#
 楼主| 发表于 2008-4-16 22:14:00 | 显示全部楼层
更新了一下
提醒大家用grub4dos自带的map --mem仿真
如果用syslinux的memdisk来仿真,在加载完USB驱动后可能出现a盘无法写入或者读取错误的情况
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-15 11:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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