无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4128|回复: 16
打印 上一主题 下一主题

[求助] 请教大家一下,G4D同时加载一个软盘和硬盘映像的问题

[复制链接]
跳转到指定楼层
#
发表于 2013-1-2 13:38:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
情况是这样的:

无(硬)盘的情况下,两台古董机通过PXE+G4D引导,要在DOS下用网卡的ODI驱动(IPX)联网游戏,古董机物理内存很小(目前最多只能支持到64M),某些DOS游戏要求必须安装在C盘

目前我的做法是把DOS系统和GAME都做在一个硬盘IMA映像里,然后通过memdisk的方式加载并运行,这种做法的缺点是游戏体积比较大的时候(一个映像容纳不下两个游戏),需要做多个IMA映像,每个映像中都有重复的DOS系统。

自己还是希望能把DOS系统和GAME分离开来,DOS放在一个软盘IMA映像中做为公用的引导映像,而GAME则放在若干个单独的硬盘IMA映像中,然后通过编辑menu.lst,在菜单中做选择,需要加载哪个游戏。

以前看到过memdisk将要支持加载多个映像,但后来再没找到有关的资料

若用map --mem方式加载硬盘的IMA,需要先把ima读入内存再map,太耗费内存,毕竟这古董机只有64MB的物理内存,硬盘的IMA本身就有30MB甚至更大。这种方式不适合我目前的情况。

在这里还得请教大家一下,在这样的小内存的环境下,如何能实现G4D同时加载一个软盘映像和一个硬盘映像呢?

如有成熟的方案,还请大家不吝赐教,非常感谢!祝大家新年快乐!

[ 本帖最后由 北斗 于 2013-1-2 13:44 编辑 ]
16#
 楼主| 发表于 2013-1-3 23:10:21 | 只看该作者
原帖由 不点 于 2013-1-3 19:20 发表
也谢谢你给出一个实际案例,证明 grub4dos 与 memdisk 的仿真混合使用有可能导致异常现象的发生。

另外,grub4dos 不支持 zip 压缩,但是支持 gzip 和 lzma 压缩格式。在 pxe 的情形,使用 lzma 压缩格式更好 ...

谢谢不点大大,以前曾经试用过lzma的格式,觉得它的压缩比要比zip和rar都要高,但嫌它制作压缩包和解压的时候都比较慢,放弃了。

刚刚我又测试了一下lzma,从服务器上PXE方式启动一个IMA映像,映像未压缩大小31MB左右,lzma压缩后大概14M,zip压缩后大概17MB

从grub菜单中按回车加载压缩包开始计时,lzma从服务器下载文件……启动到dos提示符用了13秒,而体积更大的zip耗时却只有9秒,分析原因看起来,应该是解压缩IMA的时候,老CPU(Celeron 900)应付不了lzma高强度的运算负荷而拖了后腿,而zip对CPU要求就没有lzma那么高,虽然传输文件耗时稍多,但解包很快。如果是更大体积的压缩包在CPU更强悍的主机上,lzma应该能表现的更好一些。
回复

使用道具 举报

15#
发表于 2013-1-3 19:20:39 | 只看该作者
也谢谢你给出一个实际案例,证明 grub4dos 与 memdisk 的仿真混合使用有可能导致异常现象的发生。

另外,grub4dos 不支持 zip 压缩,但是支持 gzip 和 lzma 压缩格式。在 pxe 的情形,使用 lzma 压缩格式更好,而 gzip 格式存在固有问题,在 PXE 的情况下下载 gzip 文件会出现下载两次的问题,大大减低启动速度。
回复

使用道具 举报

14#
 楼主| 发表于 2013-1-3 11:31:20 | 只看该作者
原帖由 不点 于 2013-1-2 23:21 发表
>>> 我memdisk加载了一个7M的IMA,再mem --map一个30M的IMA,

问题就在这里了。你已经超越 grub4dos 关于仿真的限制。用户如果混合 map 以及 memdisk 这两种仿真软件,其结果不可预料,出现失败不足为奇。你 ...


map --mem同时加载两个IMA可以通过测试了

我原来使用memdisk加载一个软盘IMA,是因为memdisk可以加载zip压缩包,减少了PXE网络传输的数据量,加快整体启动的速度,现在看来为了保证兼容性,还是用map来加载两个IMA比较稳妥。谢谢不点大大。
回复

使用道具 举报

13#
 楼主| 发表于 2013-1-3 11:08:20 | 只看该作者
仙剑和金庸群侠传的MIDI来了

PAL.rar (201.3 KB, 下载次数: 18)

LEGEND.rar (49.96 KB, 下载次数: 11)
回复

使用道具 举报

12#
 楼主| 发表于 2013-1-3 00:02:08 | 只看该作者
原帖由 friend8179 于 2013-1-2 23:00 发表
仙剑晕迷宫啊,尤其是将军冢,每次玩到这里就吐了

话说原盘MIDI多大?

现在手机就可以开搞这2个游戏了

几百K,今天太晚了,明天附件给你上传上来啊
回复

使用道具 举报

11#
 楼主| 发表于 2013-1-2 23:39:28 | 只看该作者
原帖由 不点 于 2013-1-2 23:21 发表
>>> 我memdisk加载了一个7M的IMA,再mem --map一个30M的IMA,

问题就在这里了。你已经超越 grub4dos 关于仿真的限制。用户如果混合 map 以及 memdisk 这两种仿真软件,其结果不可预料,出现失败不足为奇。你 ...

好的,谢谢不点大大

明天我按上面的方法再测试一下
回复

使用道具 举报

10#
发表于 2013-1-2 23:21:09 | 只看该作者
>>> 我memdisk加载了一个7M的IMA,再mem --map一个30M的IMA,

问题就在这里了。你已经超越 grub4dos 关于仿真的限制。用户如果混合 map 以及 memdisk 这两种仿真软件,其结果不可预料,出现失败不足为奇。你可以试试只用 map 来做,至少这没有超出 grub4dos 的限制。

另外,64 M 太少了,要仿真 37 M 的虚拟盘,确实显得吃力,剩余空间不多,那么出问题的可能性确实也很大。
回复

使用道具 举报

9#
 楼主| 发表于 2013-1-2 22:49:08 | 只看该作者
原帖由 friend8179 于 2013-1-2 22:31 发表
楼主是有多怀恋古董游戏啊

求推荐RPG

个人只玩过金庸群侠传

DOS RPG我只能推荐仙剑奇侠传了,除此之外就是你的金庸群侠传了,哈哈

仙剑的原盘MIDI我有,如果你喜欢,PM我邮箱,我给你,最好有块YMF的声卡来听
回复

使用道具 举报

8#
 楼主| 发表于 2013-1-2 22:45:36 | 只看该作者
原帖由 不点 于 2013-1-2 22:26 发表
我提个建议,可不是指责你的意思。

既然是古董机器,找个古董硬盘,应该也不难。废弃的硬盘应该很多的。

如果没有硬盘的话,只能从 PXE 服务器把映像加载到内存,没有别的办法。二楼已经说的很清楚了。
...

谢谢不点大大,您太客气了

我现在疑惑的是G4D对内存分配的不解(之前我确实对G4D的内存不了解,应该是存在误解)

我有64M的物理内存,我memdisk加载了一个7M的IMA,再mem --map一个30M的IMA,结果卡住不能引导了,再加了32MB物理内存,就可以正常引导了,我由此判断是因为内存不足

但我搞不懂的是,64M的内存在PXE引导的G4D下都是怎么分配的,的两个加在一起才37M的映像不能启动?我现在的疑惑就在这里了啊

[ 本帖最后由 北斗 于 2013-1-2 22:59 编辑 ]
回复

使用道具 举报

7#
发表于 2013-1-2 22:26:59 | 只看该作者
我提个建议,可不是指责你的意思。

既然是古董机器,找个古董硬盘,应该也不难。废弃的硬盘应该很多的。

如果没有硬盘的话,只能从 PXE 服务器把映像加载到内存,没有别的办法。二楼已经说的很清楚了。

pxe 设备不支持直接仿真,只能借助于内存而仿真。
回复

使用道具 举报

6#
 楼主| 发表于 2013-1-2 18:27:25 | 只看该作者
@to chenall大大和不点大大
我一直以为memdisk和map --mem占用内存的情况是如下图的,现在看来是错误的?



客户机安装物理内存64MB,PXE引导grldr,再执行下面的

title MSDOS 7 ODI GAME

map --mem /BOOT/HDD.ima (0x80)
map --hook

kernel /BOOT/MEMDISK.GZ
initrd /BOOT/DOS7.zip


HDD.IMA是用Winimage直接抓取的物理硬盘的整盘映像(30MB),不是从虚拟机抓的。

客户机从TFTP服务器下载HDD.IMA和DOS7.zip都正常,但随后出现PXE stack unloaded后卡住不动了。如果再加32MB内存,则顺利启动没问题。我由此猜测应该是内存不够引起的。

还请chenall大大和不点大大给予指点,memdisk和map、map --mem对内存的占用到底是怎样的?

ps:下载了chenall大大的modboot一个iso版本,zip模块化的加载软件很方便,但似乎没发现modboot支持硬盘(映像)模式的功能,我有些DOS游戏必须要求在物理C盘运行,若不支持硬盘(映像)模式还是不能从根本上解决问题啊。

@to 不点大大
我不是想在硬盘上建立虚拟盘,因为古董客户机没有连接硬盘,我是想在纯内存的方式下运行。

关于磁盘碎片的问题,现在也有疑惑了,如果用map /BOOT/HDD.IMA来仿真映像,G4D会提示文件不连续,而HDD.IMA已经用contig或者WinContig整理过,确认是连续存储的没有磁盘碎片,HDD.IMA是保存在NTFS(RAID0)分区上。若是map --mem则没问题。HDD.IMA是用Winimage直接抓取的物理硬盘的整盘映像(30MB),不是从虚拟机抓的。

[ 本帖最后由 北斗 于 2013-1-2 20:47 编辑 ]
回复

使用道具 举报

5#
发表于 2013-1-2 16:16:07 | 只看该作者
楼主的意思,是不是想直接在硬盘上建立虚拟盘,而不希望加载到内存?

这是 grub4dos 的普通功能,应该没问题呀?只要整理磁盘碎块,保证你的两个 img 文件都是连续的就行。

看看置顶的教程,命令自己搞定。
回复

使用道具 举报

4#
发表于 2013-1-2 15:08:11 | 只看该作者
至于你的要求,可以试试我之前弄的MODBOOT,
可以模块化加载需要的东西.而且只需要ZIP格式.
想启动什么就启动什么.
回复

使用道具 举报

3#
发表于 2013-1-2 15:05:58 | 只看该作者
这个好像有些误解吧,何来的map --mem占用双倍内存之说?

用memdisk同样要把文件载入到内存.
回复

使用道具 举报

2#
 楼主| 发表于 2013-1-2 14:23:40 | 只看该作者
原帖由 sgw888 于 2013-1-2 13:54 发表
我提个疑问: PXE网络引导,都是要把映像加载到当前机器的内存才可以的吧?
memdisk方式在PXE引导时难道可以不用把映像加载到当前内存,启动DOS以后,仍然可以访问TFTP服务器的?


我的PXE引导的过程是这样的,通过haneWin DHCP架设服务器,启动文件指定为grldr,然后搭配合适的menu.lst,客户机从网卡PXE启动,在menu.lst中选择需要执行的DOS项目,执行,之后就和TFTP服务器没什么关系了。

memdisk,我是用如下的方法加载映像
kernel /BOOT/MEMDISK.GZ
initrd /BOOT/DOS7.zip

DOS7.ZIP是DOS7.IMA用Winrar压缩为zip格式

我一直认为memdisk加载映像,只是在内存中加载了一次,而map --mem 则是相当于把映像加载了两次,占用了“双倍”的内存,我这样说您能理解吗?
回复

使用道具 举报

1#
发表于 2013-1-2 13:54:53 | 只看该作者
我提个疑问: PXE网络引导,都是要把映像加载到当前机器的内存才可以的吧?
memdisk方式在PXE引导时难道可以不用把映像加载到当前内存,启动DOS以后,仍然可以访问TFTP服务器的?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-6 00:28

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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