我在带有Intel Core 2 Duo处理器的HP服务器上运行Debian Lenny 64位。 它使用LILO而不是GRUB进行引导,因为它具有XFS根分区。 直到今天,它具有3GB(2×512MB和2×1GB)的ECC RAM。 我一直在EDAC上偶尔得到ECC的错误,但由于没有崩溃,我并不担心。
今天,我试图做一个Seagate固件更新,希捷推荐两个驱动器(仅数据,而不是/)在该机器上的mdadm中的RAID-1。 我没有设法做到这一点,甚至没有去那个光盘的自述文件,因为它是永久启动。 我厌倦了,并试图重新启动系统。 它挂在LILO的三行…之后。
我认为我可能因为ECC错误而导致内存不足,所以我尝试了很多不同的configuration(使用6个DIMM,其中4个加上2个非ECC DIMM,显然不是同一时间),但是却无法达到开机。
我运行memtest86,希望隔离坏RAM。 这导致memtest86的testing#2中每次都出现完全相同的错误,无论使用哪个DIMM,也不pipe使用哪个插槽。 它总是在第一个占用的RAM插槽上返回3个错误。 我无法理解它返回的错误,但如果相关的话可以在这里生成它们。
试图从主磁盘启动Debian,甚至没有显示“LILO”这个词。 它只是挂着一个闪烁的光标。 这个,连同每次都有内存错误的事实,让我相信主板或者CPU有问题。
然而,非常奇怪的是,Knoppix开心愉快地运行没有问题。 我无法运行lilo,因为Knoppix是32位的,系统是64位的。 但是这让我质疑上面的一些东西 – 肯定Knoppix不能运行RAM错误或坏处理器?
听起来像主板上的插槽是不好的。 如果可以跳过使用第一个插槽,请尝试一下,看看会发生什么。 如果没有问题,那么这个问题已经得到了很好的证实。
检查肮脏的联系人,插槽中的污垢等。也许你会得到运气,这是很简单的事情。
如果你有一个备用的盒子,试着把它放在那个盒子里,然后运行memtest,看看会发生什么。
我怀疑控制器使用的磁盘,磁盘控制器或总线。 如果您在LILO中的L之前失败,那么LILO的分区正在成功读取。 Knoppix不必处理这个问题,所以它启动得很好。 你可以从Knoppix安装任何东西吗?
我同意David
的分析。
已经使用memtest86 (也就是Ubuntu LiveCD)来隔离RAM错误。
memtest86 +页面上的这些故障排除说明也是一个很好的解读。
内存错误是非常“如果”。 这就是为什么软件有时甚至可以运行有缺陷的RAM。
有时,错误位是不会导致错误的。 一个例子是,如果这些位置仅仅存储额外填充的数据位,以确保存储器alignment,但实际上并未被软件使用。 即使它被用来存储实际的程序,也可能只是那些实际上并不重要的指令或处理器所解码的那些位。 大多数现代PC将具有在物理和虚拟存储器位置之间转换的存储器pipe理单元(MMU)。 所以,尽pipe有故障的RAM是存储器的初始部分,但是它本质上不能被寻址该RAM特定块的软件使用。
然而,正如其他人所说,这很可能是一个错误的插槽。 如果发现故障,请避免使用该插槽。 如果它是RAM的固定区域,甚至可以通过在Linux内核中标记BADMEM区域来避免使用它。
内存错误会回来,早晚咬你。