原文地址:https://baijiahao.baidu.com/s?id=1628248717252216590&wfr=spider&for=pc

一版又一版的BIOS推送,目的无外乎就是为了用户更好的体验。领略到BIOS更新重要性的(或者领情的或者有更新强迫症的)用户,会动手去更新BIOS。很多用户担心BIOS更新后的安全问题,尤其是不敢面对更新过程中被打断后带来的“灾难后果”。

华硕BIOS更新界面

其实,你可以完全的将心放在肚子里,我们将全程为您的BIOS更新保驾护航,这就是今天科普的BIOS恢复技术。

BIOS恢复技术

BIOS恢复技术,就是当用户在更新BIOS的时候,出现了意外情况(比如断电)而导致的BIOS更新失败,下次开机的时候,BIOS还能正常启动的过程。

Dual

常见的BIOS恢复技术以Top Swap /Dual BIOS为主。在这里,针对Top Swap做一详细介绍。

Top Swap

首先,Top Swap(TS)是桥(PCH)里面的一个Bit位,默认值为0。需要注意的是:这个bit值,是由主板上battery(纽扣电池)保存的。

纽扣电池

其次,既然要说BIOS的恢复技术,就必须要提到Bios的内容存储结构。BIOS ROM就是若干个FV(Fireware Volume)组成的,每个FV都有自己的使命,而且对于一些特殊的FV,占有的空间大小甚至是固定的。

比如业内经常提到的NVRAM(NVRAM_BACKUP),在Rom Layout中就是一个FV,大小一般是128K;FV_BB,inel目前规定大小为1M。(如下具有Top Swap功能的Rom Layout部分组成FV,FV_BB_BACKUP为FV_BB的备份)

大家都知道,CPU开始拿的第一条指令,是位于0xFFFFFFF0的地方。FV_BB存放的是SEC和PEI阶段的Code,在0xFFFFFFF0的位置,拿的第一条指令永远都是SEC的Code。(下图:Rom Layout结构图)

从UEFI启动顺序就知道,SEC和PEI是UEFI开始的地方。所以FV_BB这块代码在开始的时候就决定着BIOS能不能运行下去。

Top Swap的目的,就是为了保证SEC和PEI阶段的数据完整性。简单的说就是,当电源上电的一刻起,CPU要能正确执行到BIOS里面的代码。

Top Swap原理以及应用

BIOS更新FV_BB过程

1. BIOS在更新之前,FV_BB和FV_BB_BACKUP区域的数据都是一样的。

2. BIOS在更新BIOS的时候,也是一块一块刷的,我们这里假设先刷的是FV_BB区域。

3. 当在开始刷FV_BB区域的时候,Top Swap bit位就会被写为1,等刷完FV_BB,Top Swap再被写为0。

那么,如果在刷的过程中,出现了异常情况(比如断电)导致FV_BB阶段未完成,下一次开机再从FV_BB启动,就会出现启动失败。这个时候,Top Swap作用就来了。因为更新FV_BB阶段未完成,所以Top Swap bit位的就是1。

下一次开机的时候,Cpu下地址0xFFFFFFF0给PCH,PCH会去检查Top Swap的值,如果是1,就不会从FV_BB开始启动,会将FV_BB的地址+1M(FV_BB的大小),从FV_BB_BACKUP位置启动,而FV_BB_BACKUP这块数据并未被破坏,启动自然没问题。(下附流程图)

简单总结一下:

如果FV_BB未完成更新,下一次启动将会从FV_BB_BACKUP启动,并继续完成更新BIOS的大业;如果FV_BB完成更新,直至BIOS更新完成前,不管出什么意外,下一次启动都将从FV_BB启动,并继续后续相关动作。

转:BIOS的恢复技术之Top Swap的原理应用的更多相关文章

  1. 在Linux操作系统下备份恢复技术的应用 转自https://yq.aliyun.com/articles/50205?spm=5176.100239.blogcont24250.9.CfBYE9

    摘要: 安全防护:在Linux操作系统下备份恢复技术的应用  原文参见:http://linux.chinaunix.net/techdoc/system/2005/12/19/925898.shtm ...

  2. IP视频通信中的"丢包恢复技术”(LPR)

    转自:http://blog.csdn.net/blade2001/article/details/9094709 在IP视频通话中,即使是在丢包率很小的情况下也会对使用效果造成较为明显的影响.正是由 ...

  3. oracle 11g 数据库恢复技术 ---02 控制文件

    oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...

  4. 2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165210 Exp3 免杀原理与实践 免杀的概述 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-Ant ...

  5. 【技术解密】SequoiaDB分布式存储原理

    分布式架构势在必行 在传统的数据库技术中,为了保证数据的安全与高性能,通常会选择高端的外置存储作为数据库的主要存储源,而本地磁盘则被视为不可靠的性能低下的一种设备.这种观念的产生,主要是由于过去本地磁 ...

  6. MariaDB/MySQL备份和恢复(三):xtrabackup用法和原理详述

    本文目录: 1.安装xtrabackup 2.备份锁 3.xtrabackup备份原理说明 3.1 备份过程(backup阶段) 3.2 准备过程(preparing阶段) 3.3 恢复过程(copy ...

  7. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  8. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  9. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

随机推荐

  1. 谷歌浏览器(Chrome)离线包的下载方法!

    谷歌浏览器(Chrome)其实可以下载离线包,用离线包安装的好处,就是一次获得全部安装文件,不需要漫长的在线下载过程了! 下载地址:https://www.google.com/chrome/eula ...

  2. linux无界面模式安装selenium+chrome+chromedriver并成功完成脚本(亲测可用)

    环境:docker centos 7.4 能通外网 写好的selenium脚本. 具体步骤: 一:安装selenium  这是最简单的 直接利用 pip3 install selenium 二 安装c ...

  3. 关于IDEA的application.properties读取乱码,以及显示乱码问题

    设置编码 如果设置之后还是不成功,就重启IDEA 再不行就删除application.properties重新编辑, 我采用的是注释掉要读取的中文部分,再下面再写一行

  4. jq sku实现

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. EF报错:对一个或多个实体的验证失败(Entity Framework 强制转换失败数据异常处理方法)

    1.使用MVC和EF,在保存数据的时候报错:System.Data.Entity.Validation.DbEntityValidationException: 对一个或多个实体的验证失败.有关详细信 ...

  6. 在 Android 中实现 Redux 的一点经验

    简评: Redux 是一个用于应用程序状态管理的开源JavaScript库,其核心是通过可管理和控制的状态来描述一个系统.这意味着其思想其实是可以应用于任何类型应用的开发的,包括移动应用. Redux ...

  7. 使用TortoiseGit,设置ssh方式连接git仓库。

    开始设置之前的准备:建立项目文件夹,初始化git仓库(右键 git  init),右键打开 git bash ,git pull “仓库地址”, 把网站上的仓库代码拉取下来. TortoiseGit使 ...

  8. WebView net::ERR_CLEARTEXT_NOT_PERMITTED&&net::ERR_INTERNET_DISCONNECTED

    参照博客:https://blog.csdn.net/qq_33721320/article/details/84400825 测试Android 中WebView功能时,发现了这个问题: 解决的方式 ...

  9. VS开发框架DevExtreme v19.1全解析!全新的UI小部件

    行业领先的.NET界面控件DevExpress 正式发布了v19.1版本,本文将以系列文章的方式为大家介绍DevExtreme Complete Subscription v19.1中全新发布的Dro ...

  10. 关于sparksql

    1.读取json文件,并且进行查询等操作 所使用的jar包为 json文件内容 { "id":1 ,"name":" Ella"," ...