原文地址: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. Vue+axios 拦截,超时登录问题

    axios.interceptors.request.use(config => config, error => Promise.reject(error)); axios.interc ...

  2. 数据绘图工具之Matplotlib

    一.安装:绘图和可视化 pip install matplotlib 我们已经下好了anaconda 包含了绘图工具包 直接导入即可 import matplotlib.pyplotlib as pl ...

  3. docker快速入门02——在docker下开启mysql5.6 binlog日志

    1.检查容器状态 [root@localhost ~]# docker ps 执行这个命令可以看到所有正在运行当中的容器,如果加上-a参数,就可以看到所有的容器包括停止的. 我们可以看到容器正在运行当 ...

  4. kernel module insmod错误

    kernel模块配置 Enable loadable module support 打开可加载模块支持,如果打开它则必须通过"make modules_install"把内核模块安 ...

  5. 003-centos7:rsyslog简单配置客户端和服务器端

    实现把一个主机作为客户端,把日志发送到指定的服务器端: [服务器端] 开放tcp端口,udp端口: vim /etc/rsyslog.conf: # Provides UDP syslog recep ...

  6. insightface作者提供数据训练解读

    1.下载源码: 开源代码地址:https://github.com/deepinsight/insightface 2.查看作者项目训练要求 (1)训练数据 训练数据使用作者提供并制作好的数据,如下图 ...

  7. context容器上下文件

    在web项目中想要获取哪个bean,得先得到容器上下文context public class MyLoaderListener extends ContextLoader implements Se ...

  8. C#基础再学习

    本次观看C#中级教程视频进行对C#一些基础的再度学习,加深印象. 1.对于错误和异常. 错误可能是语法错误也可能是逻辑错误.可以通过断点进行调试. 断点快捷键F9. 异常,通过try catch捕获, ...

  9. 第四章 生命周期函数--35 vue-resource发起get、post、jsonp请求

    vue-resource 官网 https://github.com/pagekit/vue-resource <!DOCTYPE html> <html lang="en ...

  10. MyEclipse使用教程——使用DevStyle Icon Designer(二)

    [MyEclipse CI 2019.4.0安装包下载] DevStyle主题包括一个Icon Designer,允许您自定义图标.Icon Designer包含在DevStyle主题中,可作为Ecl ...