无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7476|回复: 12
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2009-4-28 20:46:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在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 编辑 ]
2#
发表于 2009-4-28 21:30:55 | 只看该作者
龙行天下又见龙行天下
好吧,说正题:
要运行grub,请尽量不要加载别的东西。否则启动不了。
ezboot同理
回复

使用道具 举报

3#
 楼主| 发表于 2009-4-28 22:01:20 | 只看该作者
那么运行程序时出现以下错误怎么解决

Memory allocation error

cannot lood command,system hallted

program too big to fit in memory
回复

使用道具 举报

4#
发表于 2009-4-28 22:29:55 | 只看该作者
单纯针对下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)
回复

使用道具 举报

5#
发表于 2009-4-29 08:16:59 | 只看该作者
用umbpci 或者 emm396 开通 umb 支持,再测试。
回复

使用道具 举报

6#
 楼主| 发表于 2009-4-29 12:42:36 | 只看该作者
原帖由 dos时代菜鸟 于 2009-4-29 08:16 发表
用umbpci 或者 emm396 开通 umb 支持,再测试。



那么如何开通呢?
回复

使用道具 举报

7#
发表于 2009-4-29 12:51:01 | 只看该作者
释放进附件,CONFIG.SYS 中 DEVICEHIGH=himem.sys 后面加上 DEVICE=UMBPCI.SYS 。。。OK!

UMBPCI.rar

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

回复

使用道具 举报

8#
发表于 2009-4-29 15:30:46 | 只看该作者
tw /q
loadsys /u aspidisk.sys
loadsys /u usbaspi.sys


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

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

把“tw /q”放到第3行试试看。
回复

使用道具 举报

9#
发表于 2009-4-29 15:31:48 | 只看该作者
就是tw并没有真正释放内存。。。
回复

使用道具 举报

10#
 楼主| 发表于 2009-4-29 19:12:48 | 只看该作者
不行

调整顺序后还是同样提示

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加载驱动就会出现这样的提示
回复

使用道具 举报

11#
 楼主| 发表于 2009-4-29 21:00:38 | 只看该作者
原帖由 CWD 于 2009-4-29 12:51 发表
释放进附件,CONFIG.SYS 中 DEVICEHIGH=himem.sys 后面加上 DEVICE=UMBPCI.SYS 。。。OK!


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

回复

使用道具 举报

12#
发表于 2009-5-3 02:17:20 | 只看该作者
卸载命令执行后,不要执行grub啊,先用mem命令看看内存使用情况。再不行单步调试嘛,总会找出原因的。

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

最好的方法还是如4楼所说,使用第3方内存清理软件,在批处理开始时加载并监控,然后在运行grub之前,清理它之后的所有驻留程序并释放内存。
回复

使用道具 举报

13#
 楼主| 发表于 2009-5-8 19:07:30 | 只看该作者
今天又测试了又发现一个新问题
这不是内存的问题,今天用 【090412-End】VeDe打造之-MaxDOS v7.1 强化版 里面的 USBaspi.sys 驱动U盘驱动是可以成功的,驱动后U盘盘符是Y盘,发现只要访问U盘再运行程序就是提示错误,加载USB驱动成功后不访问U盘运行程序就不会出错。我只复制了个文件到U盘里面,然后运行程序就出错也,没复制之前运行程序是正常的。

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

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-2-28 01:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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