无忧启动论坛

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

[讨论] 单个镜像文件跨了GRUB的3.25G的高低位内存化分,grub0.4.6a

[复制链接]
跳转到指定楼层
1#
发表于 2013-2-17 01:13:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我的G41主板I32100的U,4G内存
不知道是不是主板的兼容性不好,GRUB只识别出511M的扩展内存!但高位内存识别成1022M了,



有趣的是,虽然只识别了511的扩展内存,但可以加载超过511M的镜像文件, 600~1.5G的镜像都可以加载(在低位内存)再大我没试过了. 2.5G的win7VHD加载不了!只能挂载启动!
不过我尝试过加载1.2G的VHD的RAMXP镜像,加了--top参数,但是启动后只有1.71G的可用内存, 想了半天,XP识别2.91G内存,镜像占去1.2G所以系统只有1.71G可用内存.所以肯定是加载在低位内存了,


按理说4G内存,3.25G为低位内存,那高位内存只有700多M才对呀!

即然GRUB识别出1022M的高位内存,我做了个1020M的镜像,map --mem --top /winxp/winxp.vhd (hd0) 加载到高位内存成功启动了,启动成功后和直接HDD方式挂载启动一样,
可用内存为2.91G,加上1020M的镜像文件,差不多4G用完,,128集显不知用的哪的内存,总之用着很稳定,速度飞  ^_^ 再打算分个1G做RAMDISK,安装软件,4G内存利用率老高了,哈哈!!

我试着用了各总版本的GRUB 都同样只能识别成, 635K/511M/1022M
不以3.25G化分高位内存,是我的机器问 题吗?
有其它人也题到这样的问题么????

给出我的菜单文件
color blue/green yellow/red white/magenta white/magenta
color border=0xEEFFEE
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32
splashimage /boot/grub/splashimage.xpm || splashimage /boot/grub/splashimage.bmp
font /unifont.hex.gz
timeout 30
default /default
write 0x8274 0x2001
title 运行内存 WindowsXP (for WinXP.vhd)
find --set-root /winxp/winxp.vhd
map --mem --top /winxp/winxp.vhd (hd0)
map --hook
root (hd0,0)
chainloader /ntldr
title 更新内存 WindowsXP (for WinXP.vhd)
find --set-root /winxp/winxp.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /winxp/winxp.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/winxp/winxp.vhd;\n\0
root (hd0,0)
chainloader /ntldr
title 运行内存 Windows7 (for WIN7.vhd)
find --set-root /win7/win7.vhd
map --mem --top /win7/win7.vhd (hd0)
map --hook
root (hd0,0)
chainloader /ntldr
title 更新内存 Windows7 (for Win7.vhd)
find --set-root /win7/win7.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /win7/win7.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/win7/win7.vhd;\n\0
root (hd0,0)
chainloader /bootmgr
title 挂载运行 Windows2008 (for Win8.vhd)
find --set-root /win8/Win8.vhd
map --heads=2 --sectors-per-track=18 --mem (md)0x800+4 (99)
map /win8/Win8.vhd (hd0)
map (hd0) (hd1)
map --hook
write (99) [FiraDisk]\nStartOptions=disk,vmem=find:/win8/Win8.vhd;\n\0
root (hd0,0)
chainloader /bootmgr
title 找到NTLDR并启动Windows NT/2K/XP\n find and load NTLDR of Windows NT/2K/XP
fallback +1
find --set-root --ignore-floppies --ignore-cd /ntldr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /ntldr
chainloader /ntldr
savedefault --wait=2

title 启动 Windows2003 PE
find --set-root /boot/typeldr
chainloader /boot/typeldr
boot
title 启动 Windows7 PE
find --set-root /boot/WIN7MGR
chainloader /boot/WIN7MGR
boot

title 从硬盘启动               
root (hd0,0)
chainloader +1
title 重启
savedefault --wait=2
reboot
2#
 楼主| 发表于 2013-2-17 01:16:12 | 只看该作者

回复 #1 liusj8000 的帖子

不过不同版本的DISPALYMEM 显示的内容略有不同!
回复

使用道具 举报

3#
发表于 2013-2-17 07:00:08 | 只看该作者
displaymem 命令显示的结果是准确的。你研究 displaymem 的显示结果就知道了,你的主板把内存弄成了碎块,没办法。

我试着用了各总版本的GRUB 都同样只能识别成, 635K/511M/1022M
不以3.25G化分高位内存,是我的机器问 题吗?
有其它人也题到这样的问题么????


635K 是用户可用的自由常规内存的大小。你的主板 BIOS 占用了 5K 常规内存作为“扩展的 BIOS 数据区”。635K + 5K = 640K,这个 640K 就是总的常规内存量,或者说是常规内存的最大值。所有的电脑都具有 640K 的总常规内存量。

511M 表示从地址 1M 开始,有 511M 的连续自由内存。其后(在地址 4G 以下)可能还有别的自由内存块,但不会在屏幕顶行显示出来的。无论是否显示出来,map --mem 都能使用那些内存,不用担心。

1022M 表示在地址 4G 处,有一个 1022M 的连续自由内存块。
回复

使用道具 举报

4#
发表于 2013-2-17 17:02:15 | 只看该作者
这个和grub没关系,是主板占用集显地址的问题,把3.25G一下割成了不连续的段

关掉核显用独显就应该正常了。
回复

使用道具 举报

5#
 楼主| 发表于 2013-2-18 22:48:30 | 只看该作者
OK 了了,谢谢各位大大的解释!

点评

短篇小说http://www.xxlvyuan.com/html/duanpianzuopin/ 小故事  发表于 2015-1-1 14:13
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-16 06:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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