cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(1)

"网易新闻"是我手机上打开频率比较高的应用,常在上面看看最新的新闻。然而自从我点开几个关于电脑硬件的文章后,网易“大数据”判断我是个电脑发烧友,开始给我推送各种电脑文章。其中,网易号文章质量十分低劣,充满各种标题党和错误。昨天不小心点开一篇介绍CMOS电池的文章,说电池没电后会保存不了BIOS设置、甚至损坏芯片组。 WTF,还有这种操作?不幸的是,下面评论里面满屏的各种担心。作为BIOS的专业人士,绝对不能让这种无稽之谈四处传播,不是西风压倒东风,就是东风压倒西风。今天我们就来讲讲,为什么需要CMOS电池,它是干什么的,没电后会不会是世界末日。

什么是CMOS?

CMOS(Complementary metal-oxide-semiconductor,互补金属氧化物半导体),对,它的名字看起来很non-sense,其实它的名字来源于它的电路设计工艺(参考资料1)。它可以用来制作随机存贮memory,也可以制作感光元件。这里当然说的是电脑主板上用来存储信息的一小段存贮器件,它分为几个Bank,我们可以通过port的index方式存取其中的内容。

什么是CMOS电池?

CMOS中存贮的内容掉电就会消失,而我们的电脑随时都有可能被切断电源,这就需要电池给它供电,才能保证其中的内容不消失。电池通常都是CR2032:

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(2)

这种电池很普通,在某宝和某东很多。在早期,CMOS电池是可以充电的,但随着制造工艺等的发展,需要CMOS电池提供的电力越来越小,现在基本都是不能充电的。它的寿命在3到5年,如果经常开机,可以用的更久。

CMOS电池的主要功能是什么?

这个似乎是个废话,顾名思义,当然是给CMOS供电的了。实际上,它的供电对象实际有不少:

CMOS内存

早期BIOS本身是存贮在PROM上的,本身不能存储信息,那BIOS需要存储的内容放在那里呢?当然是在CMOS里了,这也是直到今天还有些人还在混淆BIOS和CMOS的原因。但是随着技术的发展,现在BIOS都存在Flash里面(杂谈闪存二:NOR和NAND Flash),CMOS存贮信息的功能逐渐弱化,实际上UEFI的BIOS都在尽量避免将信息放入CMOS,只在为兼容传统功能时才勉强为之。

RTC

其实给CMOS供电保障其中数据的功能,现在已经不是最重要的,它现在的主要功能是保障实时时钟RTC的运作。

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(3)

我们电脑关机后一段时间后,再开机会发现系统时钟并没有停止,这其中的功臣就是CMOS电池。

CMOS没电会发生什么?

BIOS信息会丢失吗?我可以负责任的告诉大家,并不会!如前面所述,现代UEFI BIOS都将信息存贮在Flash内,并不会消失。

Windows时间会回到1980年吗?很大可能并不会。现代操作系统包括Windows、Linux会利用网络更新时间,并更新RTC。当然你没有联网或者主动关闭网络时钟校对除外。

会损坏芯片组吗?我可以和大家打赌5毛钱,绝对不会。我们做BIOS经常不插电池,芯片组也不会依赖那个小东西。

那就是什么危害都没有了?也并不是,问题可能有:

  1. 一些传统设备工作不正常,ME的一些信息丢失。
  2. 安装Windows 8/10会出现问题。大家可以实验一下,进入BIOS将时间改到1980年,安装Window 8/10会出错,这是因为Windows会检查系统时间。
如何更换CMOS电池

如果CMOS都没电了,就别更换电池了,主板太老了,买新的吧。。

好吧,既然你还想再战3年,很简单,一般电脑主板电池分成两种,卧式和竖式:

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(4)

卧式

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(5)

竖式

更换很简单,掰开这个小开关,取出电池:

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(6)

换入新的电池就好:

cmos电池没电了会怎么样(CMOS电池没电会损坏芯片组吗)(7)

补充

在评论区里面,有很多同学对如何恢复BIOS初始值有疑问。毕竟使用了Flash,拔CMOS电池短接啥的应该不起作用了啊,为什么有时候还起作用,不起作用怎么办等等。

这里统一作答,现在主板都有一个跳线(jumper),在需要恢复初始值(缺省值,出厂设置,default等)时,设置该跳线。具体在那里,各个主板不同,需要查看主板说明书。BIOS检测到跳线改变后,会用内置的缺省值覆盖当前值,以达到恢复初始值的目的。

部分大的主板厂商考虑到用户使用习惯,在CMOS里面做了些手脚,当检测到CMOS预设探针变化时,认为CMOS无效了,会清空CMOS,同时恢复Flash里面的初始值。

,