标题: [求助]为何img的软盘镜像文件老是自动改变内容?
[打印本页]
作者: sensenw
时间: 2008-5-29 12:17
标题: [求助]为何img的软盘镜像文件老是自动改变内容?
我制作了一个img的可启动软盘镜像文件,
config.sys的内容为:
device=himem.sys /testmem:off
DEVICEHIGH=VIDE-CDD.SYS /D:mscd000
DEVICEHIGH=ASPICD.SYS /D:mscd000
files=60
buffers=30
dos=high,umb
stacks=9,256
lastdrive=z
=======================================================
autoexec.bat的内容为:
@ECHO OFF
IF %CM0%#==C# GOTO RESET
SET EXPAND=YES
SET DIRCMD=/OGN /4
SET PROMPT=$P$G
XMSDSK 5120 /Y>NUL
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=A:
COPY COMMAND.COM %RAMDRIVE%\>NUL
COPY RESTART.COM %RAMDRIVE%\>NUL
SET COMSPEC=%RAMDRIVE%\COMMAND.COM
MD %RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP
PATH=%RAMDRIVE%
LH CTMOUSE
LH MSCDEX.EXE /D:MSCD000
Echo Extracting File, Pleasy Wating ......
EXTRACT /Y /E /L %RAMDRIVE%\Tools\ A:\PCDoctor.cab > NUL
%RAMDRIVE%
CD TOOLS
CALL MENU.BAT
GOTO RESET
:RESET
===========================================================
我在虚拟机中测试这个img文件,可以正常启动,但每次启动后都会在根目录下生成一个temp的文件夹,把它删除了再启动还是会自动生成这个文件夹。问题是我要是把它刻录到cdrom上它能正常启动吗?有什么办法令img的文件象iso文件一样绝对不会改变原来的内容?
作者: Climbing
时间: 2008-5-29 12:46
很简单,因为这两条命令:
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=A:
肯定是第一条命令没有找到内存盘,导致将A:盘当作临时盘。
只要改好了就不存在你说的问题,另外,用Vfloppy或者grub4dos的memdisk或者map --mem方式启动这张软盘映像就不会出现这个问题。当然,取决于映像文件加载的方式,在虚拟机中加载img,相当于在真实机中插入软盘。
作者: sensenw
时间: 2008-5-29 13:28
Climbing,多谢你的解答!
我对dos不了解,不知要怎样才能把它该得最好。你能花点时间帮我改改吗?
万分感谢!
作者: Climbing
时间: 2008-5-29 14:03
XMSDSK可以直接指定内存盘的盘符,因此,没有必要使用findramd来查找。
例如:
XMSDSK 5120 Q: /Y>NUL
SET RAMDRIVE=Q:
这样就不会有麻烦了。
作者: sensenw
时间: 2008-5-29 15:26
Quote: |
Originally posted by Climbing at 2008-5-29 02:03 PM:
XMSDSK可以直接指定内存盘的盘符,因此,没有必要使用findramd来查找。
例如:
XMSDSK 5120 Q: /Y>NUL
SET RAMDRIVE=Q:
这样就不会有麻烦了。 |
|
这样写无法启动。提示说:Invalid drive specification。
我把
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=A:
该为
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=B:
问题还是存在。
内存盘是肯定存在的。
我查过D盘就是内存盘,A盘是img文件。
另外它跟PCDoctor.cab中的MENU.BAT无关。
并且这个img文件启动后的根目录只会生成temp文件夹,tools文件夹是不会生成的。
这是我的另外一个img文件,出现的问题是一样的。
config.sys内容同上。
autoexec.bat内容:
@ECHO OFF
IF %CM0%#==C# GOTO RESET
SET EXPAND=YES
SET DIRCMD=/OGN /4
SET PROMPT=$P$G
XMSDSK 5120 /Y>NUL
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=A:
COPY COMMAND.COM %RAMDRIVE%\>NUL
COPY RESTART.COM %RAMDRIVE%\>NUL
COPY SPEEDSYS.EXE %RAMDRIVE%\>NUL
SET COMSPEC=%RAMDRIVE%\COMMAND.COM
MD %RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP
PATH=%RAMDRIVE%
LH CTMOUSE
LH MSCDEX.EXE /D:MSCD000
PATH=%RAMDRIVE%
%RAMDRIVE%
SPEEDSYS.EXE
GOTO RESET
:RESET
作者: sensenw
时间: 2008-5-29 15:35
我制作许多img文件中,config.sys的内容都是一样的,autoexec.bat内容从@ECHO OFF到PATH=%RAMDRIVE%
都差不多,区别就是copy的文件有些不同。但有些img文件就不会在根目录出现temp文件夹。
io.sys,msdos.sys,command.com等都是一样的。
[
Last edited by sensenw on 2008-5-29 at 03:38 PM ]
作者: Climbing
时间: 2008-5-29 16:06
按我的方法怎么会不能启动呢?
问题肯定出在findramd上,你要看一下它为什么找不到你的内存盘。
另外,手工试一下xmsdsk指定盘符,看能不能成功。
作者: sensenw
时间: 2008-5-29 16:19
这是我的那个img文件下载地址:
http://cv005d.mofile.com/7881373 ... A4OQ../PCDOCTOR.IMG
请你花点时间下来看看是怎么回事?
作者: Climbing
时间: 2008-5-29 18:30
无法下载,直接发我QQ邮箱:
653668@qq.com。
作者: sensenw
时间: 2008-5-29 19:40
已发送!请查收!
实际上上面那个地址是可以下载的,用鼠标右键点击链接,然后目标另存为就行了!
或者点击下面的链接:
http://pickup.mofile.com/cn/index.do
然后输入提取码:1734758524121448
作者: Climbing
时间: 2008-5-30 09:14
终于找到原因了,findramd没有问题,是msdos.sys的问题,将你的盘上的msdos.sys修改为下面的样子:
;MS-DOS 7.10 System Configuration File
;(C)Copyright Microsoft Corp 1981-1999
[Options]
BootGUI=0
DisableLog=1
DoubleBuffer=0
Logo=0
SystemReg=0
;For compatiblity with Windows 9x GUI only:
[Paths]
;windir=.
;winbootdir=.
注意:最后两行前面加上了分号注释掉了,原因就在这里。
作者: sensenw
时间: 2008-5-30 10:12
已解决!万分感谢Climbing!
象你这样热情为新手解答问题的高手不多了!
再次衷心的多谢你!!!
作者: ljb603
时间: 2008-6-18 19:30
你把下面两行删除就可以了
MD %RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP