据我所知,如果 BIOS 设置了密码,您可以通过取出电池并重新插入来重置密码。
为什么会这样?在对电池进行这样的操作后,所有 CMOS 设置都会重置为默认值吗?重新插入电池后,所有设置究竟会发生什么变化?
答案1
嗯,这个网站不适合问这个问题(这与编程无关),但是:电池主要用于驱动 RTC(实时时钟),即使计算机关闭,它也需要继续运行。
BIOS 通常有一个专用的 RAM 来存储设置,并且也需要电池来保存这个 RAM。RAM 中的信息不稳定并且会“衰减”,因此需要再次读取和存储以保留信息。这称为内存刷新。显然,你需要电源,因此需要电池。因此,如果你取出电池并关闭电源,RAM 就无法刷新,其中的信息就会丢失。
但是,据我所知,大多数现代 BIOS 芯片都有 NVRAM(非易失性 RAM),即使没有电池也能保留设置。我记得我的一块主板上有一个跳线,你必须关闭它才能真正让 BIOS 清除 NVRAM(从而恢复出厂默认设置),因为没有电池。
我还见过使用特殊电容器代替电池的主板。
答案2
CMOS 中的某些数据会进行校验和计算,这样当第一次通电时,BIOS 就会“知道”CMOS 中的数据不正确。然后它会将所需的任何默认值写入 CMOS。
顺便说一句,任何现代 BIOS 都不应该有依赖于 CMOS 的密码。这太容易被绕过了。当前的 PC 应该将密码存储在一些非易失性存储器中,最好是根本不连接到 CPU 的存储器,而是通过 CPU 向其他嵌入式控制器发出的命令来访问。