中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-02 11:40
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]为何img的软盘镜像文件老是自动改变内容? 查看 1,085 回复 12
楼 主 [求助]为何img的软盘镜像文件老是自动改变内容? 发表于 2008-05-29 12:17 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
我制作了一个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文件一样绝对不会改变原来的内容?
2 发表于 2008-05-29 12:46 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
很简单,因为这两条命令:
FINDRAMD>NUL
IF %RAMDRIVE%#==# SET RAMDRIVE=A:

肯定是第一条命令没有找到内存盘,导致将A:盘当作临时盘。

只要改好了就不存在你说的问题,另外,用Vfloppy或者grub4dos的memdisk或者map --mem方式启动这张软盘映像就不会出现这个问题。当然,取决于映像文件加载的方式,在虚拟机中加载img,相当于在真实机中插入软盘。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
3 发表于 2008-05-29 13:28 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
Climbing,多谢你的解答!
我对dos不了解,不知要怎样才能把它该得最好。你能花点时间帮我改改吗?
万分感谢!
4 发表于 2008-05-29 14:03 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
XMSDSK可以直接指定内存盘的盘符,因此,没有必要使用findramd来查找。

例如:
XMSDSK 5120 Q: /Y>NUL
SET RAMDRIVE=Q:

这样就不会有麻烦了。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
5 发表于 2008-05-29 15:26 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
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
6 发表于 2008-05-29 15:35 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
我制作许多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 ]
7 发表于 2008-05-29 16:06 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
按我的方法怎么会不能启动呢?

问题肯定出在findramd上,你要看一下它为什么找不到你的内存盘。

另外,手工试一下xmsdsk指定盘符,看能不能成功。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
8 发表于 2008-05-29 16:19 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
这是我的那个img文件下载地址:
http://cv005d.mofile.com/7881373155316265/RGlzazEvMTkvMTk4MTc1MDE0OS84Lzg2MjM5MDE1NTcwNjA4OQ../PCDOCTOR.IMG
请你花点时间下来看看是怎么回事?
9 发表于 2008-05-29 18:30 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
无法下载,直接发我QQ邮箱:653668@qq.com
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
10 发表于 2008-05-29 19:40 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
已发送!请查收!
实际上上面那个地址是可以下载的,用鼠标右键点击链接,然后目标另存为就行了!
或者点击下面的链接:http://pickup.mofile.com/cn/index.do
然后输入提取码:1734758524121448
11 发表于 2008-05-30 09:14 ·  中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962
发帖 2,753
注册 2003-04-16 00:00
23年会员
UID 1565
性别 男
来自 河北保定
状态 离线
终于找到原因了,findramd没有问题,是msdos.sys的问题,将你的盘上的msdos.sys修改为下面的样子:

;MS-DOS 7.10 System Configuration File
;(C)Copyright Microsoft Corp 1981-1999


BootGUI=0
DisableLog=1
DoubleBuffer=0
Logo=0
SystemReg=0

;For compatiblity with Windows 9x GUI only:


;windir=.
;winbootdir=.


注意:最后两行前面加上了分号注释掉了,原因就在这里。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
12 发表于 2008-05-30 10:12 ·  中国 广东 云浮 电信
新手上路
积分 18
发帖 8
注册 2007-02-27 12:33
19年会员
UID 80316
性别 男
状态 离线
已解决!万分感谢Climbing!

象你这样热情为新手解答问题的高手不多了!
再次衷心的多谢你!!!
13 发表于 2008-06-18 19:30 ·  中国 广东 肇庆 电信
初级用户
积分 112
发帖 49
注册 2006-10-19 11:04
19年会员
UID 66890
状态 离线
你把下面两行删除就可以了
MD %RAMDRIVE%\TEMP
SET TEMP=%RAMDRIVE%\TEMP
论坛跳转: