无忧启动论坛
标题:
还在使用 GNU Grub 0.9.7 的朋友请注意
[打印本页]
作者:
blank007
时间:
2010-10-5 23:28
标题:
还在使用 GNU Grub 0.9.7 的朋友请注意
还在使用 GNU Grub 0.9.7 的朋友,如果你的计算机内存已经 超过了 2G ,请看看如下的语句执行时会出现什么情况?
title 0. Ghost 11.5.1
kernel /boot/grub/memdisk raw c=125 h=4 s=36 floppy
initrd /boot/image/msdos/ghost.zip
呵呵,会出现这样的错误:
selected item can't fit into memory (大概的情况)
这就是说,这样的语句是不能正确执行的。
那么,在怎么办呢?方法有两个:
1.改用最新的 Grub4DOS 。最新的 Grub4DOS 已经修正了 4G 内存时的情况。可以正常执行上述语句。
2.继续使用 GNU Grub 0.9.7。但要将上述语句修改为:
title 0. Ghost 11.5.1
#强制将 内存设定为 128M
uppermem 131072
kernel /boot/grub/memdisk raw c=125 h=4 s=36 floppy
initrd /boot/image/msdos/ghost.zip
uppermem 131072 的意思是强制让 grub 认为计算机的内存只有 128M。这样理解:
在这种情况,凡是用 initrd 虚拟的磁盘,都会被放在 128M以内的地方。即使你有4G以上的内存,grub 也会这样做。
这样,就避免了计算机内存大于2G时,grub 无法处理的问题。
我猜测,uppermem 语句 对 map 指令也有类似的影响。
请大家试试。
[
本帖最后由 blank007 于 2010-10-5 23:30 编辑
]
作者:
ql1307096
时间:
2010-10-6 11:47
我用map,早就不用memdisk了
作者:
2010wbhqf
时间:
2010-10-6 11:50
呵呵,grub 0.97现在用的人不多了,都用grub4dos或grub2了。
作者:
yudian4756
时间:
2010-10-7 00:22
基本上只有在linux系统发行在09年6月以前的发行版中存在的、默认的比较多用grub0.97进行引导!grub0.97好象已经停止研发有4年多了,老了。意义不大了。
现在国际上主流的linux发行版基本不使用grub4dos,估计是认为grub4dos“不正统”吧。多是采用比较“正统”的grub2。
作者:
yjd
时间:
2010-10-7 09:26
确实老了,好像从06以后就没再用过这个了。
作者:
不点
时间:
2010-10-12 19:06
新版的 grub4dos 确实可以访问超大的内存了。但是,mini98 却不能在大内存下运行。
今天我刚刚在一台有 4G 内存的电脑上启动 mini98.gz,失败。用以下方法启动,可以成功:
map --mem=0x200000 /mini98.gz (hd0)
map --hook
chainloader (hd0)+1
root (hd0,0)
boot
复制代码
此处,--mem=0x200000 就表示将映像放置在内存 1G 处。也就是说,1G 以上都被虚拟磁盘占据。win98 的操作系统只能发现 1G 的内存,所以,启动成功。
我试过 --mem=0x400000,而 win98 启动失败。也就是说,2G 内存仍然失败。估计比 2G 稍微低一点,就可以成功了。
作者:
blank007
时间:
2010-10-12 21:01
标题:
回复 #6 不点 的帖子
呵呵。阁下也来回帖?荣幸之至啊。
新版的 Grub4dos 取消了 uppermem 指令。
而我还是喜欢用 gnu grub 0.97 。
这个现象是我在无意中发现的。因为在以前,我用 gnu grub 0.97 ,试图启动内存大于4g 的计算机时,除了 winpe 能启动外,凡涉及 memdisk 和 initrd 指令的各类系统均不能启动。后来,仔细看了看 其中的指令,试了一下。果然,uppermem 指令起作用了。
作者:
不点
时间:
2010-10-13 12:50
uppermem 的目的是限定内存的容量。map --mem=... 也可达到一样的效果。被内存盘所占据的内存,都不能被操作系统使用了,所以,这间接达到了限定内存的目的。
uppermem 对内存的操作有副作用,因此取消了。grub4dos 的内存操作很规范(简化了),都是通过 int15 来实现的,与操作系统能够良好兼容。uppermem 受 multiboot 规范的影响。而 grub4dos 已经把 multiboot 隔离开来了,不启动 multiboot 内核的时候,不使用 multiboot 的相关代码。而 uppermem 却和 multiboot 的内存搅和在一起。因此把 uppermem 去掉了。
作者:
2010倒影
时间:
2010-10-14 00:06
呵呵,老版本的早就没用了,也没注意有这问题
!~
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/)
Powered by Discuz! X3.3