故障现象
在办公局域网中一台服务器装有Intel Pentium Ш处理器,平时工作均正常,但最近经常出现蓝屏死机故障,导致管理工作无法正常进行。事情是这样的,我在一次死机的时候关闭了服务器,将其中的 S D R A M由原来的 12 8 M B升级到 512 M B,并且在系统C M O S设置中选择载入最优参数设置(即选择“L O A D BIO S D E F A U L T S”),对内存的每个单元进行检测。在完成设置重新启动服务器后,内存检测一切正常,但是屏幕提示需要重新SETUP,单击指定的“F2”键后又出现死机现象。
诊断过程
这个问题看起来好办多了,既然是在添加操作之后出现问题,那么首先,检查是否新添加的设备本身有物理故障或者针对设备进行的设置有错误。于是,我按照缩小故障源的思路把服务器中现有的内存条换回原来的样子,然后以每次仅去除一个硬件设备的方法依次检查软驱、硬盘、光驱等设备。结果发现,系统的各个硬件设备并没有存在故障问题。于是排除了硬件的故障,看来还是要换一个角度再检查。
由于启动后系统提示需要重新SETUP,我根据这个现象分析,出现故障可能与系统SETUP设置有关,特别是与对内存每个单元进行检测的设置有关。在确定检查的方向后,我关闭了服务器。然后再拔出电池对电池插脚进行短接放电,但是检查之后仍然不能解决问题。我尝试找到主板清除CMOS的跳线设置,将插脚线由1一2改为2一3 ,经过一段时候后再恢复原位。开机再试,结果系统恢复正常,没有其他提示信息出现。接下来仍然对内存进行升级并调整CMOS SETUP设置,特别是注意将对内存的检测设置为对每MB进行检测,至此系统完全恢复正常。
原来出现故障的根本原因,是由于服务器对所安装内存设置的校验方式 与内存本身所支持的方式并不配合。看来,网管不光是要关心网络的连接状况,也要对网络内使用的所有设备多加留心。
排除心得
1 内存校验方式。
引起这个故障原因是服务器内存的缺省设置为ECC(带校验),同时系统CMOS 中又设置对内存的每个单元都进行检测,但用来升级的普通内存并不支持这一操作,因此导致了上述的故障。这类问题的排除关键是要清除CMOS设置,调整有关参数设置。
实际上,内存有三种比较常见的校验方式,下面进行简单地总结。
对于内存的奇偶校验(Parity)要从比特概念说起,比特(bit)是内存中的最小单位,也称“位”,它只有两个状态分别以1 和0表示。规定将8个连续的比特叫做一个字节(byte)。非奇偶校验内存的每个字节只有8位,若它的某一位存储了错误的数值。就会使其中存储的相应数据发生改变而导致应用程序发生错误。而奇偶校验内存在每一字节(8位)外又额外增加了一位作为错误检测之用。比如一个字节中存储了某一数值“10011110”,把该数值的每一位相加,即 1+0+0+1+1+1+1+0-5,若其结果是奇数,校验位就定义为1, 反之则为0。当CPU读取储存的数据时,它会再次相加前8位中存储的数据 ,计算结果是否与校验位相一致。当CPU发现二者不同时就作出一定的反应。现在主板都可以使用带奇偶校验位或不带奇偶校验位两种内存条,但要注意两种不能混用。
而ECC(Error Chechng and CorreCting)内存,它也是在原来的数据位上外加位来实现的。如8位数据,则需1位用干Parity检验,5位用于ECC,这额外的5位是用来重建错误的数据的。当数据的位数增加一倍Parity也增加一倍,而ECC只需增加一位,当数据为64位时所用的ECC和Party位数相同(都为8)。在那些Parity只能检测到错误的地方,ECC可以纠正绝大多数错误。若工作正常时,一般不会发觉数据出过错,只有经过内存的纠错后,计算机的操作指令才可以继续执行。
SPD(Serial Presence Detecl串行存在探测),它是1个8针的SOIC封装(3mm x 4mm)256字节的EEPROM(Electrcally Erasable Programmable ROM电可擦写可编程只读存储器)芯片。型号多为24LC01B,位置一般处在内存条正面的右侧,里面记录了诸如内存的速度、容量、电压与行、列地址带宽等参数信息。当开机时PC的BIOS将自动读取SPD中记录的信息,如果没有SPD,就容易出现死机或致命错误的现象。它是识别PC100内存的一个重要标志。个别硬件厂商为了降低生产成本,又要从表面上符合PC100标准,于是就在PCB板上焊上一片空的SPD,这样就有可能导致在100MHz以上外频不能正常工作。
2 在CMOS中载入最优参数的方式。
另外,在这次的故障中用到了载入最优参数设置。CMOS SETUP载入最优参数的设置通常有两种:一种是SETUP优化参数,它可以起到优化整个系统的目的,但是需要系统支持,因此稳定性不能得到保证;另一种则是BIOS优化参数,这种参数的稳定性最好,通常建议使用。当系统出现故障时,不妨先将稳定性最好的参数装入,解决问题后再行恢复。需要注意的是,一般情况下不要轻易拔出电池,在解决故障中采用的放电操作的目的只是为了方便清除CMOS的设置内容。