无忧启动论坛

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

[求助] Grub4Dos内存识别问题!

[复制链接]
跳转到指定楼层
1#
发表于 2015-8-10 11:14:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题,4G内存(单条)想装个ramos,结果G4G只识别了500M和511M的内存大小,试过几个版本的G4D也是一样。请教大侠这个是什么原因呢,有没有解决办法呢?
主板名称:        Gigabyte GA-H61M-D1
DRAM #1 插槽:         4 GB  (DDR3-1600 DDR3 SDRAM)
2#
发表于 2015-8-10 12:27:48 | 只看该作者
在 grub4dos 命令行下,敲入 displaymem 命令,看看主板的内存碎块是不是很严重。

如果碎片很严重,导致你没有足够大的内存块来存放你的 IMG,那么,你就只能放弃 grub4dos 的方案了。

建议的解决办法:

1、采用别的方案,放弃 grub4dos。

2、再添加 2G 或 4G 内存,让系统中存在一个足够大的连续内存块,这样也就可以继续使用 grub4dos 了。

点评

终于看到大师解答了。。。以前有解决,重装系统丢了,我发了2个图,大师帮俺看看。。。 [attachimg]222757[/attachimg] [attachimg]222758[/attachimg] [attachimg]222759[/attachimg]  详情 回复 发表于 2015-8-10 15:47
终于看到大师解答了。。。以前有解决,重装系统丢了,我发了2个图,大师帮俺看看。。。  发表于 2015-8-10 15:41
回复

使用道具 举报

3#
 楼主| 发表于 2015-8-10 14:07:25 | 只看该作者
不点 发表于 2015-8-10 12:27
在 grub4dos 命令行下,敲入 displaymem 命令,看看主板的内存碎块是不是很严重。

如果碎片很严重,导致 ...

可以采用其他的什么方案呢?
回复

使用道具 举报

4#
发表于 2015-8-10 15:47:56 | 只看该作者
不点 发表于 2015-8-10 12:27
在 grub4dos 命令行下,敲入 displaymem 命令,看看主板的内存碎块是不是很严重。

如果碎片很严重,导致 ...


终于看到大师解答了。。。以前有解决,重装系统丢了,我发了2个图,大师帮俺看看。。。

麻烦大师啦。。。。



回复

使用道具 举报

5#
发表于 2015-8-10 17:32:31 | 只看该作者
这个图片的内存还算是比较正常的呀.

点评

再次打扰下C大师,帮忙也解答下7楼吧。。。先谢谢啦。。。  发表于 2015-8-10 20:16
非常感谢C大的回复,要是能向不点大师一样,多指点下就好了,谢谢。  发表于 2015-8-10 20:04
回复

使用道具 举报

6#
发表于 2015-8-10 18:33:22 | 只看该作者
楼上 q 兄发的第一张图,就已经显示出 4G 以下有 2.5G  的内存块,4G 以上有 5.1G 内存块。第二张图只不过更详细一些,列出了很多碎片。用户只需要关注 Usable RAM(可用内存),而 Reserved 是系统保留内存,用户不能够去使用它们。

这台机器可以仿真运行某个大的 IMG,应该没有任何问题的。当然,你的 grub4dos 版本比较旧,也许会存在程序 bug 之类的。建议更新为最新版。


点评

不点大师,首先感谢你的答复。。。 可以详细讲解下我机子运行大的IMG可以最大多少??? 低位是2.5G左右,高位5.1G左右??? 还是2.5+5.1=7.6左右的IMG。。。。。。。 上面3个容量大小的IMG都可以??  详情 回复 发表于 2015-8-10 20:14
回复

使用道具 举报

7#
发表于 2015-8-10 20:14:24 | 只看该作者
不点 发表于 2015-8-10 18:33
楼上 q 兄发的第一张图,就已经显示出 4G 以下有 2.5G  的内存块,4G 以上有 5.1G 内存块。第二张图只不过 ...

不点大师,首先感谢你的答复。。。

可以详细讲解下我机子运行大的IMG可以最大多少???

低位是2.5G左右,高位5.1G左右???

还是2.5+5.1=7.6左右的IMG。。。。。。。

上面3个容量大小的IMG都可以??

我记得以前搞过一个大的IMG,从来不蓝屏的。。。。。
具体不记得多大的啦


上面的问题麻烦解答下,另外麻烦不点大师解答下我第2张图的碎片信息,好吗?

能具体到每一行就更加好啦,简单的说一下也行。。。。

俺看不懂,真的。。。
先谢谢啦。。。
回复

使用道具 举报

8#
发表于 2015-8-10 20:29:03 | 只看该作者
q 兄真是太客气了。我就根据自己的了解来说一说吧。

4G 以内最大的内存块是 2.5G,因此,用 map --mem 可以支持 2.5G 的 img。而 4G 以上还有一块 5.1G 的连续内存块,所以,用 map --mem --top 可以加载 5.1G 的 img。

由于最大的连续内存块是 5.1G,因此,你也只能加载最大为 5.1G 的 img,不能更大了。

但是,你可以加载两个 img:一个是 2.5G,一个是 5.1G,这是可以的。

回复

使用道具 举报

9#
发表于 2015-8-10 21:09:42 | 只看该作者
再说说 Usable RAM 的信息:

第一块起始地址 0,长度 9E800,是常规内存。它起始于中断向量表,长度换算成 KB 是 634,这与屏幕顶行显示的是一样的。

第二块起始地址 100000,长度 9cbc2000。这也就是扩展内存最开头的那一块,起始地址是 1M,长度是 2.5G。

第三块起始地址 9ccf2000,长度 2c2000。这一块,起始地址是(大约) 2.6G,长度是(大约)2.8M(很小)。

第四块起始地址 9e1d4000,长度 1000。这一块,长度只有 4K(很小)。

第五块起始地址 9E3DB000,长度 476000。这一块,长度是 4.6M(很小)。

第六块起始地址 9EFE2000,长度 1E0000。这一块,长度是 1.9M(很小)。

第七块起始地址 100000000,长度 13F000000。这也就是 4G 以上的内存块,起始地址是 4G,长度是 5.1G。从显示信息来看,在这台机器上,位于 4G 以上的内存是连续的,这是唯一的一块位于 4G 以上的内存块,因此,在 4G 以上没有碎块。这可能是个普遍现象。也就是说,如果用户发现 4G 以下内存碎块太多,可以加大内存,那么,超过 4G 的部分通常都是连续的。

点评

谢谢大师讲解,请问大师,可不可以自定义map到最大的连续块呢,还是Grub4Dos已经自动选择最大的连续块来map了。如可以自定义,比如我想map到最大的连续块“第二块起始地址 100000,长度 9cbc2000。这也就是扩展内存最  详情 回复 发表于 2015-8-24 13:57
谢谢大师讲解,请问大师,可不可以自定义map到最大的连续块呢,还是Grub4Dos已经自动选择最大的连续块来map了。如可以自定义,比如我想map到最大的连续块“第二块起始地址 100000,长度 9cbc2000。这也就是扩展内存最  详情 回复 发表于 2015-8-24 13:57
不点大师也客气了,俺客气是应该的。。。 毕竟是请教问题嘛,你不同啦,你是大家公认的大师。。。 以前你也和俺聊过。。。嘿嘿。。。 另外俺还有个核心问题想问下, 起始地址xxxxxxx,长度xxxxxx, 这个地  详情 回复 发表于 2015-8-11 09:12
回复

使用道具 举报

10#
发表于 2015-8-11 09:12:31 | 只看该作者
不点 发表于 2015-8-10 21:09
再说说 Usable RAM 的信息:

第一块起始地址 0,长度 9E800,是常规内存。它起始于中断向量表,长度换算 ...


不点大师也客气了,俺客气是应该的。。。
毕竟是请教问题嘛,你不同啦,你是大家公认的大师。。。
以前你也和俺聊过。。。嘿嘿。。。

另外俺还有个核心问题想问下,

起始地址xxxxxxx,长度xxxxxx,   长度换算成 KB 是 xxxxxxx        这个地方的长度换算是什么算的???
就拿第一块的,第二块的来说吧。。。。
很复杂吗??

要是觉得和俺说不清楚就算了,下次碰到一个机子,直接发图给大师你翻译下,嘿嘿。。
再次打扰了。。。

点评

你提的这个问题,碰巧我也算是懂,所以能够回答。 地址和长度,都是用十六进制表示的,是以字节个数为单位的。而 1KB 就是 1024 个字节。所以,你用电脑上的计算器就可以计算了。 举例: 在计算器上,选中  详情 回复 发表于 2015-8-11 09:43
回复

使用道具 举报

11#
发表于 2015-8-11 09:43:44 | 只看该作者
q8155128 发表于 2015-8-11 09:12
不点大师也客气了,俺客气是应该的。。。
毕竟是请教问题嘛,你不同啦,你是大家公认的大师。。。
以 ...

你提的这个问题,碰巧我也算是懂,所以能够回答。

地址和长度,都是用十六进制表示的,是以字节个数为单位的。而 1KB 就是 1024 个字节。所以,你用电脑上的计算器就可以计算了。

举例:

在计算器上,选中十六进制,输入 9E800。然后再选中十进制,就可看到结果是 649216。再除以 1024 即得 634。

点评

呵呵 大师是GRUB的创造者之一 什么叫碰巧我也算是懂,所以能够回答 太谦虚了很危险...... 在这非常感谢大师的耐心解答..... 和大师在一切很开心....  详情 回复 发表于 2015-8-11 15:37
回复

使用道具 举报

12#
发表于 2015-8-11 15:37:29 | 只看该作者
不点 发表于 2015-8-11 09:43
你提的这个问题,碰巧我也算是懂,所以能够回答。

地址和长度,都是用十六进制表示的,是以字节个数为 ...

呵呵
大师是GRUB的创造者之一
什么叫碰巧我也算是懂,所以能够回答
太谦虚了很危险......

在这非常感谢大师的耐心解答.....
和大师在一切很开心....
回复

使用道具 举报

13#
 楼主| 发表于 2015-8-24 13:57:13 | 只看该作者
不点 发表于 2015-8-10 21:09
再说说 Usable RAM 的信息:

第一块起始地址 0,长度 9E800,是常规内存。它起始于中断向量表,长度换算 ...

谢谢大师讲解,请问大师,可不可以自定义map到最大的连续块呢,还是Grub4Dos已经自动选择最大的连续块来map了。如可以自定义,比如我想map到最大的连续块“第二块起始地址 100000,长度 9cbc2000。这也就是扩展内存最开头的那一块,起始地址是 1M,长度是 2.5G。” 要如何写指令呢
回复

使用道具 举报

14#
 楼主| 发表于 2015-8-24 13:57:13 | 只看该作者
不点 发表于 2015-8-10 21:09
再说说 Usable RAM 的信息:

第一块起始地址 0,长度 9E800,是常规内存。它起始于中断向量表,长度换算 ...

谢谢大师讲解,请问大师,可不可以自定义map到最大的连续块呢,还是Grub4Dos已经自动选择最大的连续块来map了。如可以自定义,比如我想map到最大的连续块“第二块起始地址 100000,长度 9cbc2000。这也就是扩展内存最开头的那一块,起始地址是 1M,长度是 2.5G。” 要如何写指令呢

点评

首先,是可以自定义map到某个内存块位置了. 命令 map --mem=xxxxx /yyy.img (z) 从1mb开始的例子(注这个内存地址以扇区为单位,0x100000=0x800*0x200 map --mem=0x800 /yyy.img (hd0) 但是使用了上面的命令之  详情 回复 发表于 2015-8-24 14:27
回复

使用道具 举报

15#
发表于 2015-8-24 14:27:08 | 只看该作者
Bigmar 发表于 2015-8-24 13:57
谢谢大师讲解,请问大师,可不可以自定义map到最大的连续块呢,还是Grub4Dos已经自动选择最大的连续块来m ...

首先,是可以自定义map到某个内存块位置了.
命令
map --mem=xxxxx /yyy.img (z)

从1mb开始的例子(注这个内存地址以扇区为单位,0x100000=0x800*0x200
map --mem=0x800 /yyy.img (hd0)

但是使用了上面的命令之后你不可能启动系统了,因为供系统可用内存就只有1MB了.没有办法使用.

map映射的内存从开始处都是操作系统不可访问的.
回复

使用道具 举报

16#
发表于 2015-8-24 14:57:41 | 只看该作者
map 命令是自动选择可用的内存块的。如果所有的连续内存块都小于 IMG 的长度,那么,map 命令会报错,拒绝执行 map 命令。如果有一块能够达到 IMG 的长度,则 map 会使用这一块来装入 IMG。如果有多个内存块都可以装入这个 IMG,那么 map 会选取其中的一块,用户不必关心究竟使用了哪一块,因为不管哪一块都行。

chenall 提到的那条自定义内存地址的命令,是给玩家们使用的,不是让普通用户使用的。玩家们可以让 map 命令只使用自己所希望的、自己所确定的内存地址,而不是由 map 自动挑选的地址。

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-9-17 02:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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