无忧启动论坛

标题: 在DOS下用LOADSYS和DEVLOAD加载USB驱动后,为什么DOS程序运行出错,新问题:请看13楼 [打印本页]

作者: szl1990    时间: 2009-4-28 20:46
标题: 在DOS下用LOADSYS和DEVLOAD加载USB驱动后,为什么DOS程序运行出错,新问题:请看13楼
在CONFIG里面加载驱动再运行程序就不会出错,只要在AUTOEXEC.BAT里面用LOADSYS和DEVLOAD加载驱动都会出现下图的情况





希望版主不要移动本贴,虽然这是是讨论DOS但是这也是在讨论运行PE前加载USB驱动的问题,

我做了一个30M的IMG,成功用LOADSYS和DEVLOAD成功加载USB驱动后是没有问题的,PE所需的文件也可以全部复制完,但是在运行GRUB的时候却提示错误,跟上图是一样的提示。

还有用 LOADSYS 加载的驱动可以用 /U 来卸载,但是用 DEVLOAD 加载的驱动用什么参数来卸载呢?我也下载过别的 运行PE前加载USB驱动 的一些IMG但是里面用 DEVLOAD 加载驱动启动PE的都没有见卸载的相关参数。

请各位前辈指教一下

CONFIG.SYS
DEVICEHIGH=himem.sys
DOS=HIGH,UMB,AUTO
FCBSHIGH=4,0
FILESHIGH=30
BUFFERSHIGH=30,0
LASTDRIVEHIGH=32
STACKSHIGH=9,256
lastdrive=z


@ECHO On
rem 启动WinPE系统
rem 这个批处理由 神(_喌乄龍 制作,用于 龙行天下 U盘启动维护系统
rem blog:hi.baidu.com/353999772   mail:szl1123@163.com
rem 修改时请保留此信息
tw /np /nm /nw >nul
mouse.exe >nul
path a:\
set UPan=
set GFiles=boot\uboot.SZL
set ldrxpe=boot\pe\ldrxpe
set winpe=boot\pe\winpe.is_
set ntcom=boot\pe\ntcom
set pe=boot\pe\pe
set grub=boot\grub\grub.exe
cls
:MENU_
CLS
call w.bat box (+white on +blue) @autoexec.bat:MENU #2,5 >nul
if errorlevel 100 GOTO MENU_
if "%?%"=="4" goto R
if "%?%"=="3" goto DEVLOAD
if "%?%"=="2" goto NGRUB
if "%?%"=="1" goto LOADSYS
:MENU "启动 WinPE 维护系统   by szl1123"[x]
              龙行天下 U盘启动维护系统
    --------------------------------------------   
           [  &L. LOADSYS驱动USB启动PE  ]
           [  &N. 不加载驱动直接启动PE  ]
           [  &D. DEVLOAD驱动USB启动PE  ]
           [  &R. 重启计算机            ]

               #? 秒后高亮选项自动运行
:DEVLOAD
devload USBASPI.SYS /v /e /norst
devload aspidisk.sys
GOTO :FIND
:LOADSYS
loadsys USBASPI.SYS /v /e /norst
loadsys aspidisk.sys
GOTO :FIND

:FIND
echo.
echo.
echo     正在设定U盘盘符:
if exist z:\%GFiles% set UPan=z:
IF not "%UPan%"=="" GOTO COPY
if exist y:\%GFiles% set UPan=y:
IF not "%UPan%"=="" GOTO COPY
if exist x:\%GFiles% set UPan=x:
IF not "%UPan%"=="" GOTO COPY
if exist w:\%GFiles% set UPan=w:
IF not "%UPan%"=="" GOTO COPY
if exist v:\%GFiles% set UPan=v:
IF not "%UPan%"=="" GOTO COPY
if exist u:\%GFiles% set UPan=u:
IF not "%UPan%"=="" GOTO COPY
if exist t:\%GFiles% set UPan=t:
IF not "%UPan%"=="" GOTO COPY
if exist s:\%GFiles% set UPan=s:
IF not "%UPan%"=="" GOTO COPY
if exist r:\%GFiles% set UPan=r:
IF not "%UPan%"=="" GOTO COPY
if exist q:\%GFiles% set UPan=q:
IF not "%UPan%"=="" GOTO COPY
if exist p:\%GFiles% set UPan=p:
IF not "%UPan%"=="" GOTO COPY
if exist o:\%GFiles% set UPan=o:
IF not "%UPan%"=="" GOTO COPY
if exist n:\%GFiles% set UPan=n:
IF not "%UPan%"=="" GOTO COPY
if exist m:\%GFiles% set UPan=m:
IF not "%UPan%"=="" GOTO COPY
if exist l:\%GFiles% set UPan=l:
IF not "%UPan%"=="" GOTO COPY
if exist k:\%GFiles% set UPan=k:
IF not "%UPan%"=="" GOTO COPY
if exist j:\%GFiles% set UPan=j:
IF not "%UPan%"=="" GOTO COPY
if exist i:\%GFiles% set UPan=i:
IF not "%UPan%"=="" GOTO COPY
if exist h:\%GFiles% set UPan=h:
IF not "%UPan%"=="" GOTO COPY
if exist g:\%GFiles% set UPan=g:
IF not "%UPan%"=="" GOTO COPY
if exist f:\%GFiles% set UPan=f:
IF not "%UPan%"=="" GOTO COPY
if exist e:\%GFiles% set UPan=e:
IF not "%UPan%"=="" GOTO COPY
if exist d:\%GFiles% set UPan=d:
IF not "%UPan%"=="" GOTO COPY
if exist c:\%GFiles% set UPan=c:
IF not "%UPan%"=="" GOTO COPY
if exist c:\%GFiles% set UPan=b:
IF not "%UPan%"=="" GOTO COPY
if exist c:\%GFiles% set UPan=a:
IF not "%UPan%"=="" GOTO COPY
GOTO ERROR
:COPY
md boot >nul
md boot\pe >nul
echo.
echo               U盘盘符是 %upan%
echo.
echo     正在复制文件   :
if not exist %upan%\%grub% goto ERROR_
echo               [ 5-1 ]: grub.exe
copy %upan%\%grub% a:\
if not exist %upan%\%ldrxpe% goto ERROR_
echo               [ 5-2 ]: ldrxpe
copy %upan%\%ldrxpe% a:\%ldrxpe%
if not exist %upan%\%ntcom% goto ERROR_
echo               [ 5-3 ]: ntcom
copy %upan%\%ntcom% a:\%ntcom%
if not exist %upan%\%pe% goto ERROR_
echo               [ 5-4 ]: PE
copy %upan%\%pe% a:\%pe%
if not exist %upan%\%winpe% goto ERROR_
echo               [ 5-5 ]: winpe.is_
copy %upan%\%winpe% a:\%winpe%
echo.
echo     文件复制完毕   :   OK
GOTO GRUB
:GRUB
tw /q
loadsys /u aspidisk.sys
loadsys /u usbaspi.sys
grub.exe --config-file="rootnoverify (fd0);chainloader (fd0)/boot/pe/ldrxpe"
GOTO R
:NGRUB
echo.
echo     正在复制文件   :
if not exist %upan%\%grub% goto ERROR_
echo               grub.exe
copy %upan%\%grub% a:\
echo.
echo     文件复制完毕   :   OK
tw /q >nul
grub.exe --config-file="find --set-root /boot/uboot.SZL;chainloader /boot/pe/ldrxpe" >nul
GOTO R
:ERROR_
call w.bat box (+white on +blue) @autoexec.bat:ERROR #1,5 >nul
if errorlevel 100 goto R
if "%?%"=="1" goto R
:ERROR "全自动恢复系统   by szl1123"[x]
              龙行天下 U盘启动维护系统
    --------------------------------------------   
       错误:文件未找到, #? 秒后重新启动计算机

                     [ &R. 确定 ]
:R
r.com

[ 本帖最后由 szl1990 于 2009-5-8 19:09 编辑 ]
作者: neo4026    时间: 2009-4-28 21:30
龙行天下又见龙行天下
好吧,说正题:
要运行grub,请尽量不要加载别的东西。否则启动不了。
ezboot同理
作者: szl1990    时间: 2009-4-28 22:01
那么运行程序时出现以下错误怎么解决

Memory allocation error

cannot lood command,system hallted

program too big to fit in memory
作者: CWD    时间: 2009-4-28 22:29
单纯针对下DEVLOAD 卸载驱动的问题说说吧。。。
DEVLOAD 没有卸载参数,也没发现专门的卸载程序。。。但是,可以换一种思考方式来卸载它加载的USBASPI.SYS 驱动,方法如下:
在使用DEVLOAD 加载USBASPI.SYS 之前,先执行RI.COM 程序定位内存环境,到了执行GRUB.EXE 启动PE 前,执行RI.COM /CLS 来返回定位的内存环境,从而清除它(刚测试可清除内存中的USBASPI.SYS)。。。OK!
至于RI.COM 是否与GRUB.EXE 存在冲突与否未测。。。RI.COM 附件给你提供咯。。。

另:此批有待完善,最好再多参考些别人的DOS2PE 中的一些参数应用。。。



RI.COM
RI.rar (3.42 KB, 下载次数: 159)
作者: dos时代菜鸟    时间: 2009-4-29 08:16
用umbpci 或者 emm396 开通 umb 支持,再测试。
作者: szl1990    时间: 2009-4-29 12:42
原帖由 dos时代菜鸟 于 2009-4-29 08:16 发表
用umbpci 或者 emm396 开通 umb 支持,再测试。



那么如何开通呢?
作者: CWD    时间: 2009-4-29 12:51
释放进附件,CONFIG.SYS 中 DEVICEHIGH=himem.sys 后面加上 DEVICE=UMBPCI.SYS 。。。OK!

UMBPCI.rar

6.66 KB, 下载次数: 111, 下载积分: 无忧币 -2


作者: laozhao    时间: 2009-4-29 15:30
tw /q
loadsys /u aspidisk.sys
loadsys /u usbaspi.sys


卸载顺序出错,实质上并没有释放内存。

所以运行大程序时,就会出现内存不够的错误。

把“tw /q”放到第3行试试看。
作者: laozhao    时间: 2009-4-29 15:31
就是tw并没有真正释放内存。。。
作者: szl1990    时间: 2009-4-29 19:12
不行

调整顺序后还是同样提示

loadsys /u aspidisk.sys
loadsys /u usbaspi.sys
tw /q
grub.exe --config-file="rootnoverify (fd0);chainloader (fd0)/boot/pe/ldrxpe"
GOTO R

在CONFIG.SYS里面加载驱动就不会有这样的提示

程序可以正常运行

只要用LOADSYS和DEVLOAD加载驱动就会出现这样的提示
作者: szl1990    时间: 2009-4-29 21:00
原帖由 CWD 于 2009-4-29 12:51 发表
释放进附件,CONFIG.SYS 中 DEVICEHIGH=himem.sys 后面加上 DEVICE=UMBPCI.SYS 。。。OK!


在虚拟机里测试了
加载 DEVICE=UMBPCI.SYS 后 不加载驱动直接用 GRUB 引导PE,如下图,这里过之后就黑屏了,什么也没有


作者: laozhao    时间: 2009-5-3 02:17
卸载命令执行后,不要执行grub啊,先用mem命令看看内存使用情况。再不行单步调试嘛,总会找出原因的。

说实在的,loadsys这个东东小毛病挺多的。

最好的方法还是如4楼所说,使用第3方内存清理软件,在批处理开始时加载并监控,然后在运行grub之前,清理它之后的所有驻留程序并释放内存。
作者: szl1990    时间: 2009-5-8 19:07
今天又测试了又发现一个新问题
这不是内存的问题,今天用 【090412-End】VeDe打造之-MaxDOS v7.1 强化版 里面的 USBaspi.sys 驱动U盘驱动是可以成功的,驱动后U盘盘符是Y盘,发现只要访问U盘再运行程序就是提示错误,加载USB驱动成功后不访问U盘运行程序就不会出错。我只复制了个文件到U盘里面,然后运行程序就出错也,没复制之前运行程序是正常的。

希望高手帮忙解决,也希望CWD兄弟关注一下。

我用我的U盘和伙计的TF卡测试结果一样,看来不是U盘的问题。




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