无忧启动论坛

标题: map fd0的奇怪问题 [打印本页]

作者: james168    时间: 2023-1-29 13:28
标题: map fd0的奇怪问题
本帖最后由 james168 于 2023-1-29 13:28 编辑

电脑是:HP Pavilion x360 - 13-u121tu
改成Win7系统后,想用Ghost备份下来,结果以前能用的那个gost.ima这次不正常了。 在A盘里没有ghost.exe文件。
菜单如下:
find --set-root --ignore-floppies /images/ghost.ima
  map --mem /images/ghost.ima (fd0)
  map --hook
  chainloader (fd0)+1
  rootnoverify (fd0)

然后开始改一下软盘格式,用winimage新建一个4.32M的软盘,先用DOS6.22的启动扇区,出现以下错误:



改成 WinXP 的启动扇区,出现以下错误:


最后改成Win98的,又和之前差不多,一部分文件没有:


换成2.88M的软盘格式也差不多。
grldr用了最新的和旧的都一样。

这个是由于电脑的BIOS引起的吗?还是其他的什么问题?





作者: 不点    时间: 2023-1-29 14:24
这是 n 年前的老问题了,您还在受这种折磨,太惨!

winimage 是个有毛病的软件,不可以使用!

换成别的工具软件,来制作您的 img,就 OK 了。我比较信赖的软件是 imdisk。把您的 img 重新让 imdisk 打开,挂为虚拟软驱,然后格式化这个虚拟软驱,然后把您喜欢的引导代码写到软驱的引导区,然后拷入您的其他文件。最后卸载虚拟软驱。这样,您的 img 文件就彻底改造好了,您就彻底摆脱 winimage 对您的虐待了。



作者: conlin888    时间: 2023-1-29 14:38
使用ultraiso制作软盘镜像的飘过...
作者: 2011yaya2007777    时间: 2023-1-29 14:51
很奇怪,执行第二次dir就出错!按不点说的话试一试。也可试一试3#的软件。菜单里这两句对调一下。chainloader (fd0)+1   rootnoverify (fd0)
作者: james168    时间: 2023-1-29 15:56
2011yaya2007777 发表于 2023-1-29 14:51
很奇怪,执行第二次dir就出错!按不点说的话试一试。也可试一试3#的软件。菜单里这两句对调一下。chainload ...

第一次也出错了。 只有三个文件
作者: james168    时间: 2023-1-29 15:56
不点 发表于 2023-1-29 14:24
这是 n 年前的老问题了,您还在受这种折磨,太惨!

winimage 是个有毛病的软件,不可以使用!

感谢,我再试试看。
作者: james168    时间: 2023-1-29 15:57
主要是这个ima是2013年搞的,一直都没问题,就没什么去改了。
作者: james168    时间: 2023-1-29 16:02
可能还是电脑的问题,在autoexec里不加载smartdrv就正常了。
作者: 不点    时间: 2023-1-29 18:38
本帖最后由 不点 于 2023-1-29 18:39 编辑
james168 发表于 2023-1-29 15:56
第一次也出错了。 只有三个文件


我感觉,原因是您这个 img 本身就是坏的、错误的,所以它才出现稀奇古怪的问题。

第一次列文件时,列出 3 个。列文件的过程,会导致文件分配表被毁掉,结果,第二次列文件时,文件全没了!

这原因就是,winimage 破坏了 FAT 文件系统结构,导致 DOS 彻底失常!

你从网上直接下载 win98se 的标准启动软盘(winme 的也行),试试看,不要用 winimage 去更改任何东西。

只要用 winimage 碰一下,就坏菜了。

作者: james168    时间: 2023-1-29 22:14
本帖最后由 james168 于 2023-1-29 22:16 编辑
不点 发表于 2023-1-29 18:38
我感觉,原因是您这个 img 本身就是坏的、错误的,所以它才出现稀奇古怪的问题。

第一次列文件时, ...

我用回最初的ima文件(这个ima是winimage不能修改启动扇区的),用imdisk挂为软盘,就修改autoexec.bat去掉smartdrv,就没问题了。 然后用了一个winimage做的软盘,也是可以的。 只要不加载smartdrv就都可以。

可能是这个电脑不兼容smartdrv吧。
作者: 不点    时间: 2023-1-30 00:23
本帖最后由 不点 于 2023-1-30 01:35 编辑
james168 发表于 2023-1-29 22:14
我用回最初的ima文件(这个ima是winimage不能修改启动扇区的),用imdisk挂为软盘,就修改autoexec.bat去 ...

能否上传您的未经 winimage 改动的 ima 文件?或者提供一个下载地址?我想试试看,究竟是不是 smartdrv 导致的问题。以前从未有人报告,说 smartdrv 存在兼容性问题。

您也可以告知,smartdrv 在其他电脑上是否有同样的问题。

我怀疑你的这个 “原始” 的 ima 文件本身,很可能就是别人经过 winimage 改造过的,它里面的某些文件,已经是错误的了,所以才出现不正常。

另外,您能否试试,微软原版 win98 或 winme 启动软盘,看看 smartdrv 在这台电脑上的运行情况是否正常?它是 1.44M 的标准软盘,只是用来测试 smartdrv 而已。如果运行正常,那就不能说是 smartdrv 的 “兼容性” 问题了。


在英文网站中,找到了一个 win98 原版启动软盘的下载地址:

https://winworldpc.com/product/microsoft-windows-boot-disk/98-se

通常国外英文网站提供的信息是比较可靠的。国内提供的下载,都不敢说是否已经做了手脚。

smartdrv 不兼容新电脑,这种可能性有没有?当然也是有可能的。新电脑不支持 DOS 都是有可能的,更不用说一个 smartdrv 了。

不过,网上搜不到 smartdrv 运行失常的报告。因此,暂时认为,smartdrv 不存在兼容性问题。所以,我就把注意力放在您的操作过程中了,怀疑是您的 ima 文件中的错误造成的。因为微软的软件,通常是不会出现 “兼容性” 问题的。

作者: james168    时间: 2023-1-30 15:29
本帖最后由 james168 于 2023-1-30 15:34 编辑
不点 发表于 2023-1-30 00:23
能否上传您的未经 winimage 改动的 ima 文件?或者提供一个下载地址?我想试试看,究竟是不是 smartdrv  ...

能私信发下你的eMail地址我吗。 我发那个原始的文件给你。
这个ima在其他电脑上都没有问题, 且不是正规的大小。 但就是这部电脑出问题了。
我也搞不清楚原由在哪里。反正就是不加载smartdrv都是没问题的,也不知道是因为是map内存的问题,还是smartdrv本身的问题。
这个电脑在我这里还有几天。 过几天就还回去了。

我下一个你说的那个win98 原版启动软盘试试看。


作者: 不点    时间: 2023-1-30 15:46
本帖最后由 不点 于 2023-1-30 15:49 编辑
james168 发表于 2023-1-30 15:29
能私信发下你的eMail地址我吗。 我发那个原始的文件给你。
这个ima在其他电脑上都没有问题, 且不是正规 ...

你用 win98 标准软盘试验就行了,无需把 ima 文件发给我。我主要想看看,smartdrv 到底兼容不兼容你这台电脑。

既然你提到 map --mem 可能与 smartdrv 有冲突,那你就试试,去掉 --mem,看看是否正常了。

作者: james168    时间: 2023-1-30 15:54
本帖最后由 james168 于 2023-1-30 15:58 编辑
不点 发表于 2023-1-30 15:46
你用 win98 标准软盘试验就行了,无需把 ima 文件发给我。我主要想看看,smartdrv 到底兼容不兼容你这台 ...

1.44M装不下所有文件,我就试试看用smartdrv还会不会出错吧。

用win98 标准软盘还是会出错,我放了13个文件进去, dir出23个文件,再dir又变成17个文件。 好奇怪。

作者: 不点    时间: 2023-1-30 15:56
忽然想到,也许是机器内存导致的问题。

机器内存有多大?

在 grub4dos 命令行,运行 displaymem 命令,看看内存布局正常不正常。
作者: james168    时间: 2023-1-30 16:08
不点 发表于 2023-1-30 15:56
忽然想到,也许是机器内存导致的问题。

机器内存有多大?

不带 --mem 也会出错。  这可能就是smartdrv的问题了吧。

作者: james168    时间: 2023-1-30 16:13
4G的内存,准备加一条。  displaymem  结果:




作者: 不点    时间: 2023-1-30 16:25
试试 --mem --top 俩参数都加上,看看有没有用。

另外,smartdrv.exe 这个文件,来自哪里?是你从别的途径获得的呢,还是 win98 盘上自带的?是微软原版的吗?如果不是的,那就有可能出现兼容性问题。
作者: 不点    时间: 2023-1-30 16:29
本帖最后由 不点 于 2023-1-30 16:36 编辑
james168 发表于 2023-1-30 16:13
4G的内存,准备加一条。  displaymem  结果:

从内存布局来看,内存有好几个碎块。4G 以上的那个内存块,竟然是最大的一块。

初步判断,smartdrv 与这个主板的内存布局,发生了冲突。或者,也可以笼统地说,是与主板发生了冲突。

如果 himem.sys 和 smartdrv.exe 都是微软原版的,那说明这个主板不好,不兼容微软的软件。

如果 himem.sys 和 smartdrv.exe 不是微软原版的,那就把错误归咎于这些非微软的软件。



作者: 不点    时间: 2023-1-30 16:43
james168 发表于 2023-1-30 16:13
4G的内存,准备加一条。  displaymem  结果:

看到惠普电脑的这个内存布局,以后对惠普电脑,就没有购买欲了。
作者: 不点    时间: 2023-1-30 17:11
脑子中忽然又出现一个猜测:也许是因为内存太大导致的?

4G 以上部分,有一个内存块。

也许正是这个内存块的存在,导致 smartdrv 不适应,从而发生异常。

换成较小的内存,比如 1G 或 256M 之类的小内存,看看情况有变化吗?

因为,我想到了,win98 本身就不能在大内存下运行,只能在小内存下运行。


作者: james168    时间: 2023-1-30 17:27
不点 发表于 2023-1-30 17:11
脑子中忽然又出现一个猜测:也许是因为内存太大导致的?

4G 以上部分,有一个内存块。

没有小内存呢。还准备加大内存。
作者: james168    时间: 2023-1-30 17:31
不点 发表于 2023-1-30 16:25
试试 --mem --top 俩参数都加上,看看有没有用。

另外,smartdrv.exe 这个文件,来自哪里?是你从别的途 ...

这两货我也不记得是那里来的了。

smartdrv-himem.rar (22.47 KB, 下载次数: 0)




作者: 不点    时间: 2023-1-30 17:38
james168 发表于 2023-1-30 17:31
这两货我也不记得是那里来的了。

你能否从 win98 盘上提取这俩文件?或者从英文网站搜索下载这两个文件?
作者: 不点    时间: 2023-1-30 17:45
james168 发表于 2023-1-30 17:27
没有小内存呢。还准备加大内存。

有 2G 的内存条试试也行啊?

还有个笨办法:用 map 命令加载虚拟盘,把高端的几个内存块都填满,这样,smartdrv 就只能看见低端的几个小内存块了,这样也就有可能不再出错了。

如果有必要我详细说明,请跟帖。
作者: 不点    时间: 2023-1-30 17:50
另外,你也可以在别的 4G 以上大内存机器上试试 smartdrv,看看是否具有同样的问题。如果也有同样的问题,那就有理由猜测,是大内存产生的不兼容。


作者: james168    时间: 2023-1-30 18:07
不点 发表于 2023-1-30 17:38
你能否从 win98 盘上提取这俩文件?或者从英文网站搜索下载这两个文件?

有链接吗?
现在这个老爷级的东西不好找。
作者: james168    时间: 2023-1-30 18:09
不点 发表于 2023-1-30 17:45
有 2G 的内存条试试也行啊?

还有个笨办法:用 map 命令加载虚拟盘,把高端的几个内存块都填满,这样 ...

我map  --mem --top  一个 600M的iso,再map fd0 这样?
作者: 不点    时间: 2023-1-30 18:20
https://msfn.org/board/topic/174 ... ve/page/2/#comments

这个英文论坛上讨论了 smartdrv 的问题。内存确实对 smartdrv 有影响。

另外一个问题如下:

SMARTDRV itself has a bug that can cause corruption if you use it to manage a Partition larger than 128GiB. I have not found an easy fix for this.

就是说,smartdrv 有个 bug,它会垮掉,如果你用它来管理一个 128G 以上的大分区。

你的硬盘分区,是不是有一个超过了 128G?

作者: 不点    时间: 2023-1-30 18:40
james168 发表于 2023-1-30 18:07
有链接吗?
现在这个老爷级的东西不好找。

算了,暂时不找了。假定都是微软的。

如果不是微软的,而是从 freedos 那里获得的,那就不妥了。
作者: 不点    时间: 2023-1-30 18:42
本帖最后由 不点 于 2023-1-30 18:44 编辑
james168 发表于 2023-1-30 18:09
我map  --mem --top  一个 600M的iso,再map fd0 这样?

这个暂且也不弄了。看我搜到的 smartdrv 的 bug,如果有 128G 的大分区,smartdrv 就会崩溃。

你把大分区隐藏掉,试试。或者,干脆换个小硬盘试试?也或者干脆摘掉硬盘,只用一个小 U 盘来启动。

作者: 2011yaya2007777    时间: 2023-1-30 18:51
smartdrv这个函数有一些参数,不知对解决是否有帮助。
作者: 不点    时间: 2023-1-30 18:54
本帖最后由 不点 于 2023-1-30 18:59 编辑
2011yaya2007777 发表于 2023-1-30 18:51
smartdrv这个函数有一些参数,不知对解决是否有帮助。

在我搜到的那个英文论坛上,有提到 himem 加参数,限制内存。

DEVICE=C:\DOS\HIMEMX.EXE /MAX=512000

注意:上面这句是 himemx.exe,不是 himem.sys。所以,可能需要找到 himemx.exe 这个程序。

不过,更严重的 bug 不是在内存方面,而是在硬盘分区的大小方面,即,不要让分区的长度超过 128G。


作者: sunsea    时间: 2023-1-30 18:55
两个直接取自win98se安装包中的文件,希望有所帮助。

win98se-himem-smartdrv.zip

23.54 KB, 下载次数: 5, 下载积分: 无忧币 -2


作者: james168    时间: 2023-1-30 19:19
本帖最后由 james168 于 2023-1-30 19:49 编辑
不点 发表于 2023-1-30 18:20
https://msfn.org/board/topic/174219-booting-dos-71-on-system-with-4-gb-ram-not-enough-for-smartdrive ...

有一个分区大于128G
作者: james168    时间: 2023-1-30 19:21
sunsea 发表于 2023-1-30 18:55
两个直接取自win98se安装包中的文件,希望有所帮助。

谢谢,我用这两个试试看。
作者: james168    时间: 2023-1-30 19:23
config.sys 就下面的一个参数:
[COMMON]
device=himem.sys /testmem:off

作者: james168    时间: 2023-1-30 19:47
试了sunsea发的两个文件,现在能正确显示文件数。 但不能执行, 键入ghost就只有光标在闪。
我把那个大于128的分区隐藏了也是一样。
作者: 不点    时间: 2023-1-30 19:50
james168 发表于 2023-1-30 19:47
试了sunsea发的两个文件,现在能正确显示文件数。 但不能执行, 键入ghost就只有光标在闪。
我把那个大于1 ...

既然你的 smartdrv 和 himem 都是坏的,我猜,你的 ghost.exe 也是坏的吧?
作者: sunsea    时间: 2023-1-30 19:55
james168 发表于 2023-1-30 19:47
试了sunsea发的两个文件,现在能正确显示文件数。 但不能执行, 键入ghost就只有光标在闪。
我把那个大于1 ...

无忧网友分享了一个可能比较近,所以可能对新硬件比较好的ghost版本,自行提取试试吧:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=430103
作者: james168    时间: 2023-1-30 20:07
不点 发表于 2023-1-30 19:50
既然你的 smartdrv 和 himem 都是坏的,我猜,你的 ghost.exe 也是坏的吧?

ghost.exe这个没问题的, 以前一直都能用。
这个也是一样,不加载smartdrv就都没问题。
作者: 不点    时间: 2023-1-30 20:58
james168 发表于 2023-1-30 20:07
ghost.exe这个没问题的, 以前一直都能用。
这个也是一样,不加载smartdrv就都没问题。

如果有兴趣,可以试试前面说的 himemx.exe 加参数 /max=512000。这是从英文论坛上得到的信息。

不想做的话,就此罢休。我们已经基本弄清楚了,这是 smartdrv 以及 himem 的问题,不是 grub4dos 的问题,也就是说,不是 grub4dos 的 bug,这就够了。

而 smartdrv 的问题,可能还是与这个主板有关系。比如说,内存减少到 1G,可能就好了。因为没有条件做这个测试,因此也就不必研究了。

以后尽量避免使用 smartdrv,躲过这个问题。
作者: james168    时间: 2023-1-30 21:43
sunsea 发表于 2023-1-30 19:55
无忧网友分享了一个可能比较近,所以可能对新硬件比较好的ghost版本,自行提取试试吧:http://bbs.wuyou. ...

我直接用这个img竟然没问题了。 他里面没有himem.sys。 smart也正常运行。

然后我就关了我那个ima的himem.sys,也正常,但就是smart不能运行。只要开了smartdrv就不行。
难道是要DOS8.0才行

这样就可以确定是这个电脑和DOS7.1的himem.sys或smartdrv不兼容吧。
作者: james168    时间: 2023-1-30 21:44
本帖最后由 james168 于 2023-1-30 21:47 编辑
不点 发表于 2023-1-30 20:58
如果有兴趣,可以试试前面说的 himemx.exe 加参数 /max=512000。这是从英文论坛上得到的信息。

不想做 ...

嗯,不是g4d的问题, 用lmj9401网友做的那个DOS8.0就全部正常
作者: 不点    时间: 2023-1-31 00:35
james168 发表于 2023-1-30 21:43
我直接用这个img竟然没问题了。 他里面没有himem.sys。 smart也正常运行。

然后我就关了我那个ima的hi ...

那么我是否可以这样理解:

Dos8.0 内置了 himem, 而且其中的 smartdrv 是有改进的,也就是说,消除了 bug。
作者: sunsea    时间: 2023-1-31 05:35
不点 发表于 2023-1-31 00:35
那么我是否可以这样理解:

Dos8.0 内置了 himem, 而且其中的 smartdrv 是有改进的,也就是说,消除了  ...

应该是这样的,那个img是ME的,也算比较新了,可能对新硬件支持更好,也消除了一些bug
作者: 不点    时间: 2023-1-31 07:24
sunsea 发表于 2023-1-31 05:35
应该是这样的,那个img是ME的,也算比较新了,可能对新硬件支持更好,也消除了一些bug

同意版主的解释。版主提供了太多有价值的信息,否则,还不知道要纠缠多久才能获得真相。版主的功底深厚,对事物的把握透彻、细致,以至于解决疑难问题时,游刃有余!膜拜ing!
作者: james168    时间: 2023-1-31 07:56
把我旧ima的内核换成DOS8.0的,不用himem.sys, 全部正常。
感谢sunsea版主和不点。
作者: 不点    时间: 2023-1-31 08:31
james168 发表于 2023-1-31 07:56
把我旧ima的内核换成DOS8.0的,不用himem.sys, 全部正常。
感谢sunsea版主和不点。

您是个严谨之人,测试的时候,也是一丝不苟,可贵!问题基本解决之后,还要继续探究其根源,让大家也了解其细节。感谢您的反馈!竖起大拇指!
作者: 不点    时间: 2023-1-31 08:39
通过这个话题的讨论,我获益很多。感谢以上各位的辛苦!

我收获最大的,就是第一次了解到(并认识到),WinMe 的 DOS 才是硬件厂家支持的 DOS。我的认识将发生转变!因此,特别感谢参与讨论的各位,特别感谢无忧论坛的这个讨论平台!
作者: sunsea    时间: 2023-1-31 09:27
本帖最后由 sunsea 于 2023-1-31 10:06 编辑
不点 发表于 2023-1-31 07:24
同意版主的解释。版主提供了太多有价值的信息,否则,还不知道要纠缠多久才能获得真相。版主的功底深厚, ...

过奖了过奖了,也是用经验推测。ME比98经验里还是好使那么些的,正好手上有资源,就提取了两张它们的原汁原味的应急启动盘发出来,都是进入系统以后直接从官方方式制作的应急启动盘以备意外,我只是往里面添加了从其安装CD中提取的smartdrv.exe。不得不说ME还是比98好使点,98制作应急启动盘还要用它的安装CD,服了,ME就不需要,可以直接制作。

都是散开的文件,VMware的虚拟软盘格式我不知道怎么提取引导扇区,自己直接用grldr或者bootice解决吧。

有趣的是,ME的应急启动盘中config.sys全程没有加载himem.sys(尽管启动盘中还有这个文件),可能是ME的io.sys或者其他模块中已经内嵌了相关功能。

再看了下XP生成的DOS启动盘就比较清汤寡水什么都没有了,估计此时MS基本已经放弃DOS了,生成的启动盘也没有什么参考价值了,仅供参考吧。XP安装光盘中似乎也没有附带smartdrv了。

WindowsME应急启动盘.7z

635.42 KB, 下载次数: 10, 下载积分: 无忧币 -2

Windows98SE应急启动盘.7z

678.07 KB, 下载次数: 9, 下载积分: 无忧币 -2

WindowsXP创建MSDOS启动盘的结果.7z

199.26 KB, 下载次数: 4, 下载积分: 无忧币 -2


作者: james168    时间: 2023-1-31 11:46
sunsea 发表于 2023-1-31 09:27
过奖了过奖了,也是用经验推测。ME比98经验里还是好使那么些的,正好手上有资源,就提取了两张它们的原汁 ...

谢谢分享。
作者: wuwuzz    时间: 2023-2-3 21:48
本帖最后由 wuwuzz 于 2023-2-4 07:10 编辑
不点 发表于 2023-1-31 08:39
通过这个话题的讨论,我获益很多。感谢以上各位的辛苦!

我收获最大的,就是第一次了解到(并认识到), ...

同感。
10多年来一直坚持用DOS启动盘作为测试手段之一,这次也是长见识了。
怪不得rufus制作MS-DOS启动盘时,默认用ME的文件而不是98SE的了。
================================================

见到不点发言,总有些感慨时光流逝,我也逐渐老了。同时,通报一些重要信息,
希望能有所帮助:

1.(迟来的)调试手段完善。UEFI/BIOS <---> U盘间会话,有办法直接看到、监听了
--用硬件USB协议分析仪。实践可行,BIOS的黑箱被撕开一条口子。

2.遇到UD/FB对付不了(而G4D能对付)的BIOS了。YAYA出手+知道同系BIOS源码+分析仪
多措并举,已知UD/FB对付不了的原因,YAYA的总结:

“(BIOS)判断(U盘)为可移动时,减少1磁头,隐藏第一分区之前的扇区,逻辑0扇区指向PBR。
这对于通常形态的启动模式(即读MBR,查找活动分区,然后把控制权交给PBR),没有影响。
然而对于UD形态的启动模式(即读MBR,在隐藏分区读文件,进入菜单。不交权,与PBR启动
代码完全无关),实在是灾难。因为根本就没有把代码控制权交给他。"




作者: nowayer    时间: 2023-12-9 03:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: qhb    时间: 2024-11-7 11:30
赞赞




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3