通过UEFI升级BIOS

以前写过一篇“UEFI和UEFI Shell简介”的文章,在这两天升级BIOS时又需要用UEFI启动然后升级BIOS,故写个笔记吧。
经常和最近的硬件系统打交道,有时BIOS也有一些bug fix,升级BIOS是常有的事情,我一般通过如下两种方式来升级BIOS。
1. 拔下BIOS芯片,直接烧新的ROM到BIOS芯片。
2. 通过UEFI升级,使用BIOS升级包中提供的脚本。
对于第一种方式,是先擦写掉BIOS芯片的ROM,然后将新的ROM烧录进去。我们需要一个夹住BIOS引脚并用USB连接到PC的硬件设备,然后使用“DediProg Engineering”软件工具,因此选择其中的"Detect"->"Blank"->"Erase"->"Prog"->"Verify"即可(当然还要选择"File"来加载需要烧入的BIOS ROM文件)。

对于第二种方式,详细介绍如下。

1. 将BIOS升级包解压,并放到一个U盘中。
在下载BIOS升级包中可能有如下的一些文件:

其中Startup.nsh脚本如下所示,其实最重要的还是调用“iflash32 /u /ni x056.cap”进行实际的升级。

2. 将装有BIOS升级文件的U盘放到机器上,启动系统,选择从“Internal EFI Shell”启动。
在启动时,按F6可以启动设备的选择"select boot device",然后选择“EFI Shell”即可;按键F2进入BIOS设备,设置为EFI Shell启动也可。

3. 在EFI Shell中,进入BIOS安装包所在路径,运行Startup.nsh脚本来升级BIOS。
首先运行"map"命令显示设备的映射情况,找到代表U盘的设备(如为"fs0"),进入到U盘中,查看文件,并找到升级所需的Starup.nsh文件。
命令如下:
map #映射驱动器路径
fs0: #进入fs0驱动器(即这里的U盘)
ls #列出当前目录中的内容,也可用"dir"命令
cd x056_package #进入某个目录
Startup.nsh #执行脚本来升级BIOS

从EFI启动来升级BIOS可能遇到的问题,一种是确实有可能升级不成功(如突然断电)而导致系统无法启动,另一种问题是如果最较旧的BIOS升级到较新的BIOS(中间跨度较大)可能会不让升级(因为可能x56版的BIOS只能从x48之后的版本去升级,而不能从很老的x20版本升级)。

关于EFI及EFI Shell的更多知识、命令等,请参考如下:

EFI及EFI Shell简介


http://software.intel.com/en-us/articles/uefi-shell/

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*