|
原帖由 ccontion 于 2012-7-30 21:28 发表
非常感谢兄台,现在问题基本确认了,就是低位内存不足导致的,我用grub2引导的时候出现了如下更详细的提示:too small lower memory (0x99100 > 0x95800).这个0x95800等于我前面帖子提到的598KB。
看来运行memtest86至少需要612KB的低位内存。
可是令我无法理解的是,相同的机器,相同的低位内存大小,为什么syslinux可以顺利引导memtest86+呢?
恕我直言,你不要以为 syslinux 能够运行这个 memtest,就以为 syslinux “没错”、“最好”。
恰恰相反,syslinux 未能检测到内存冲突,即,在内存已经发生冲突的情况下盲目地、强行地启动 Linux 内核,这反映了 syslinux 在这方面的缺陷、不足。正确的做法本来就应该是拒绝启动。而这个 Linux 内核能够启动而不发生死机,应该说是运气。只要它去启动这个 Linux,这就是错误。不能以启动以后是否死机而论 “英雄”(不以成败论英雄)。有时候,内存冲突已经发生,但还没有导致死机,而是处于潜在的危险状态,随时都可能发生死机。比如,当进入保护模式的操作系统以后,由于 RAID 的常规内存代码或数据被破坏,那么,保护模式的操作系统有可能得到错误的信息,从而产生死机或者其他莫名其妙的问题。 |
|