无忧启动论坛

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

grub4dos虚拟个内存盘(用高位),进win98还能用上它?(已有结论,无法实现)

  [复制链接]
跳转到指定楼层
1#
发表于 2023-10-3 10:31:04 来自手机 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 窄口牛 于 2023-10-4 20:33 编辑

我想把win98不识别的内存搞个虚拟磁盘给进了系统的98用,怎么写菜单?
2#
 楼主| 发表于 2023-10-3 10:33:17 来自手机 | 显示全部楼层
现在知道98可以用到2g,8g剩下的6g搞个虚拟磁盘。
回复

使用道具 举报

3#
 楼主| 发表于 2023-10-3 18:05:49 | 显示全部楼层
本帖最后由 窄口牛 于 2023-10-3 18:07 编辑


就搞4736M大小好了
回复

使用道具 举报

4#
 楼主| 发表于 2023-10-4 09:34:33 | 显示全部楼层
  1. find --set-root --ignore-floppies --ignore-cd /win98.img
  2. map --mem --top /win98.img (hd3)

  3. title Chainload IO.SYS for booting MS-DOS/Windows 9x/Me
  4. fallback +1
  5. find --set-root --ignore-floppies --ignore-cd /io.sys
  6. chainloader /io.sys
  7. savedefault --wait=2bi
复制代码
必须有磁盘交换,win98没起来,虚拟磁盘也没搞成。
回复

使用道具 举报

5#
 楼主| 发表于 2023-10-4 16:40:53 来自手机 | 显示全部楼层
本帖最后由 窄口牛 于 2023-10-4 17:03 编辑

前面那一段只是虚拟内存盘(内存盘镜像叫了个win98)的命令,后面是启动win98的
回复

使用道具 举报

6#
 楼主| 发表于 2023-10-4 17:02:41 | 显示全部楼层
本帖最后由 窄口牛 于 2023-10-4 17:04 编辑
  1. <font size="6">find --set-root --ignore-floppies --ignore-cd /hdd.img.gz
  2. map --mem --top /hdd.img.gz (hd3)
  3. map --hook

  4. </font>
复制代码
这一段虚拟内存盘没有问题了,控制台已经可以看到内存盘。
  1. <font size="6">
  2. title Chainload IO.SYS for booting MS-DOS/Windows 9x/Me
  3. fallback +1
  4. find --set-root --ignore-floppies --ignore-cd /IO.SYS
  5. map () (hd0)
  6. map (hd0) ()
  7. rootnoverfy (hd0)
  8. chainloader IO.SYS
  9. savedefault --wait=2
  10. boot

  11. title Chainload BOOTSECT.DOS for booting MS-DOS/Windows 9x/Me
  12. fallback +1
  13. find --set-root --ignore-floppies --ignore-cd /BOOTSECT.DOS
  14. map () (hd0)
  15. map (hd0) ()
  16. rootnoverfy (hd0)
  17. chainloader /BOOTSECT.DOS
  18. savedefault --wait=2
  19. boot
  20. </font>
复制代码
看上说明,写的启动98的菜单,起不来。


这按E进来,啥也改不了呀,只能删除行,按O添加也打不上去任何东西呀?

点评

这个错误很容易犯。因为 grub4dos 的菜单,相当于一个批处理程序。而程序难免会出错。 比如说,chainloader IO.SYS,这就少了一个斜杠。应该是 chainloader /IO.SYS 这是原始 gnu grub 的语法设计。没办法  详情 回复 发表于 2023-10-4 17:28
交换磁盘后,要执行 map --hook 才能生效。 你在 rootnoverfy (hd0) 前只执行一次 map --hook就行。  详情 回复 发表于 2023-10-4 17:21
回复

使用道具 举报

7#
 楼主| 发表于 2023-10-4 20:31:35 | 显示全部楼层
  1. find --set-root --ignore-floppies --ignore-cd /hdd.img.gz
  2. map --mem --top /hdd.img.gz (hd3)

  3. title Chainload IO.SYS for booting MS-DOS/Windows 9x/Me
  4. fallback +1
  5. find --set-root --ignore-floppies --ignore-cd /IO.SYS
  6. map () (hd0)
  7. map (hd0) ()
  8. map --hook
  9. rootnoverify (hd0)
  10. chainloader (hd0,0)/IO.SYS
  11. savedefault --wait=2
  12. boot
复制代码

最后可用的。不过进了win98找不到它,不能被系统使用。

点评

你这差不多应该算是成功了吧?我来猜猜看,问题可能出在什么地方。 我看到你只使用了一个 hdd.img,我猜,这是为了利用 4G 之上的高位内存而建立的内存盘。4G 之下的低位内存,有 3G 多,都给 win98 使用了,你  详情 回复 发表于 2023-10-4 22:30
回复

使用道具 举报

8#
 楼主| 发表于 2023-10-4 22:51:38 | 显示全部楼层
现在确实轮到hd3了,hd2上是win98,hd0是优盘(用它g4d引导的),hd1是个大硬盘。
优盘分区开始是(hd0,3),我修改了下大小,才正常为(hd0,1)。

点评

现在可以先试试用虚拟软盘 fd0。可以从网上下载一个 win98 启动软盘,1.44M 的即可,目的是测试。把它 map --mem 加载为 fd0,看看进入 win98 后能否看见这个软盘。(成功以后,再试试 map --mem --top 加载为 fd0,  详情 回复 发表于 2023-10-4 23:48
回复

使用道具 举报

9#
 楼主| 发表于 2023-10-5 08:14:20 | 显示全部楼层
试过了,还在xp系统也试了,系统里面都无法识别到g4d的虚拟磁盘。
看样子需要搞个驱动,让系统认识。

就需要高手解决了。

点评

win98 自己带有 realmode mapper 功能模块,可以自动识别实模式建立的虚拟盘。SVBUS 的开发者是个高手,他的驱动程序支持 XP 和 win2000。但碰巧不支持 win98。我认为,很难说服他,让他去支持 win98。因为,他也很  详情 回复 发表于 2023-10-5 10:25
xp 是不会认的,没必要试。按理说 win98 应该能认。  详情 回复 发表于 2023-10-5 09:05
回复

使用道具 举报

10#
 楼主| 发表于 2023-10-5 10:05:02 来自手机 | 显示全部楼层
2g以内的话,有内存盘软件就能支持,没多大意思了。

点评

可是你已经用 1.44M 软盘进行了试验,失败了。这说明连 1.44M 都不支持了。我怀疑你这个结果的准确性。 不排除你什么地方弄错了的可能性。 前一帖我已经说了,实在是找不到人对此感兴趣了。假如有的话,其测试  详情 回复 发表于 2023-10-5 10:18
回复

使用道具 举报

11#
 楼主| 发表于 2023-10-5 10:39:01 | 显示全部楼层
本帖最后由 窄口牛 于 2023-10-6 14:42 编辑

又测试了,win98可以识别非--top的盘;xp安装svbus驱动,可以识别大的--top的盘,大盘作为(可能是因为镜像是img非ima)fd,无法工作,必须是hd才行。
今天又鼓捣了一上午结果一致。

点评

你修改帖子之后,我猜到问题在什么地方了。你试图把含有分区表的 img 仿真成软盘 fd0,这肯定不行。你需要的是一个不含 mbr 磁道,只有分区(卷)的 img,这才可以仿真为软盘。  详情 回复 发表于 2023-10-6 16:28
我不认为这段话的描述是可信的。尤其是 “大盘作为 fd 无法工作,必须是 hd 才行”。以前验证过的东西,应该不会突然之间就失效了。虚拟的 fd,不限于 1.44M,它可以是任意的几何参数,可以和硬盘一样大。否则,我们  详情 回复 发表于 2023-10-6 12:11
以前试验过了,虚拟软盘的大小没有限制。完全可以和硬盘一样大。不过,你自己试验的结果,你肯定更相信一些。实在找不到什么人对此感兴趣了。既不会有人支持你的结论,也不会有人反对你的结论。  详情 回复 发表于 2023-10-5 10:50
回复

使用道具 举报

12#
 楼主| 发表于 2023-10-5 11:02:19 | 显示全部楼层
那个realmode mapper功能有办法测试检查吗?

点评

有办法。只要你在 grub4dos 下建立虚拟盘,或者用 syslinux 里面的 memdisk 建立虚拟盘,而能够被 Windows 识别,这都表明 realmode mapper 在起作用。如果没有 realmode mapper,就不可能在保护模式下访问实模式的  详情 回复 发表于 2023-10-5 11:12
回复

使用道具 举报

13#
 楼主| 发表于 2023-10-6 15:34:08 来自手机 | 显示全部楼层
应该不是grub4dos的问题,因为在XP里没问题。
回复

使用道具 举报

14#
 楼主| 发表于 2023-10-6 18:22:58 | 显示全部楼层
不点 发表于 2023-10-6 16:28
你修改帖子之后,我猜到问题在什么地方了。你试图把含有分区表的 img 仿真成软盘 fd0,这肯定不行。你需 ...

嗯,能懂你的意思。
回复

使用道具 举报

15#
 楼主| 发表于 2023-10-7 07:15:18 来自手机 | 显示全部楼层
本帖最后由 窄口牛 于 2023-10-7 08:54 编辑

win98下可以看到(map --mem --top)盘符,但是处于无法使用状态,就像坏了的优盘一样,可以反复格式化,但格完也还是不能用。

xp正常

98非top正常

98一个非top正常,一个top不正常

点评

你报告得很详细。有两种可能:其一,grub4dos 的实模式仿真代码,可能有 bug。其二,win98 系统的 realmode mapper 可能由于某种原因(可能存在内存冲突之类的原因),不能与 grub4dos 的实模式高位内存处理代码协同  详情 回复 发表于 2023-10-7 13:00
回复

使用道具 举报

16#
 楼主| 发表于 2023-10-7 13:34:07 来自手机 | 显示全部楼层
g4d控制台可以访问,dos也可以访问,就是98里面不行。

点评

好的,明白了。大的 bug 是没有的。但可能存在小 bug,那就是,grub4dos 对于高位内存的处理(代码层面),不能适应 win98 环境。猜测很可能需要改进代码。  详情 回复 发表于 2023-10-7 19:01
回复

使用道具 举报

17#
 楼主| 发表于 2023-10-9 06:54:39 来自手机 | 显示全部楼层
不点 发表于 2023-10-9 06:36
找到一些相关的技术,说不定以后有人找到这里了,他就能用得着。

https://dosbox-x.com/wiki/Guide%3AIn ...

嗯,dosbox,pcem,都可以模拟win98.,win2000打游戏。
回复

使用道具 举报

18#
 楼主| 发表于 2023-10-9 07:30:46 来自手机 | 显示全部楼层
2011yaya2007777 发表于 2023-10-9 07:16
我觉得不点分析的很到位。我看了一下asm.S文档,前辈们有以下2段注释:

/* But Win9x may expect addi ...

在g4d下可以看到,打开,说明不是grub4dos的锅了,只能在win98里解决这个问题。
九八方面
http://windows98.xf.cz/这个网站可以关注一下,我就是在玩这些东西,不过有些还没玩到位。

点评

Microsoft WINDOWS 98 (SE) unofficial support site http://windows98.xf.cz/ 牛B plus!牛B 确实牛B,但我的理解力还跟不上,理解不动。微软扔掉的、而且封杀了多年的东西,还能捡起来? 不过,那东西  详情 回复 发表于 2023-10-9 13:52
回复

使用道具 举报

19#
 楼主| 发表于 2023-10-10 00:11:11 来自手机 | 显示全部楼层
还有一个专门给win9x搞补丁的https://github.com/JHRobotics/patcher9x

点评

呵呵,干脆让微软放出 win98 源代码,就省事了。 难道说,这帮人还要把 win98 的内核翻个底朝天?那得多费劲啊? reactOS 就够费劲的,现在还有 “掏空” win98 的。 我想,这帮人可能是想练手、提高个人技  详情 回复 发表于 2023-10-10 07:41
回复

使用道具 举报

20#
 楼主| 发表于 2023-10-10 07:58:59 | 显示全部楼层
xp也有搞得,之前把win8的驱动移植到xp,现在把win7的也移植了,只要还能装win7的现代机器,都可以跑xp啦。
大部分是手机回复,只有电脑回复才比较容易设置大字体。
回复

使用道具 举报

21#
 楼主| 发表于 2023-10-12 08:40:39 来自手机 | 显示全部楼层
dayeye 发表于 2023-10-11 22:45
ACER 4750G,10G内存,实机安装win98。map --mem --top 的2375M的fd盘可以格式化完成使用。格式化时间很长, ...

大内存补丁后就能了。系统内认到3.5g,实际可能会用的就2g。

点评

good  发表于 2023-10-14 13:06
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 11:58

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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