中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 01:19
47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » [讨论]发现一个MS-DOS 7.10的bug:不能访问FAT32分区
可打印版本  3,467 / 44
第1楼 Climbing 发表于 2007-07-11 13:17
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
[讨论]发现一个MS-DOS 7.10的bug:不能访问FAT32分区
事情是这样的:我在给硬盘分区时,经常会分出多个主分区(因为我一直喜欢将操作系统独立安装到某个主分区的方式,比多个操作系统共享主分区维护起来要简单),当然,总要保留一个扩展分区用于存放用户的数据(我的习惯是主分区安装操作系统及常用应用软件,而扩展分区的逻辑盘用来保存用户的数据和软件),在这些主分区中,我总是习惯使用FAT32文件系统,其中的某个主分区,我一般是为MS-DOS 7.10保留的,在上面我会放一些常用的DOS工具(例如ghost、pqmagic等)以用于系统维护,然后多分区启动菜单我习惯使用BootStar来管理(当然,现在用grub4dos也应该很不错,不过习惯是很难改变的,我还是一直使用BootStar),但这个分区上的DOS很容易出现启动故障:首先,DOS的引导扇区好像不是通用的,某个主分区只能使用特定的引导扇区(当然,我对DOS的引导扇区并不了解,不知道这样说对不对);其次,如果我在启动主操作系统时不用BootStar将这个DOS分区隐藏,那么可以使用BootStar自由的两个分区的操作系统之间切换,但一旦我在启动主操作系统分区时将DOS主分区隐藏了,再次从BootStar进入这个DOS主分区时就可能遭遇启动失败的情况(DOS的引导过程出现了问题,原因不明),这时候只能通过sys命令重新传送DOS系统才能修复这个启动错误,但这很麻烦。第三,很多时候,DOS不认这个DOS主分区,症状就是在XP下能够看到这个分区的所有内容,但进入DOS后,这个分区却是乱码或者根本不能访问(Invalid Media之类的提示),如果我在DOS下格式化这个分区,DOS可以访问了,但DOS下看到的内容和进入XP后看到的内容却不相同,真是奇哉怪也。

前天,我给同事的一台Sony VAIO笔记本重新安装系统,第一主分区是FAT32,安装XP Pro,第二主分区就是这个DOS分区,剩下的空间是扩展分区,由于我以前不断遭遇到DOS启动失败的情况,因此这次我就想改进这个DOS分区,尝试让它不再遇到启动失败的故障,办法当然就是不再使用不稳定的DOS引导扇区,怎么办呢?将引导扇区换成grub4dos的引导扇区(这个引导扇区是不会变化的),然后在用grubinst安装引导扇区到该DOS分区时使用-b命令指定一个特别的引导文件名(如myldr,也就是一个被我自定义了内置引导菜单的grldr),这样启动过程就变成了:grub4dos引导扇区 -> myldr -> MS-DOS 7.10,当然,myldr的内置菜单中使用这样的方式引导DOS:

title MS-DOS 7.10
find --set-root /myldr
chainloader /io.sys

真奇怪了,这样做能够正常引导起来DOS,但却提示输入command.com的路径,怎么会这样呢?

我突然发现,无论以何种方式引导到DOS状态,都无法看到DOS所在主分区的内容(内容是乱码),而在XP下这个分区的内容却可以正常显示,在grub4dos的命令行方式下用cat命令也可以正常访问这个DOS分区的所有内容,只有DOS自己访问不了它。

不知道经常使用DOS的各位有没有发现过这种问题,或者有没有什么好的解决办法,欢迎大家在这里提出来讨论。
第2楼 shanliang8008 发表于 2007-07-11 14:53
银牌会员 发帖 514 积分 1,148 来自 河北
用XUSBOOT发现这个问题 不过用光盘安装(ISOEMU安装)没有发现过
还有一次用了不知道什么启动管理软件 XP不能安装 不能启动 最后格式硬盘 我估计是语言问题 或者MBR 用新版的 ERD软件估计可以删除 ,那个软件 可能是把自己放在 硬盘的最前端引导区 ,估计用PQ最新版把删除在重装XP可以搞定

[ Last edited by shanliang8008 on 2007-7-11 at 02:58 PM ]
第3楼 Climbing 发表于 2007-07-11 14:56
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
用光盘安装是什么意思?
第4楼 shanliang8008 发表于 2007-07-11 14:59
银牌会员 发帖 514 积分 1,148 来自 河北
Originally posted by Climbing at 2007-7-11 02:56 PM:
用光盘安装是什么意思?

就是主站那个光盘镜象
第5楼 Michael 发表于 2007-07-11 19:14
钻石会员 发帖 3,041 积分 10,056
没看懂.
win9x 全系列对多主分区的支持都很烂.别叫它 bug 了,这是它的本性.
第6楼 Climbing 发表于 2007-07-12 09:08
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
我用多主分区很多年了,没有楼上说得这么严重吧?只是在某些机器上有问题,大部分机器基本上还算是正常的。
第7楼 0451lym 发表于 2007-07-12 10:01
高级用户 发帖 357 积分 760
如果我猜的不错,你的是SATA硬盘!
第8楼 Climbing 发表于 2007-07-12 12:11
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
晕,跟SATA更不沾边了,你是否以为在DOS下访问SATA硬盘还需要加载驱动?

只要BIOS支持,DOS就支持,不需要加载什么驱动。

而且,我用的不是SATA硬盘。
第9楼 Michael 发表于 2007-07-12 19:57
钻石会员 发帖 3,041 积分 10,056
呵呵,我也用主分区多年了,而且现在还一直在用,所以才有那样的话.不过我的dos所在主分区的引导扇是nt osloader.
第10楼 Climbing 发表于 2007-07-13 09:35
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
NT的引导扇区也不是那么稳健(这里想问一下,是不是所有的FAT32主分区的NT引导扇区都是相同的?),我明白你的意思,你是通过NT的启动菜单引导DOS的引导扇区(bootsect.dos)进而引导DOS,在顶楼我已经说明了,不同主分区的DOS的引导扇区是不同的(这个结论我要打个?号,感觉上是这样),这你又怎么处理?

正是因为有上面这些问题,所以我才想到使用grub4dos的引导扇区,因为它的引导扇区不会因为分区的变化而变化,然后通过grub4dos来引导DOS。
第11楼 DOSforever 发表于 2007-07-15 04:55
金牌会员 发帖 2,239 积分 4,639
嘿嘿,没想到小磕的习惯和我差不多,我也是一直使用多个主分区,也习惯用 FAT 作文件系统。不过不都是一样的,一个是 FAT16 的,用于传统的 DOS ;一个是 FAT32 的,用于 Windows 9x,2000,XP;还有一个是 UNIX 分区 。我用的是 System Commander 做多系统引导管理的。由于你是两个 FAT32 主分区,我也没用过 BootStar 和 Grub4DOS,所以你的情况我没遇到过,只能猜测一下。

可能遭遇的启动失败有没有什么提示?可能遭遇。是不是说有时候有,有时候没有?
DOS 能否自身从已标识为隐藏的分区上启动?按理我想应该是可以,因为 MBR 把控制权交给 DBR 后, DBR 是不需要寻找分区的,只要从自己的分区加载 IO.SYS 就可以了。但究竟如何我也没试验过。
其次,既然你把这个分区隐藏了,那么 DOS 下应该就看不到这个分区了,那 sys 命令还认这个主分区的盘符吗?
XP 下可以正常看到 DOS 的隐藏分区,但我只做过 FAT16 的实验,即 16h ,对 FAT32 的如何不得而知,即 1Ch、1Bh 。MS-DOS 7.10 对各个隐藏分区的认识我也不清楚。
所以你说的这些奇怪现象我猜是不是很可能是由于你搞什么隐藏分区引起的,如果你不搞什么隐藏分区会不会不出现这些现象?可能遭遇,是不是搞隐藏分区就有,不搞隐藏分区就没有?
第12楼 Climbing 发表于 2007-07-27 08:55
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
Re 小永:
你所提的问题都是一些常识性的问题,我怎么可能犯这种低级错误:例如让DOS从隐藏分区启动。

其实问题很简单:在有多个FAT32主分区的情况下(XP下这些分区都能正常访问),无论你以任何形式启动DOS 7.10(例如从软盘映像启动),都有可能出现DOS无法访问某个FAT32分区(一般是第一个以后的)的情况,我这里用了都有可能,是指这种情况并不会每台机器都出现,但出现的机率比较大。当前,前提就是这些分区不应该是隐藏的,因为我们都知道,DOS不可能访问隐藏分区。
第13楼 DOSforever 发表于 2007-07-27 17:52
金牌会员 发帖 2,239 积分 4,639
但是从你的描述看我就是这么理解的,而且我也没有试验过

但一旦我在启动主操作系统分区时将DOS主分区隐藏了,再次从BootStar进入这个DOS主分区时就可能遭遇启动失败的情况……
这时候只能通过sys命令重新传送DOS系统才能修复这个启动错误

所以我问“既然你把这个分区隐藏了,那么 DOS 下应该就看不到这个分区了,那 sys 命令还认这个主分区的盘符吗?”
第14楼 Climbing 发表于 2007-07-28 22:54
铂金会员 发帖 2,753 积分 6,962 来自 河北保定
晕,当然在sys之前要把这个分区反隐藏,这是默认的而且必须要做的操作,所以我就没有说出来,大家都是明白人,不用交待的这么详细吧?
第15楼 DOSforever 发表于 2007-07-29 14:34
金牌会员 发帖 2,239 积分 4,639
呵呵,那可不一定我玩计算机到现在的一个经验就是:不能凭想象得出结论。有时候以前的经验并不能保证我们对未经实践事务推断的正确性。就拿隐藏分区和你的多个主分区的识别问题来说吧,如果不是亲眼看到我还不知道 Windows XP 能直接识别隐藏的 FAT16 分区。如果不是你发这个帖子我还以为 MS-DOS 7.10 不存在对多个 FAT32 主分区有识别问题。
所以“偶只喜欢回答那些标题和描述都很清晰的帖子!”呵呵

另外你的
但一旦我在启动主操作系统分区时将DOS主分区隐藏了,再次从BootStar进入这个DOS主分区时就可能遭遇启动失败的情况……

请问这时候——BootStar进入这个DOS主分区时,DOS 主分区是处于隐藏状态还是正常状态?
1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023