无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 5304|回复: 12
打印 上一主题 下一主题

[讨论] map (fd0) (hd)操作是否存在问题

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-12 10:04:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在使用FBINST制作的USB-ZIP启动盘中,使用map (fd0) (hd) 操作会导致DOS7.1无法启动。

为了验证是否FBINST的问题,又做了下面的试验:

不使用FBINST制作,改用DISKGENIUS制作USB-FDD启动盘,在电脑上启动DOS成功,再运行grub.exe,进入命令行,map (fd0) (hd1) && map --hook
ls (hd1,0)/ 磁盘无法读取。
不使用FBINST制作,改用DISKGENIUS制作USB-FDD启动盘,用bootice在U盘分区引导记录写入grub for dos,拷入grldr,启动进入命令行,map (fd0) (hd1) && map --hook
ls (hd1,0)/ 磁盘无法读取。

map (fd0) (fd1) && map --hook
ls (fd1)/ 均能正常读取。

grldr 是11.04版, 启动DOS运行grub.exe,与U盘分区引导记录写入grub for dos 有区别,运行find 前面情况有fd(0,0),fd(0,1),fd(0,2),fd(0,3),后一情况有fd(0,0),fd(0,3),无fd(0,1),fd(0,2)。

[ 本帖最后由 mygamexxx 于 2011-11-12 12:52 编辑 ]
2#
发表于 2011-11-12 10:33:36 | 只看该作者
map (fd0) (hd)
map --rehook
--------------------------
使映像盘重新排列,可解决问题
回复

使用道具 举报

3#
 楼主| 发表于 2011-11-12 12:37:32 | 只看该作者

回复 #2 zhaohj 的帖子

map --rehook 并不能解决问题,还是一样的情况。
回复

使用道具 举报

4#
发表于 2011-11-12 12:43:19 | 只看该作者

回复 #1 mygamexxx 的帖子

C大和不点大师看到你这个帖子会吐血。
基本的ls命令您都会不会吗?
ls (hd1,0) 磁盘无法读取。


应该是
  1. ls (hd1,0)/
复制代码
如果你是想获得ud区,参见我哪个讨论帖。
c大1028后的grub4dos已经修复了该bug
回复

使用道具 举报

5#
发表于 2011-11-12 12:44:57 | 只看该作者
我早就发现这个问题了,还因为是我自己的原因导致的

我是这样理解的,fd0只有分区引导信息,hd既有mbr+pbr,这两个没有统一,导致失败

这个应该不是bug
回复

使用道具 举报

6#
 楼主| 发表于 2011-11-12 12:50:29 | 只看该作者

回复 #4 hotdll 的帖子

呵呵,只是打字的时候错了,如果命令输入错误提示信息不会是磁盘无法读取。马上纠正。

[ 本帖最后由 mygamexxx 于 2011-11-12 12:53 编辑 ]
回复

使用道具 举报

7#
发表于 2011-11-12 12:52:09 | 只看该作者

回复 #6 mygamexxx 的帖子

建议楼主截图。

我测试正常。

因为F6IMG和zxw的fd2hd两个批处理的代码都是解决u盘识别为fd0的问题的。
大量的反馈测试目前都已经很完美了。

[ 本帖最后由 hotdll 于 2011-11-12 12:54 编辑 ]
回复

使用道具 举报

8#
发表于 2011-11-12 13:52:10 | 只看该作者

回复 #1 mygamexxx 的帖子

1.关于map (fd0) (hd0)之后MSDOS 7.1无法启动的问题,前几天才讨论过(忘了在哪个贴子了,你可以自己找一下).

可能是因为MSDOS 7.1的BUG,你可以换用其它的DOS比如FREEDOS.

2.map (fd0) (hd1)后ls (hd1,0)不可访问,这个很正常,因为(fd0)不带分区表,就地访真也是没有带分区表的.
如果是
map --mem (fd0) (hd1)这个会自动添加分区表,就可以用(hd1,0)来访问了.

你可以使用ls (hd1)试试.
回复

使用道具 举报

9#
 楼主| 发表于 2011-11-12 19:30:20 | 只看该作者
C大正解,但map --mem (fd0) (hd)提示不能运行

ls (hd1)/ 确实是(fd0)的映射,并且其中的DOS7.1无法启动。find列出的磁盘中没有(hd1),用find /io.sys 也无法找到(hd1)中的io.sys文件。只找到(fd0)中的io.sys文件。

不知有没有办法使(fd0),映射成(hd1,0)?按C大的说法应该是如何使映射的(hd1)有分区表和MBR吗?
map的参数大多看不懂如何使用,不明白每个参数会产生什么效果。

以下纯粹是猜测: 联想到以前讨论过的FBINST制作的USB-ZIP启动DOS7.1的问题,会不会是DOS7.1对这些东西(分区表啊、MBR啊、分区引导记录啊)有严格要求,map (fd0) (hd1)后,(fd0,0)连带被映射为(hd1,0),与(fd0)的联系并没有断开,(fd0)被映像文件覆盖后,(hd1,0)与(fd0)的联系,改变了一些(fd0)的特性,导致DOS7.1无法启动。这样在另一个测试中可以解释: 通过映像文件仿真为(fd1),map 换位 (fd0) (fd1) 后,(fd1,0)与(fd1)关联,map (fd1) (hd1)后,(hd1,0)与(fd1)关联,与(fd0)无关联,所以(fd0)中的DOS7.1能顺利启动。

下次再试试freedos的情况。

[ 本帖最后由 mygamexxx 于 2011-11-12 21:26 编辑 ]
回复

使用道具 举报

10#
发表于 2011-11-12 20:39:43 | 只看该作者
菜鸟也有个问题,用Fbinst做了UD启动,然后又在剩余的地方用bootice改了MBR,UD里的东西读不出来了,只剩下可见区的了。
回复

使用道具 举报

11#
发表于 2011-11-13 11:32:38 | 只看该作者
原帖由 mygamexxx 于 2011-11-12 19:30 发表
C大正解,但map --mem (fd0) (hd)提示不能运行

ls (hd1)/ 确实是(fd0)的映射,并且其中的DOS7.1无法启动。find列出的磁盘中没有(hd1),用find /io.sys 也无法找到(hd1)中的io.sys文件。只找到(fd0)中的io.sy ...


map --mem (fd0)+1 (hd)
map --hook
-----------------
但要注意,很多DOS程序,只能在A盘或C大下运行。
所以,你还得再处理。
回复

使用道具 举报

12#
发表于 2011-11-13 11:59:05 | 只看该作者
不知道楼主出于什么原因要做map (fd0) (hd),我一般用这个菜单回避这个问题

  1. title 10. MS-DOS v7.1
  2. if "%@root%"=="(fd0)" && map (fd0) (fd1)
  3. map /BOOT/MSDOS.IMA (fd0) || map --mem /BOOT/MSDOS.IMA (fd0)
  4. map --hook
  5. rootnoverify (fd0)
  6. chainloader (fd0)+1
复制代码

这样既可以访问U盘的分区,又可以访问镜像里面的文件
回复

使用道具 举报

13#
 楼主| 发表于 2011-11-13 12:56:59 | 只看该作者

回复 #12 rockrock99 的帖子

因为碰到一台机器,
map (fd0) (fd1)
map (fd1) (fd0)
map --hook
fd1会无法访问

map --mem (fd0)+1 (hd1)
map --hook
启动成功DOS7.1 , 只是仿真的时候速度就有点慢了(整个U盘读取到内存),呵呵!!
我的电脑512M内存,幸好测试的U盘只有128M。

[ 本帖最后由 mygamexxx 于 2011-11-13 13:05 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 18:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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