中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-24 21:24
中国DOS联盟论坛 » DOS启动盘 & LOGO技术 (启动盘室) » 请高手解决多光驱加载问题~~~谢~~~ 查看 1,585 回复 8
楼 主 请高手解决多光驱加载问题~~~谢~~~ 发表于 2003-06-22 00:00 ·  中国 山东 济南 广电网
中级用户
★★
积分 364
发帖 95
注册 2003-06-15 00:00
23年会员
UID 5250
性别 男
状态 离线
现在的启动盘在一个光驱时都能很好的工作,但是多光驱时就有问题了~~特别是在用启动盘镜像做光盘引导文件时情况更明显~~~

现把所有疑问写出来,请高手做答,在此先行谢过~~~

问题1:
DOS下如何给每个光驱自动分配盘符?(我用FINDCD试了一下,它好像不能给每个光驱自动分配盘符)

问题2:
有人说”用一个工具检查光驱中是否有光盘,如果没有,将光驱盘符换为下一个驱动器”但是这样的话还是每次只能加载一个光驱,其他的还是不能用~~另这样的软件兄不知哪里能找到?

问题3:
另如果每个光驱中都有盘,只有一个可以引导,那它如何识别到是否可引导?

问题4:
不知道USB光驱是否支持引导?如果支持的话,加载USB驱动后的光驱和IDE光驱同时存在时是否会有所冲突?




2 发表于 2003-06-22 00:00 ·  中国 广东 珠海 电信
初级用户
积分 129
发帖 10
注册 2002-11-17 00:00
23年会员
UID 272
性别 男
状态 离线
前面两个问题,只要加载了MSCDEX.EXE都会给每个光驱分配盘符。
第三个问题,哪个光盘中有引导文件,它就从哪个光驱里的光盘引导。
第四个问题,我没有USB光驱,不好作答。





3 发表于 2003-06-22 00:00 ·  中国 山东 济南 广电网
中级用户
★★
积分 364
发帖 95
注册 2003-06-15 00:00
23年会员
UID 5250
性别 男
状态 离线
谢兄了~~~非常感谢~~~

我再试试~~~

另兄能否讲解一下FINDCD的作用和用法~~~

4 发表于 2003-06-22 00:00 ·  加拿大 安大略省 多伦多
系统支持
★★★★★★
“新DOS时代”站长
积分 27,736
发帖 10,521
注册 2002-10-09 12:00
23年会员
UID 9
状态 离线
FINDCD的用法呀,看看FINDCD /?吧。。

例如:FINDCD /S
Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

5 发表于 2005-02-23 00:00 ·  中国 江苏 扬州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
我发现有个棘手的问题没有解决:
这两天做启动光盘,其中有个菜单可启动杀毒盘景象,我想更新病毒库,但是那个景象容纳不下了(2.88的软盘景象,已经够大了...),于是想到了启动后通过AUTOEXEC.BAT运行FINDCD,自动切换到光盘.运行光盘上的程序(包括新病毒库),刻录成光盘后放在第一光驱没问题的,但是放在第二光驱就找不到了,因为FINDCD传递的CDROM变量只是光盘盘符,他好象不能判断出有盘的光驱呀...
试了用ERRORLEVEL的方法,但是总是给出
GERENAL ERROR READING DRIVE X:
ABORT, RETRY, FAILURE ? 停在那里
无法自动化!
不知道有什么参数或程序可判断出有盘的光驱?
最好是判断出正在运行的光盘的盘符..

6 发表于 2005-02-23 00:00 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
试试在Config.sys加一行:shell=command.com /f /p /e:640。这里/F参数允许DOS对“Abort, Retry, Ignore”进行自动应答。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
7 发表于 2005-02-23 00:00 ·  中国 湖南 长沙 电信
高级用户
★★
积分 772
发帖 273
注册 2004-10-23 00:00
21年会员
UID 32861
性别 男
状态 离线
我想了下根据一个小工具写出了一个批处理把复制到AUTOEXEC.BAT中先指定光驱盘符比如是有三个光区.可以判断哪个光驱中有盘哪个没盘(只作参考不知道能,满足你们的需求吗?)@echo off
set EXPAND=YES
SET DIRCMD=/N
set temp=c:\
set tmp=c:\
path=a:\;z:\
set ramdrive=
xmsdsk 10000 z: /y>nul
set ramdrive=z:
copy command.com z:\>nul
z:
md tmp
md temp
a:
set comspec=z:\command.com
set tmp=z:\tmp
set temp=z:\temp:xianshi
set cdrom=
copy a:\tw.exe z:\>nul
z:
tw /n3 /np>nul
cls
echo.
echo.
echo ========================
echo 请稍等,程序正在处理中
echo ========================
echo.
echo.copy a:\mscdex.exe z:\>nul
LH z:\MSCDEX.EXE /D:mscd000 /D:mscd001 /D:mscd002 /L:w >nul
copy a:\cda.exe z:\>nul
z:
cda w:>z:\cdw.txt
find "not" z:\cdw.txt>nul
if not errorlevel 1 goto cdx
set cdrom=w
goto next:cdx
cda x:>z:\cdx.txt
find "not" z:\cdx.txt>nul
if not errorlevel 1 goto cdy
set cdrom=x
goto next:cdy
set cdrom=y:next
copy a:\part.exe z:\>nul
part.exe -y>nul
del part.exe>nul
lh doskey>nul
ctmouse>nul
smartdrv>nul :menu
z:
part.bat
http://www.msfans.net/bbs/
8 发表于 2005-02-24 00:00 ·  中国 江苏 扬州 高邮市 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
多谢JONEPENG的提示! 问题已解决了,关键是/F参数
开始用AUTOEXEC.BAT COMMAND /F /C 开始可以的,也许是这种方式占内存的因素,后来就不起作用了,改用 CONFIG.SYS SHELL=的方式就没问题了,也许是这种方式占内存较少,比较底层吧?
解决了烦人的GERENAL FAILURE READING FROM X: 提示
就好办了!
改写启动景象的AUTOEXEC.BAT 如下:
@ECHO OFF
lh shsucdx /d:dosrav
findcd /s
rem command /f /c
if exist %cdrom1%\rising\ravdos.exe goto cd1
if exist %cdrom2%\rising\ravdos.exe goto cd2
if exist %cdrom3%\rising\ravdos.exe goto cd3
if exist %cdrom4%\rising\ravdos.exe goto cd4
:cd1
%cdrom1%
goto end
:cd2
%cdrom2%
goto end
:cd3
%cdrom3%
goto end
:cd4
%cdrom4%
goto end
:end
cd\rising
lh smartdrv
lh ctmouse
PROMPT $p$g
CLS
ECHO.
ECHO ************************************************************************
ECHO.
ECHO It's starting "Rising AntiVirus Software <2005>" now !
ECHO Copyright by Beijing Rising Tech. Co., Ltd.
ECHO 1998-2005
ECHO.
ECHO ************************************************************************
RAVDOS.EXE

用ERRORLEVEL 好象不行的,因为用了COMMAND /F的参数后,当找不到光盘时,系统会认为正常的,ERRORLEVEL 仍为0.
CONFIG.SYS:
dos=high,umb
device=himem.sys
devicehigh=vide-cdd.sys /d:dosrav
shell=command.com /f /p /e:640
BUFFERS=22,0
FILES=40
把光驱驱动和FINDCD放在景象中
再把瑞星DOS杀毒文件和SMARTDRV CTMOUSE放在光盘RISING目录中就行了!
解决的很完满! 因为不仅能判断出哪个光驱有盘,而且还能找到正在运行的光盘所在的光驱!
重要的文件在下面:
vide-cdd.sys shsucdx.exe findcd.exe ctmouse.exe
打开附件

9 发表于 2005-02-24 00:00 ·  中国 江苏 扬州 电信
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
我遇到了一个EASYBOOT奇怪的BUG!
开始,光盘子目录为RAVDOS,其中的程序是RAVDOS.EXE, 同名,还有VIDE-CDD.SYS /D:RAVDOS 还有 SHSUCDX /D:RAVDOS
以上的名都是RAVDOS, 好了,BUG就来了!
运行后,其他所有的文件都正常,惟独找不到RAVDOS.EXE 这个文件!! (DIR它的上层目录有他的大名的,但是DIR /A RAVDOS.EXE 就没有了!!!当然程序也不能运行的)
你说怪不怪? 后来化了九牛二虎之力终于查出了这个原因!! 名称不同就没问题了!!
论坛跳转: