linux bonding 怎麼做到fast failover (技术)

linux bonding 怎麼做到fast failover (技术),第1张

Linux网卡bonding

随着科学技术的日益革新,数据的安全性已经逐渐体现出了它的重要意义。可以设想,当一个人所有的个人资料都不负存在,那是多么可怕的事情。网络技术的深入使用,数据的网络化传输已经成为了重要,甚至主要的传输方式。所以数据服务器能够正常提供网络服务是所有供应商都需要考虑的问题。

在这个背景下,单网卡的应用已经捉襟见肘,设备冗余技术的普及已是枝繁叶茂。本文之后就引用Linux *** 作系统下的多网卡bonding技术来阐述这一容错概念。

负载均衡功能也是网卡bonding的另一个功能,它可以实现多网卡同时工作,提高系统网络处理的吞吐能力。

一、网卡的负载均衡模式(mode = BOND_MODE_ROUNDROBIN)

1)建立bond虚设备

建立一个ifcfg-bond0的设备,然后配置如下信息即可。

DEVICE=bond0

BOOTPROTO=static

IPADDR=172.16.64.208

NETMASK=255.255.224.0

ONBOOT=yes

TYPE=Ethernet

2)配置接口文件

由于使用一个虚拟的ip地址,所以,其他接口设备都不配置ip信息。

3)配置bonding工作方式

打开/etc/modprobe.conf文件,将bonding的工作模式配置为如下模式。

alias bond0 bonding

options bond0 mode=0 arp_interval=500 arp_ip_target=172.16.64.86

4)启动bonding

需要添加路由来制定发送规则,这个可以自定义添加。配置完后重启设备即可。

ifenslave bond0 eth0 eth1

route add -net 0/0 gw 172.16.64.254

bond0 Link encap:Ethernet HWaddr 00:14:10:70:00:25

inet addr:172.16.64.208 Bcast:172.16.95.255 Mask:255.255.224.0

inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:39335 errors:0 dropped:0 overruns:0 frame:0

TX packets:3178 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:3020656 (2.8 MiB) TX bytes:269722 (263.4 KiB)

eth0 Link encap:Ethernet HWaddr 00:14:10:70:00:25

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:18208 errors:0 dropped:0 overruns:0 frame:0

TX packets:5 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1371589 (1.3 MiB) TX bytes:378 (378.0 b)

eth1 Link encap:Ethernet HWaddr 00:14:10:70:00:25

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:21128 errors:0 dropped:0 overruns:0 frame:0

TX packets:3174 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:1649127 (1.5 MiB) TX bytes:269498 (263.1 KiB)

如上图所示,这种模式下bonding模块会将虚接口和所有的slave接口的MAC地址设置为一致。通过定时器,每个slave接口不断发送ARP包来不断更换交换机端口与MAC的对应关系。

这样使得每个网卡都在进行工作。这个ARP的发送规则是:

每arp_interval(MS)间隔向arp_ip_target发送arp请求。也可以向多个arp_ip_target发送arp请求。

观察交换机端口上所学习到的MAC地址,发现MAC会在两个端口上反复切换。

在BOND_MODE_ROUNDROBIN模式下,bonding对于发送和接收数据的处理逻辑是不一致的,对于数据的接收,bonding基本不做任何处理,纯粹依靠交换机端口与MAC的变化来实现交替接收数据。发送的话,交换机会根据数据的源MAC来学习端口和MAC之间的关系,所以bonding做到的就是选择不一样的网卡发送。

对于数据的发送,

static inline void bond_set_mode_ops(struct net_device *bond_dev, int mode)

{

switch (mode) {

case BOND_MODE_ROUNDROBIN:

bond_dev->hard_start_xmit = bond_xmit_roundrobin

break

...

bond的发送函数被注册为bond_xmit_roundrobin。通过bond_xmit_roundrobin的实现可以发现

static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev)

{

read_lock(&bond->curr_slave_lock)

slave = start_at = bond->curr_active_slave

read_unlock(&bond->curr_slave_lock)

bond_for_each_slave_from(bond, slave, i, start_at) {

if (IS_UP(slave->dev) &&

(slave->link == BOND_LINK_UP) &&

(slave->state == BOND_STATE_ACTIVE)) {

res = bond_dev_queue_xmit(bond, skb, slave->dev)

write_lock(&bond->curr_slave_lock)

bond->curr_active_slave = slave->next

write_unlock(&bond->curr_slave_lock)

break

}

bond_xmit_roundrobin会通过curr_active_slave指针所指向的设备来进行发送,当然curr_active_slave会在调用bond_dev_queue_xmit完成实际的发送之后指向下一个slave设备。bond_dev_queue_xmit实际是调用通用的发送函数dev_queue_xmit来进行的,它传递给dev_queue_xmit的是一个skb,在传递之前skb->dev就被指定为了当前的slave设备,这样内核就会找到对应的真实网卡设备来进行发送,最后curr_active_slave指针的轮询切换,实现了bonding的负载均衡工作模式。

从这种模式可以看到,bonding实现了一个类似网卡驱动的模块,对应的bond0设备是一个纯粹的虚设备,数据发送虽然说经过了它,但通过一系列调用,转了一圈之后才回到真正的网卡设备那里进行发送,无疑会消耗一定的系统性能。

简单用100Mbps速率的UDP数据包测试了一下BOND_MODE_ROUNDROBIN模式。

测试过程中发现接收端会有较多的乱序包,观察交换机端口情况,端口之间的切换频率不规则,这个和交换机的配置或者性能应该有很大联系,有必要的话需要进一步研究。数据的正确性和时序性能否保证需要进一步仔细测试。

2、网卡的容错模式(mode = BOND_MODE_ACTIVEBACKUP)

容错模式的配置方法和负载均衡模式基本差不多,只不过修改一下/etc/modprobe.conf即可。

alias bond0 bonding

options bond0 mode=1 miimon=100

这里使用的是mii链路检测方式,与之前arp检测方式不同。当然这两种链路检测方式在各种mode下都是可以使用的,但要注意不能同时使用。

介绍一下bonding的mii检测实现。首先和arp-monitor一样,mii也是定时器触发

if (bond->params.miimon) { /* link check interval, in milliseconds. */

init_timer(mii_timer)

mii_timer->expires = jiffies + 1

mii_timer->data = (unsigned long)bond_dev

mii_timer->function = (void *)&bond_mii_monitor

add_timer(mii_timer)

}

bond_mii_monitor函数其本质的原理就是检测网卡的链路状态,bonding定义网卡有4个链路状态:

BOND_LINK_UP: 正常状态(处于该状态的网卡是是潜在的发送数据包的候选者)

BOND_LINK_FAIL: 网卡出现故障,向状态BOND_LINK_DOWN 切换中

BOND_LINK_DOWN: 失效状态

BOND_LINK_BACK:网卡恢复,向状态BOND_LINK_UP切换中

从上到下,表示了网卡链路从正常到失效再到恢复状态。bond_mii_monitor函数就是依次检查网卡的链路状态是否处于这些状态,然后通过标记do_failover变量来说明当前是否需要切换slave网卡。代码篇幅较大,但逻辑还是很清晰的,故此处不罗列了。

在BOND_MODE_ACTIVEBACKUP模式下,两块网卡其实有一块是不工作的,被设置为IFF_NOARP的状态。同时,bond虚设备,还有slave设备的MAC地址均一致,所以这张网卡不会被外界察觉存在。交换机也不存在想该端口发包的情况。当bond的mii检测发现当前的active设备失效了之后,会切换到这个备份设备上。

在bond_change_active_slave函数中

if (bond->params.mode == BOND_MODE_ACTIVEBACKUP) {

if (old_active) {

bond_set_slave_inactive_flags(old_active)

}

if (new_active) {

bond_set_slave_active_flags(new_active)

}

}

这个就是在BOND_MODE_ACTIVEBACKUP模式下的切换逻辑,很简单,需要注意的是,在bond_set_slave_inactive_flags(old_active)中,需要将接口的状态设置为IFF_NOARP,不然交换机就可能会把数据包发送到一个错误的端口上。

BOND_MODE_ACTIVEBACKUP模式下的数据发送非常简单,可想而知curr_active_slave指针始终都指向当前可用的设备,所以直接发送就可以,没有之前BOND_MODE_ROUNDROBIN模式下slave设备切换的过程。

3、网卡虚拟化方式(mode = BOND_MODE_ALB)

经过考察,许多磁盘阵列设备采用了网卡虚拟化方式进行多网卡应用。实际就是Linux的bonding技术。它采用了mode = BOND_MODE_ALB的方式。

BOND_MODE_ALB的实现方式比较复杂,还有一些不理解的地方,就不做深入分析了。其核心思想可以用下图解释:

从这个图中可以看到,客户端A与服务器的传输使用的是MAC A;而客户端B与服务器传输使用的是MAC B,但对于IP层来说,客户端A与B都与服务器X.X.X.X 的IP地址进行通讯,并不感知底层传输接口的变化。这样,服务器对于客户端整体上的工作模式就处于负载均衡的状态。当然,这个过程的控制就是bonding模块所完成的。

通过测试发现两台客户端展现的arp表是一致的,如下(服务器端地址为172.16.64.208,服务器端首选接口的MAC为00-14-10-70-00-25)

CLIENT A

172.16.64.208 00-14-10-70-00-25 dynamic

CLIENT B

172.16.64.208 00-14-10-70-00-25 dynamic

通过抓包可以看到,两次回复的ARP应答的源MAC地址是不一样的,分别为

00-14-10-70-00-25和

00-14-10-70-00-26。

所以说,能够实现这种处理方法的原因就是bonding修改了ARP应答的源地址导致,使得外界并不感知服务器存在多网卡的状态,在网络上确定了IP和MAC的唯一对应关系,保证了上层业务传输的逻辑一致性。同时内部的处理又交给不同的网卡,实现了负载均衡。

另外,也给了我们一定的容错性,当一个接口失效后,bonding会迅速将另外一块网卡设置为首选slave设备,并修改其MAC地址。由于外界学习到的服务器MAC地址始终是不变的,所以链路的状态不会受很大影响。

Bonding的模式一共有7种:

#define BOND_MODE_ROUNDROBIN 0

#define BOND_MODE_ACTIVEBACKUP 1

#define BOND_MODE_XOR 2

#define BOND_MODE_BROADCAST3

#define BOND_MODE_8023AD 4

#define BOND_MODE_TLB 5

#define BOND_MODE_ALB 6

每种方式都有它的特点,有些需要交换机支持,比如 BOND_MODE_8023AD和BOND_MODE_XOR。本文就介绍了3种方式,可以在无需交换机支持或者简单配置交换机的情况下运行。

蓝屏的原因有很多 要对症下药 建议下次蓝屏记住代码来我这 找答案 常见蓝屏案例 我常遇到的蓝屏就是0X0000008E, 0X0000000A,0X00000050,0X0000009F │ 1│ └—┘0x0000000A:IRQL_NOT_LESS_OR_EQUAL ◆错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模式中存在以太高的进程内部请求级别(IRQL)访问其没有权限访问的内存地址. ◇解决方案:升级驱动程序 或 BIOS 如还是不行 检查内存 ┌—┐ │ 2│ └—┘0x00000012:TRAP_CAUSE_UNKNOWN ◆错误分析:如果遇到这个错误信息, 那么很不幸, 应为KeBudCheck分析的结果是错误原因未知. ◇解决方案:既然微软都帮不上忙, 就得靠自己了, 请仔细回想这个错误是什么时候出现的第一次发生时你对系统做了哪些 *** 作发生时正在进行什么 *** 作. 从这些信息中找出可能的原因, 从而选择相应解决方案尝试排除. ┌—┐ │ 3│ └—┘0x0000001A:MEMORY_MANAGEMENT ◆错误分析:这个内存管理错误往往是由硬件引起的, 比如: 新安装的硬件、内存本身有问题等. ◇解决方案:如果是在安装Windows时出现, 有可能是由于你的电脑达不到安装Windows的最小内存和磁盘要求. ┌—┐ │ 4│ └—┘0x0000001E:KMODE_EXCEPTION_NOT_HANDLED ◆错误分析:Windows内核检查到一个非法或者未知的进程指令, 这个停机码一般是由问题的内存或是与前面0x0000000A相似的原因造成的. ◇解决方案: (1)硬件兼容有问题:请对照前面提到的最新硬件兼容性列表, 查看所有硬件是否包含在该列表中. (2)有问题的设备驱动、系统服务或内存冲突和中断冲突: 如果在蓝屏信息中出现了驱动程序的名字,请试着在安装模式或者故障恢复控制台中禁用或删除驱动程序, 并禁用所有刚安装的驱动和软件. 如果错误出现在系统启动过程中, 请进入安全模式, 将蓝屏信息中所标明的文件重命名或者删除. (3)如果错误信息中明确指出Win32K.sys: 很有可能是第三方远程控制软件造成的, 需要从故障恢复控制台中将对该软件的服务关闭. (4)在安装Windows后第一次重启时出现:最大嫌疑可能时系统分区的磁盘空间不足或BIOS兼容有问题. (5)如果是在关闭某个软件时出现的:很有可能时软件本省存在设计缺陷, 请升级或卸载它. ┌—┐ │ 5│0x00000023:FAT_FILE_SYSTEM └—┘0x00000024:NTFS_FILE_SYSTEM ◆错误分析:0x00000023通常发生在读写FAT16或者FAT32文件系统的系统分区时, 而0x00000024则是由于NTFS.sys文件出现错误(这个驱动文件的作用是容许系统读写使用NTFS文件系统的磁盘). 这两个蓝屏错误很有可能是磁盘本身存在物理损坏, 或是中断要求封包(IRP)损坏而导致的. 其他原因还包括:硬盘磁盘碎片过多文件读写 *** 作过于频繁, 并且数据量非常达或者是由于一些磁盘镜像软件或杀毒软件引起的. ◇解决方案: 第一步:首先打开命令行提示符, 运行"Chkdsk /r"(注:不是CHKDISK, 感觉象这个, 但是……)命令检查并修复硬盘错误, 如果报告存在怀道(Bad Track), 请使用硬盘厂商提供的检查工具进行检查和修复. 第二步:接着禁用所有即使扫描文件的软件, 比如:杀毒软件、防火墙或备份工具. 第三步:右击C:\winnt\system32\drivers\fastfat.sys文件并选择"属性", 查看其版本是否与当前系统所使用的Windows版本相符.(注:如果是XP, 应该是C:\windows\system32\drivers\fastfat.sys) 第四步:安装最新的主板驱动程序, 特别IDE驱动. 如果你的光驱、可移动存储器也提供有驱动程序,最好将它们升级至最新版. ┌—┐ │ 6│ └—┘0x00000027:RDR_FILE_SYSTEM ◆错误分析:这个错误产生的原因很难判断, 不过Windows内存管理出了问题很可能会导致这个停机码的出现. ◇解决方案:如果是内存管理的缘故, 通常增加内存会解决问题. ┌—┐ │ 7│ └—┘0x0000002EATA_BUS_ERROR ◆错误分析:系统内存存储器奇偶校验产生错误, 通常是因为有缺陷的内存(包括物理内存、二级缓存或者显卡显存)时设备驱动程序访问不存在的内存地址等原因引起的. 另外, 硬盘被病毒或者其他问题所损伤, 以出现这个停机码. ◇解决方案: (1)检查病毒 (2)使用"chkdsk /r"命令检查所有磁盘分区. (3)用Memtest86等内存测试软件检查内存. (4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍. ┌—┐ │ 8│ └—┘0x00000035:NO_MORE_IRP_STACK_LOCATIONS ◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题. 其实这个故障的真正原因应该时驱动程序本省存在问题, 或是内存有质量问题. ◇解决方案:请使用前面介绍的常规解决方案中与驱动程序和内存相关的方案进行排除. ┌—┐ │ 9│ └—┘0x0000003F:NO_MORE_SYSTEM_PTES ◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出 *** 作, 造成内存管理出现问题: 有缺陷的驱动程序不正确地使用内存资源某个应用程序(比如:备份软件)被分配了大量的内核内存等. ◇解决方案:卸载所有最新安装的软件(特别是哪些增强磁盘性能的应用程序和杀毒软件)和驱动程序. ┌—┐ │10│ └—┘0x00000044:MULTIPLE_IRP_COMPLIETE_REQUESTS ◆错误分析:通常是由硬件驱动程序引起的. ◇解决方案:卸载最近安装的驱动程序. 这个故障很少出现, 目前已经知道的是, 在使用这家公司的某些软件时会出现, 其中的罪魁就是Falstaff.sys文件.(作者难道不怕吃官司嘛, 把公司网址公布) ┌—┐ │11│ └—┘0x00000050AGE_FAULT_IN_NONPAGED+AREA ◆错误分析:有问题的内存(包括屋里内存、二级缓存、显存)、不兼容的软件(主要是远程控制和杀毒软件)、损坏的NTFS卷以及有问题的硬件(比如CI插卡本身已损坏)等都会引发这个错误. ◇解决方案: 1.卸掉所有的新近安装的硬件. 2.运行由计算机制造商提供的所有系统诊断软件.尤其是内存检查. 3.检查是否正确安装了所有新硬件或软件,如果这是一次全新安装,请与硬件或软件制造商联系,获得可能需要的任何Windows更新或驱动程序. 4.禁用或卸载所有的反病毒程序. 5.禁用BIOS内存选项,例如cache或shadow 方案里并非每一条都要做,只是每一条都有可能!蓝屏代码50是我看到现在最麻烦的,可能引起的原因非常多!即使那五条你都做了可能都解决不了,至少我以前解决过一次并不在这几条之中,你就先试试看吧!┌—┐ │12│ └—┘0x00000051:REGISTRY_ERROR ◆错误分析:这个停机码说明注册表或系统配置管理器出现错误, 由于硬盘本身有物理损坏或文件系统存在问题, 从而造成在读取注册文件时出现输入/输出错误. ◇解决方案:使用"chkdsk /r"检查并修复磁盘错误. ┌—┐ │13│ └—┘0x00000058:FTDISK_INTERNAL_ERROR ◆错误分析:说明在容错集的主驱动发生错误. ◇解决方案:首先尝试重启电脑看是否能解决问题, 如果不行, 则尝试"最后一次正确配置"进行解决. ┌—┐ │14│ └—┘0x0000005E:CRITICAL_SERVICE_FAILED ◆错误分析:某个非常重要的系统服务启动识别造成的. ◇解决方案:如果是在安装了某个新硬件后出新的, 可以先移除该硬件, 并通过网上列表检查它是否与Windows 2K/XP兼容, 接着启动电脑, 如果蓝屏还是出现, 请使用"最后一次正确配置"来启动Windows,如果这样还是失败, 建议进行修复安装或是重装. ┌—┐ │15│ └—┘0x0000006F:SESSION3_INITIALIZATION-FAILED ◆错误分析:这个错误通常出现在Windows启动时, 一般是由有问题的驱动程序或损坏的系统文件引起的. ◇解决方案:建议使用Windows安装光盘对系统进行修复安装. ┌—┐ │16│ └—┘0x00000076ROCESS_HAS_LOCKED_PAGES ◆错误分析:通常是因为某个驱动程序在完成了一次输入/输出 *** 作后, 没有正确释放所占有的内存 ◇解决方案: 第一步:点击开始-->运行:regedt32, 找到[HKLM\SYSTEM\Currentcontrol set\control\session manager\memory management], 在右侧新建双字节值"TrackLockedPages", 值为1. 这样Windows便会在错误再次出现时跟踪到是哪个驱动程序的问题. 第二步:如果再次出现蓝屏, 那么错误信息会变成: STOP:0x0000000CB(0xY,0xY,0xY,0xY)DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS 其中第四个"0xY"会显示为问题驱动程序的名字, 接着对其进行更新或删除. 第三步:进入注册表, 删除添加的"TrackLockedPages". ┌—┐ │17│ └—┘0x00000077:KERNEL_STACK_INPAGE_ERROR ◆错误分析:说明需要使用的内核数据没有在虚拟内存或物理内存中找到. 这个错误常常于是着磁盘有问题, 相应数据损坏或受到病毒侵蚀. ◇解决方案:使用杀毒软件扫描系统使用"chkdsk /r"命令检查并修复磁盘错误, 如不行则使用磁盘厂商提供的工具检查修复. ┌—┐ │18│ └—┘0x0000007A:KERNEL_DATA_INPAGE_ERROR ◆错误分析:这个错误往往是虚拟内存中的内核数据无法读入内存造成的. 原因可能是虚拟内存页面文件中存在坏簇、病毒、磁盘控制器出错、内存有问题. ◇解决方案:首先用升级为最新病毒库杀毒软件查杀病毒, 如果促无信息中还有0xC000009C或0xC000016A代码, 那么表示是坏簇造成的, 并且系统的磁盘检测工具无法自动修复, 这时要进入"故障恢复控制台", 用"chkdsk /r"命令进行手动修复. ┌—┐ │19│ └—┘0x0000007B:INACESSIBLE_BOOT_DEVICE ◆错误分析:Windows在启动过程中无法访问系统分区或启动卷. 一般发生在更换主板后第一次启动时, 主要是因为新主板和旧主板的IDE控制器使用了不同芯片组造成的. 有时也可能是病毒或硬盘损伤所引起的. ◇解决方案:一般只要用安装光盘启动电脑, 然后执行修复安装即可解决问题. 对于病毒则可使用DOS版的杀毒软件进行查杀(主战有kv2005DOS版下载). 如果是硬盘本身存在问题, 请将其安装到其他电脑中,然后使用"chkdsk /r"来检查并修复磁盘错误. ┌—┐ │20│ └—┘0x0000007E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED ◆错误分析:系统进程产生错误, 但Windows错误处理器无法捕获. 其产生原因很多, 包括:硬件兼容性、有问题的驱动程序或系统服务、 或者是某些软件. ◇解决方案:请使用"事件查看器"来获取更多的信息, 从中发现错误根源.(发现好像不是解决哦, 看来这里大家要自力更生了!) ┌—┐ │21│ └—┘0x0000007F:UNEXPECTED_KERNEL_MOED_TRAP ◆错误分析:一般是由于有问题的硬件(比如:内存)或某些软件引起的. 有时超频也会产生这个错误. ◇解决方案:用检测软件(比如:Memtest86)检查内存, 如果进行了超频, 请取消超频. 将PCI硬件插卡从主板插槽拔下来, 或更换插槽. 另外, 有些主板(比如:nForce2主板)在进行超频后, 南桥芯片过热也会导致蓝屏, 此时为该芯片单独增加散热片往往可以有效解决问题. ┌—┐ │22│ └—┘0x00000080:NMI_HARDWARE_FAILURE ◆错误分析:通常是有硬件引起的.(似乎蓝屏与硬件错误有不解之缘) ◇解决方案:如果最近安装了新硬件, 请将其移除, 然后试试更换插槽和安装最新的驱动程序, 如果升级了驱动程序, 请恢复后原来的版本检查内存金手指是否有污染和损坏扫描病毒运行"chkdsk /r"检查并修复磁盘错误检查所有硬件插卡已经插牢. 如果以上尝试都无效果, 就得找专业的电脑维修公司请求帮助了. ┌—┐ │23│ └—┘0x0000008E:KERNEL_MODE_EXCEPTION_NOT_HANDLED ◆错误分析:内核级应用程序产生了错误, 但Windows错误处理器没有捕获. 通常是硬件兼容性错误. ◇解决方案:升级驱动程序或升级BIOS. ┌—┐ │24│ └—┘0x0000009C:MACHINE_CHECK_EXCEPTION ◆错误分析:通常是硬件引起的. 一般是因为超频或是硬件存在问题(内存、CPU、总线、电源). ◇解决方案:如果进行了超频, 请降会CPU原来频率, 检查硬件. ┌—┐ │25│ └—┘0x0000009FRIVER_POWER_STATE_FAILURE ◆错误分析:往往与电源有关系, 常常发生在与电源相关的 *** 作, 比如:关机、待机或休睡. ◇解决方案:重装系统, 如果不能解决, 请更换电源. ┌—┐ │26│ └—┘0x000000A5:ACPI_BIOS_ERROR ◆错误分析:通常是因为主板BIOS不能全面支持ACPI规范. ◇解决方案:如果没有相应BIOS升级, 那么可在安装Windows 2K/XP时, 当出现"press F6 if you need to install a third-party SCSI or RAID driver"提示时, 按下F7键, 这样Windows便会自动禁止安装ACPI HAL, 而安装 Standard PC HAL. ┌—┐ │27│ └—┘0x000000B4:VIDEO_DRIVER_INIT_FAILURE ◆错误分析:这个停止信息表示Windows因为不能启动显卡驱动, 从而无法进入图形界面. 通常是显卡的问题, 或者是存在与显卡的硬件冲突(比如:与并行或串行端口冲突). ◇解决方案:进入安全模式查看问题是否解决, 如果可以, 请升级最新的显卡驱动程序, 如果还不行,则很可能是显卡与并行端口存在冲突, 需要在安全模式按下WIN+break组合键打开"系统属性", 在硬件-->设备管理器中找到并双击连接打印的LPT1端口的项, 在"资源"选项卡中取消"使用自动配置"的构选, 然后将"输入/输出范围"的"03BC"改为"0378". ┌—┐ │28│ └—┘0x000000BE:ATTEMPTED_WRITE_TO_READONLY_MEMORY ◆错误分析:某个驱动程序试图向只读内存写入数据造成的. 通常是在安装了新的驱动程序, 系统服务或升级了设备的固件程序后. ◇解决方案:如果在错误信息中包含有驱动程序或者服务文件名称, 请根据这个信息将新安装的驱动程序或软件卸载或禁用. ┌—┐ │29│ └—┘0x000000C2:BAD_POOL_CALLER ◆错误分析:一个内核层的进程或驱动程序错误地试图进入内存 *** 作. 通常是驱动程序或存在BUG的软件造成的. ◇解决方案:请参考前面介绍的常规解决方案相关项目进行排除. ┌—┐ │30│ └—┘0x000000CERIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS ◆错误分析:通常是由有问题的驱动程序或系统服务造成的. ◇解决方案:建议 更新驱动程序 或升级BIOS┌—┐ │31│ └—┘0x000000D1 RIVER_IRQL_NOT_LESS_OR_EQUAL ◆错误分析:通常是由有问题的驱动程序引起的(比如罗技鼠标的Logitech MouseWare 9.10和9.24版驱动程序会引发这个故障). 同时,有缺陷的内存、 损坏的虚拟内存文件、 某些软件(比如多媒体软件、杀毒软件、备份软件、DVD播放软件)等也会导致这个错误. ◇解决方案:检查最新安装或升级的驱动程序(如果蓝屏中出现"acpi.sys"等类似文件名, 可以非常肯定时驱动程序问题)和软件测试内存是否存在问题进入"故障恢复控制台", 转到虚拟内存页面文件Pagefile.sys所在分区, 执行"del pagefile.sys"命令, 将页面文件删除然后在页面文件所在分区执行"chkdsk /r"命令进入Windows后重新设置虚拟内存. 如果在上网时遇到这个蓝屏, 而你恰恰又在进行大量的数据下载和上传(比如:网络游戏、BT下载),那么应该是网卡驱动的问题, 需要升级其驱动程序. ┌—┐ │32│ └—┘0x000000EA:THREAD_STUCK_IN_DEVICE_DRIVER ◆错误分析:通常是由显卡或显卡驱动程序引发的. ◇解决方案:先升级最新的显卡驱动, 如果不行, 则需要更换显卡测试故障是否依然发生. ┌—┐ │33│ └—┘0x000000ED:UNMOUNTABLE_BOOT_VOLUME ◆错误分析:一般是由于磁盘存在错误导致的, 有时也建议检查硬盘连线是否接触不良, 或是没有使用合乎该硬盘传输规格的连接线, 例如ATA-100仍使用ATA-33的连接线, 对低速硬盘无所谓, 但告诉硬盘(支持ATA-66以上)的要求较严格, 规格不对的连线有时也会引起这类没办法开机的故障. 如果在修复后,还是经常出现这个错误, 很可能是硬盘损坏的前兆. ◇解决方案:一般情况下, 重启会解决问题, 不管怎么样都建议执行"chkdsk /r"命令来检查修复硬盘 ┌—┐ │34│ └—┘0x000000F2:HARDWARE)INTERRUPT_STORM ◆错误分析:内核层检查到系统出现中断风暴, 比如:某个设备在完成 *** 作后没有释放所占用的中断.通常这是由缺陷的驱动程序造成的. ◇解决方案:升级或卸载最新安装的硬件驱动程序. ┌—┐ │35│ └—┘0x00000135:UNABLE_TO_LOCATE_DLL ◆错误分析:通常表示某个文件丢失或已经损坏, 或者是注册表出现错误. ◇解决方案:如果是文件丢失或损坏, 在蓝屏信息中通常会显示相应的文件名, 你可以通过网络或是其他电脑找到相应的文件, 并将其复制到系统文件夹下的SYSTEM32子文件夹中. 如果没有显示文件名, 那就很有可能是注册表损坏, 请利用系统还原或是以前的注册表备份进行恢复.36.代码是:TOP:0x000000F4 (0x00000003,0x81E95460,0x81E955D4,0x805FB7A8)分析:(1): 硬盘出现坏道的话,会造成检测时的缓慢,你可以听听硬盘运转的时候有没有异常的声音,如果有的话,硬盘应该是出现坏道了,所以系统在使用损坏的文件时,才会蓝屏死机,建议将硬盘低级格式化后再重新分区,有一定的希望恢复硬盘,或者用软件将坏道屏蔽。 (2):我把XP装到D盘就好了!主板、BIOS和内存没有任何问题。硬盘用HDTune测起始部分有些坏块,全面格式化也没消失,但运转时无异响,不知何故。(3):STOP:0x000000F4 的意思是:内存存取错误,那个数字是内存地址,这个问题是最近才出的还是从ghost后就有,如果是最近才出,就再ghost一遍就好,如果是从ghost后就有,建议你在现在的分区状态下再全新安装一遍吧. (4):0x000000F4:HARDWARE)INTERRUPT_STORM错误分析:内核层检查到系统出现中断风暴, 比如:某个设备在完成 *** 作后没有释放所占用的中断. 通常这是 由缺陷的驱动程序 造成的.解决方案:升级或卸载最新安装的硬件驱动程序.你的BIOS是最新的1011.003测试版,测试版是不稳定的,最好用正式版(5):是不是开电脑没过几分钟就会蓝屏出现aproblemhasbeendetectedandwindowshasshutdowntopreventdamagetoyourcomputer.aprocessorthreadcrucialtosystemoperationhasunexpectedlyexitedorbeenterminated.(这里还有一段英文字,大概说的是“如果您是第一次看到这种情况,重启您的计算机。如果问题继续,请检查您的软件以及最近装上的硬件。”)还有disableorremoveanynewlyinstalledhardware,disablebiosmemoryoptionssuchascashingorshadowing(接下来还一段英文意思是说叫你进安全模式看看)?STOP:0x000000F4 (0x00000003,0x81E95460,0x81E955D4,0x805FB7A8)是指的内存错误.后面那个具体数据不知道.应该指某一块吧


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7233957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存