请chenall看看,关于0.46a map 问题
本帖最后由 chiannet 于 2015-8-2 06:47 编辑native 03PE, 二级内核存放在SKY52PE.ISO内,启动时用下列代码:
......
map /52PE/SKY52PE.ISO (0xfe) || map --mem /52PE/SKY52PE.ISO (0xfe)
map --hook
chainloader /52PE/SETUPLDR.NTV
boot
1、若SKY52PE.ISO连续,则0.45C或0.46a(只试用了20150408及20150716两版)Grldr,都能顺利启动!
2、若SKY52PE.ISO不连续(测试时,碎片数目为3个),
用0.45C grldr会执行红色代码,native 03PE能顺利启动到桌面。
用0.46a(只试用了20150408及20150716两版)grldr时,会执行蓝色代码,但在native 03PE启动流程到NATIVE.EXE 挂载二级内核(.WIM)时蓝屏死机。
虚心学习中。 根据你描述的情况,那么我很容易猜测到,这应该是由于 FIRADISK 或 WinVblock 不支持非连续的 ISO 文件造成的。
估计需要这两个驱动的开发者来解决才行。
还是老老实实地把碎片整理好吧。
不点 发表于 2015-8-2 09:53
根据你描述的情况,那么我很容易猜测到,这应该是由于 FIRADISK 或 WinVblock 不支持非连续的 ISO 文件造成 ...
不点大大是不是不在状态,这明明说的是G4D 的MAP问题啊。 是我这半罐水理解错了。错怪了不点
好像0.46C的一项改变就是可以MAP不连续的文件,所以楼主的代码在0.46C就执行了第一段。 bfgxp 发表于 2015-8-2 11:37
不点大大是不是不在状态,这明明说的是G4D 的MAP问题啊。
你是不是没有意识到,这多半是 firadisk 和 winvblock 的问题?
要证明 grub4dos 有问题,简直太容易了——只需证明 map 之后访问虚拟光盘的扇区不等价于原始的 iso 文件中的扇区即可。
假如楼主能证明的话,那就说明 grub4dos 有错。
注意一个要点:grub4dos 只要在实模式下工作正常,那就完全没问题了。grub4dos 的 map 命令,也仅仅在实模式下有效,在 PE 下无效。只能依靠 firadisk 和 winvblock 之类的驱动才行。也因此,这个问题与 firadisk 和 winvblock 有关。想到这一点并不难。另外,有谁证明过,firadisk 和 winvblock 支持不连续的 iso 文件?我好像从来没见到有人证明过。
搭车问个问题:原来版本的grldr菜单写“title maxdos\n”就不会在屏幕最下面显示任何提示了,新版为何无效? plutoshen 发表于 2015-8-2 12:07
搭车问个问题:原来版本的grldr菜单写“title maxdos\n”就不会在屏幕最下面显示任何提示了,新版为何无效 ...
是哪个系列的版本?最早从何时开始出问题(版本的日期)?最新版本解决了没有?
如果是 0.4.5 系列,一般是 chenall 负责。如果是 0.4.6 系列,一般是由 yaya 解决。 不点 发表于 2015-8-2 12:11
是哪个系列的版本?最早从何时开始出问题(版本的日期)?最新版本解决了没有?
如果是 0.4.5 系列, ...
版本是最新的grub4dos-0.4.6a-2015-07-24.7z
为了菜单看起来美观,不显示最上和最下的提示,我的menu.lst是这样的:
call Fn.0 0x40000 "!BAT\necho -P:0000 $\t\t\t\t\t123\t\t\t\t\0" && initscript (md)0x200+1
graphicsmode -1 1024 768
find --set-root /boot/run
command --set-path=()/boot/
write 0x8274 0x2001
debug off
title SelectBoot.iso \n 123
find --set-root /SelectBoot.iso
map --mem /SelectBoot.iso (0xff)
map --hook
chainloader (0xff)
以下省略
原来一切正常,现在\n后面的123显示在方框下面英文提示的上面 yaya 可能疏忽了,当有 \n 存在时,不应该显示系统默认的提示信息,而只应该显示 \n 之后的信息。
你可以把问题报告给 yaya。
不点 发表于 2015-8-2 13:52
yaya 可能疏忽了,当有 \n 存在时,不应该显示系统默认的提示信息,而只应该显示 \n 之后的信息。
你可 ...
不知如何联系,烦请老大转达,谢谢! 搭车问个问题:原来版本的grldr菜单写“title maxdos\n”就不会在屏幕最下面显示任何提示了,新版为何无效?
正在完善中. 2、若SKY52PE.ISO不连续(测试时,碎片数目为3个),
增加 --mem 参数,创建1个内存盘试一试。 2011yaya2007777 发表于 2015-8-3 09:12
增加 --mem 参数,创建1个内存盘试一试。
yaya 大,0.46a 有没有简单、直接判断某文件是否连续存储的命令。 blocklist FILE 2011yaya2007777 发表于 2015-8-3 09:12
增加 --mem 参数,创建1个内存盘试一试。
请问yaya大,目前所有的G4D版本都不能完全识别一些联想电脑的非连续内存,2G的内存只能认出511M,这个问题有没有可能解决呢?这些电脑都是老旧的联想品牌机,许多单位还没有淘汰。 你是怎样使用G4D识别内存的?似乎与电脑品牌没有关系吧。 plutoshen 发表于 2015-8-5 17:06
请问yaya大,目前所有的G4D版本都不能完全识别一些联想电脑的非连续内存,2G的内存只能认出511M,这个问 ...
用displaymem 看看 2011yaya2007777 发表于 2015-8-5 17:42
你是怎样使用G4D识别内存的?似乎与电脑品牌没有关系吧。
可能您没有接触过某些联想的品牌机,我从前也是不知道这个的。
去年我在几台联想机器上发现,明明内存条是2G的,但是map --mem 512M的iso提示内存不足,重新启动查看grub4dos的菜单,显示类似下图
chenall 发表于 2015-8-5 17:57
用displaymem 看看
现在我手里也没有那样的机器了,但是很多小公司里还有,论坛里也有人提过:
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=303582&highlight=511M
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=334004&highlight=511M
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=334002&highlight=511M 我理解是指连续的最大内存块=511Mb grub4dos 屏幕顶行显示的三个内存分别是:
1、用户可用的常规内存大小,以 KB 为单位。它是原始状态下(即未经 map --hook 之类的操作之前)的 BIOS 常规内存的大小。一般来说,它就是通电自检(POST)之后 BIOS 数据区 0x413 处的双字节(Word)值。
2、扩展内存的第一个(用户可用的)连续内存块的大小,以 MB 为单位。扩展内存起始于 1M 处。因此,此处的大小就是从 1M 开始的连续内存块的大小。
3、内存地址在 4G 以上的那部分(用户可用的)内存块的大小,以 MB 为单位。它通常是连续的。如果是不连续的,那么也只显示出第一个连续内存块的大小。
如果仅仅基于屏幕顶行所显示的这三个内存块大小的信息,那么我们无法了解系统中最大的连续内存块有多大,以及最小的连续内存块有多小。要了解这些信息,需要用 grub4dos 内建的 displaymem 命令。
displaymem 命令可以显示出内存块的详细分布情况。无论你是否使用了 map 命令,displaymem 命令都是显示出原始的 BIOS 内存分布情况。就是说,displaymem 命令不受 map 命令的影响。
map 命令能够使用系统中的全部可用内存,而不是局限于屏幕顶行所显示的这三个内存块信息。屏幕顶行所显示的这三个内存块信息是很粗略的,只具有粗略的参考价值,只是给人看的,没有实际用处。
胡子是检验剃须刀的唯一真理,空谈理论不如实际测试。
大于511M的文件map失败,小点的就成功。 plutoshen 发表于 2015-8-8 10:39
胡子是检验剃须刀的唯一真理,空谈理论不如实际测试。
大于511M的文件map失败,小点的就成功。
你只需要看看displaymem命令显示的内存块,看看最大的那块内存是多大.也就只能map多大的
页:
[1]