无忧启动论坛

标题: 我找到了在grub IMG盘中加载USBASPI.SYS驱动“效果相对最好”的方法! [打印本页]

作者: wuwuzz    时间: 2008-4-17 18:25
标题: 我找到了在grub IMG盘中加载USBASPI.SYS驱动“效果相对最好”的方法!
用Grub -mem启动IMG虚拟盘,然后在IMG中加载USBASPI.SYS、ASPIDISK.SYS、USBCD.SYS得到广泛应用。例如:支持USBCD的一键GHOST;老主板打开USB 2.0支持加快PE速度等等。本贴的主题不是讨论以上那些,而是对比加载方式,找到效果相对最好的方法。我通过实验,结论是:用devload.com加载! 尽管devload参数不是最多、功能不是最强! 请看下面对比(理论上3种方法效果应该一样,但实际结果不是):

第1种方法,直接在config.sys中
devicehigh=USBASPI.SYS /v /e /norst
devicehigh=ASPIDISK.SYS
devicehigh=USBCD.SYS ...
这种方法容易出的毛病在于,USBASPI.SYS执行完后易卡死

第2种方法,在autoexec.bat中用loadsys.exe加载
loadsys USBASPI.SYS /v /e /norst
loadsys ASPIDISK.SYS
loadsys USBCD.SYS ...
这种方法容易出的毛病在于,不能正确支持量产出的多分区盘! 比如形如ZIP+HDD、CD+HDD的U盘,ASPIDISK.SYS虽然也能成功分配2个盘符,但实际却是指向同一个区。要是2个U盘同时接上(需要4个盘符),情况就更糟。

第3种方法,就是我要推荐的在autoexec.bat中用devload.com加载
devload  USBASPI.SYS /v /e /norst
devload  ASPIDISK.SYS
devload  USBCD.SYS ...
这种方法不仅能够实现前2种方法所要达到的SYS加载效果,更重要的是能够正确支持量产出的多分区盘!即使多个U盘一起接上,盘符分配也是正确的!

========================
限制条件:

无论哪种方法,那些SYS能够正确执行是前提。不在讨论范围的情况有:
1)新主板BIOS直接支持U盘识别、加载USBASPI.SYS死机
2)GRUB与BIOS、SYS文件、loadsys、devload兼容性问题造成的死机

========================
测试环境:
HP D51C台机,DELL INS 640M本本,
U盘为: 群联UP10/UP12主控-宇瞻AH320 2G/4G,惠荣SM321BB主控-朗科U215 2G,
WIN98原版IO.SYS,无忧论坛老九PE,红叶PE
grub.exe 0.4.3 2008-03-14版、2007-12-25版、还有一些更老的版本,不再一一列出
loadsys.exe V1.4i
devload.com V3.20

devload下载地址:
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/util/system/devload/

(本贴内容未经许可,请勿转载、引用、盗用,谢谢合作!)
作者: laozhao    时间: 2008-4-17 18:48
一直在用devload方式,基本上都能正常使用。
作者: m68    时间: 2008-4-17 20:10
支持楼主,总结经验,造福坛友!
作者: zhxd99    时间: 2008-4-17 20:25
看来要学的东西很多啊,不能只下别人的东西了,我要开始学习了
作者: nczw    时间: 2008-4-17 21:52
先来试试看,回来再讨论。
作者: nczw    时间: 2008-4-17 22:00
在autoexec.bat中用devload.com加载了驱动
用什么参数卸载驱动???
是不是和loadsys一样用  /u
作者: hytmtet    时间: 2008-4-17 23:40
原帖由 wuwuzz 于 2008-4-17 06:25 PM 发表
用Grub -mem启动IMG虚拟盘,然后在IMG中加载USBASPI.SYS、ASPIDISK.SYS、USBCD.SYS得到广泛应用。例如:支持USBCD的一键GHOST;老主板打开USB 2.0支持加快PE速度等等。本贴的主题不是讨论以上那些,而是对比加载 ...



4月16日有更新过
去年的时候就已经出了devload的版本
因为忙,没有贡献出来,为自己一直用devload的

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

loadsys在加载di1000dd.sys时如果指定盘符,则可能出现读写数据错误
用devload就不会
作者: tintinbt    时间: 2008-4-18 07:09
下载来看看, 手上有台旧机, 用U盘启动半天进不了WINDOWS, 试试这个能用不
作者: wuwuzz    时间: 2008-4-18 07:41
回#6:devload没有/u卸载选项,这也是我在顶楼所说的参数不多的意思之一;有个/h选项,与devicehigh=效果相同;

回#7hytmtet大侠:多谢指导。我有些火星了,没有及时看到4.16的更新,一直在闷头自己实验哩,直到4月17日另外几台机器的最终结果才出来,我才敢发贴。这就去下载学习。

我目前在思考另外一个问题,那就是:很多人希望的不重新量产能否方便地更换ISO、IMG? 还没有完整的思路和实际实验,只是个很不成熟的想法苗头,供有兴趣的XD参考:既然devload已经能够正确区分多分区盘,那么我们第1区只放io.sys、grub.exe这样最基本的东西,在第2区放ISO或IMG,让grub寻找加载。这样第2区的ISO或IMG就可以方便地更换。

[ 本帖最后由 wuwuzz 于 2008-4-18 07:59 AM 编辑 ]
作者: szcxs    时间: 2008-4-18 07:46
原帖由 wuwuzz 于 2008-4-17 06:25 PM 发表
用Grub -mem启动IMG虚拟盘,然后在IMG中加载USBASPI.SYS、ASPIDISK.SYS、USBCD.SYS得到广泛应用。例如:支持USBCD的一键GHOST;老主板打开USB 2.0支持加快PE速度等等。本贴的主题不是讨论以上那些,而是对比加载 ...


/e 参数 有点疑问,只使用2.0设备,那么是不是加了/e,在旧的USB1.1的机上就没用了呢?
作者: szwp    时间: 2008-4-18 08:27
USB1.1启动PE时间太漫长了,还是启动至DOS,再去调用硬盘上备好的工具吧。
作者: bdw889    时间: 2008-4-18 08:45
好,下载一个试试看先
作者: happywinner    时间: 2008-4-18 09:27
要学的东西很多!
作者: wuwuzz    时间: 2008-4-18 12:00
今天上午,我又认真看了hytmtet大侠4.16更新的GZ文件,重点是autoexec.bat中的U盘盘符判定代码。
由于我倾向原名丢了斑竹的意见,使用aspidisk.sys而不使用DI1000DD.SYS,所以不全盘采用,而打算改造,综合采用2个autoexec.bat中的精华部分。思路是这样的:

1、ASPIDISK.sys成功后,假设U盘有E、F两个区(同时接多个U盘也是一样,无非是盘符更多),会有类似下面的输出信息:
DPB for E: at 0D...
DPB for F: at 0D...

2、然后用下面的代码,把盘符提取出来
tfind "DPB for" | lmod /L* [$3] [-] | lmod set usb=[] >usbdev.bat
call usbdev.bat

这样做U盘盘符范围比较精确,不会扩大搜索

[ 本帖最后由 wuwuzz 于 2008-4-18 12:01 PM 编辑 ]
作者: wwj402    时间: 2008-4-18 12:10
不错,下载了,学习一下!
作者: nczw    时间: 2008-4-18 12:52
我在VM上测试没问题。但在真机上一到COPY完文件就报没内存了呀,如下:
Program too big to fit in memory
memory allocation error
Cannot load COMMAND ,system halted
作者: hytmtet    时间: 2008-4-18 12:56
原帖由 wuwuzz 于 2008-4-18 07:41 AM 发表
回#6:devload没有/u卸载选项,这也是我在顶楼所说的参数不多的意思之一;有个/h选项,与devicehigh=效果相同;

回#7hytmtet大侠:多谢指导。我有些火星了,没有及时看到4.16的更新,一直在闷头自己实验哩, ...



可以
chenall已经做了一个
搜索U盘boot目录下的iso/img/dsk/gz/vfd

用wbat将其列表显示在屏幕上
根据用户选择的iso/img/dsk/gz/vfd文件
用hmload生成虚拟盘
用grub4dos来启动这个虚拟盘上的东东
这个是自动虚拟盘大小的
只是为觉得hmload虚拟磁盘的时候速度不及dos下copy到虚拟的软盘速度来得快
所以我一直就用copy到软盘的方法

你可以去搜搜他的作品
自己改改
就是啦
我已经根据他的做法做了一个copy的版本(chenall原版是hmload的版本)
就不发出来献丑了。呵呵·
不是hmload的版本
作者: hytmtet    时间: 2008-4-18 17:09
我刚刚试了一下
512M杂牌U盘 CBM2090主控
U盘量产结构为   

本地磁盘 490M + 可移动磁盘 16M
本地磁盘 分区类型0XDE
在我的电脑中插入不显示,磁盘管理中可见不可删分区
(做的隐藏分区)
可移动磁盘正常格式化,分区ID正常
在我的电脑中插入可直接显示

文件系统均为FAT



采用aspidisk时
只能识别可移动磁盘的16M空间
不能识别0xDE的固定磁盘空间




然后将本地磁盘的ID改成06
关机重启

能识别出两个分区
C
D

其中C为16M的空间(有点怪了,按理说这个应该是排在后面的)
D为490M空间

DIR C:命令出错
也就是可移动磁盘不可读取

D:读写正常




而如果采用di1000dd.sys
则只能识别第一个分区,也就是本地磁盘的分区
即使是0XDE的ID,也能正常识别
作者: hyoma1218    时间: 2008-4-18 20:22
总结经验,造福坛友!ths!!
作者: wuwuzz    时间: 2008-4-18 22:33
我又做了一次实验,无论是remove+remove(宇瞻U盘),还是fixed+remove(朗科U盘),devload+aspidisk.sys组合均能正常识别,没遇到hytmtet大侠所说的识别异常。我怀疑是不是非正常量产、做隐藏分区造成的问题。

更有趣的是,假设U盘分为E:、F:两个区,如果连续执行2次devload aspidisk.sys则第1次会分配E: F: 、第2次会分配G: H:,其中E和G,F和H完全等价,均能正常访问U盘2区。

[ 本帖最后由 wuwuzz 于 2008-4-18 11:19 PM 编辑 ]
作者: 云水凉风    时间: 2008-4-18 23:17
谢谢楼主,咱收藏了。
作者: mynba98    时间: 2008-4-19 11:10
下载来试试,谢谢!!不知道能不能成功
作者: 从此消失    时间: 2009-7-14 15:12
继续这个话题问下下,我的是UT163的U盘,4G量产两个区(两个全是可移动盘,前一个启动,后一个设为只读,里面放了部分系统软件,两个分区基本大小相同),
在部分电脑上扫描到设备后提示ERROR:USB DEVICE NOT FOUND
(还有一个3s6677的2G盘,在这台电脑上也不能被正确识别,和上面的提示一样)
电脑配置:AMD5200 的U. N6100的桥

还有就是在另外一台电脑会卡死在ghost(用那个2G盘就没事,可以正常使用)
PD930的U,pt890的桥

能成功启动并识别,并且可以ghost的电脑,p4m800,g31,945都是intel系列

忘说了,用的是devload usbaspi.sys /e /v /norst,usbaspi用的是2.27
后来又在前一台电脑上用2.07版的usbaspi.sys试了试,能认上前一个盘,后一个还是认不上
大家看看

[ 本帖最后由 从此消失 于 2009-7-14 16:35 编辑 ]
作者: hypol    时间: 2011-10-9 16:58
强帖留名,学习学习~~ 这里高手真是多




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