实战UEFI
作者:刘宗凡 邱元阳
来源:《中国信息技术教育》2014年第15期
电脑引导系统的方式,正由BIOS过渡到UEFI。在Intel和各大厂商力推下,支持UEFI启动的主板如雨后春笋般涌现,发展得如火如荼。现在新出的主板,基本上都提供了对UEFI的支持。我们来对照一下UEFI对BIOS的一些改进和优点:
BIOS是16位的,而UEFI有32位和64位两个版本。UEFI支持图形化的启动界面,并支持应用程序开发,但相应的操作系统中的硬盘却需要使用GUID分区结构。
UEFI内置图形驱动功能,可以提供一个高分辨率的彩图形环境,用户进入后能用鼠标点击调整配置,一切就像操作Windows系统下的应用软件一样简单。
UEFI启动方式是主板启动,它可以不指向任何存储设备。但在实际使用中,我们却需要把这个启动过程转交到某一存储设备上,启动其中的操作系统。因此UEFI就是用于从预启动的操作环境,加载到一种操作系统上,并支持2TB以上的硬盘。
UEFI启动需要一个独立的分区,它将系统启动文件和操作系统本身隔离,可以更好地保护系统的启动。即使系统启动出错需要重新配置,我们只要简单地对启动分区重新进行配置即可。而且,对于Windows 8系统,它利用UEFI安全启动以及固件中存储的证书与平台固件之间创建一个信任源,可以确保在加载操作系统之前,已经能够执行已签名并获得认证的“已知安全”代码和启动加载程序,可以防止用户在根路径中执行恶意代码。
UEFI启动过程中还可以调用EFI Shell,加载硬件驱动程序或不同路径的启动文件。
UEFI允许企业软件实施安全策略。OEM厂商可以自定义企业软件来达到客户的要求,在他们自己的平台上自定义证书和策略管理的级别。
UEFI相比传统BIOS的优点可以总结为一句话:模块化设计、图形化界面、更强的兼容性和可扩展性。
UEFI的优点显而易见,未来几年,传统BIOS必将被其取而代之。在BIOS和UEFI的应用中会有哪些难题呢?下面我们将一起来探讨。
● BIOS与UEFI的截图
如果我们需要把BIOS操作过程和别人分享,就需要对BIOS界面截图。但因为操作系统还没有启动,Windows下的截图软件无能为力,让人束手无策。这时就需要另辟蹊径,曲径通幽。
1.拍照法
使用数码相机或手机对着屏幕拍照,这个方法虽然笨但可以忠实记录BIOS界面。拍照时注意设置相机以消除屏幕的频闪现象,另外尽量不要使用广焦端以免产生畸变。这个办法的缺点也很明显,就是没有截图那样干净美观。
2.模拟法
类似CMOSTEST的软件可以模拟普通BIOS的运行情况,有些模拟程序对某些特定的电脑BIOS界面可以真实再现,有些网站还提供了Flash动画进行在线模拟。我们只要用普通的截图方法就可以将界面抓下来。这种方法的缺点是无法真实再现本机的BIOS界面。
在BIOS模拟软件中较完美的是IBM的BIOS模拟程序,有多种程序分别对应不同的机器型号,这些软件模拟出来的BIOS界面与相应真实机器是相同的。
附几个BIOS模拟软件的下载地址:①CMOS设置模拟程序:orzhd/briian/2007/12/bios-simulator-01.zip;②BIOS设置模拟程序:orzhd/briian/2007/12/bios-simulator-02.zip; IBM BIOS模拟程序:orzhd/briian/2007/12/60969_t43_18xx_r52_bios.swf。③HP BIOS模拟程序:h20181.www2.hp/plmcontent/NACSC/Notebooks/10943_091504/dmd/media/bios/dmd_BIOS_sim.swf。
3.虚拟机法
VMware和Virtual PC等虚拟机软件能在Windows系统上虚拟出多个计算机,当然它也可以模拟BIOS的操作。使虚拟机运行在窗口模式下,我们就可以从容截图了。虚拟机模拟的BIOS基本上是本机的真实情况,但有可能不会100%真实再现,有些项目在虚拟机中是不会显示出来的。同时,如果我们在虚拟机中改变某些值,是不会对本机的真实BIOS起作用,只会在虚拟机启动时起作用。
4.视频采集法
通过视频采集卡将BIOS设置时的VGA屏幕信号采集到另一台电脑中,就可以截取其中的画面。这需要硬件的支持。
5.BIOS备份文件加载法
通过将本机BIOS信息备份下来,并在Windows程序中加载,来模拟和还原本机的BIOS设置界面,这时候就可以截图了。这样的软件有支持Award BIOS的Modbin、Award BIOS Editor、支持AMI BIOS的MMTools等。以Award BIOS Editor为例,用它打开BIOS文件后,在左侧“已识别项目”里点击System BIOS,再在右侧点击Setup Menu,再点击Run,就能弹出模拟内容了。而BIOS备份文件的获得,可以通过CBROM软件和BIOS刷新工具来实现。
6.UEFI截图
大多数支持UEFI的主板都内置有截图功能。比如华硕主板,插上U盘,在需要截图的时候按F12键就可以把图像保存在U盘里。如果主板没有集成截图功能,可以使用screen_new.efi(外部命令,可从网上下载到U盘),在EFI Shell环境中执行后按F12键就可以保存EFI Shell操作界面,截图文件会自动连续地保存到U盘上。执行exit命令退出EFI Shell后,在任意UEFI界面下仍可按F12键截屏。
● EFI Shell
EFI Shell指UEFI界面下实现用户和系统交互的命令行界面。
uefi boot 在UEFI主板BIOS中,一般有EFI Shell选项,如果没有,可以下载一个Shell.efi文件改名为shellx32.efi
或shellx64.efi,将其放在U盘中用来启动EFI Shell。或者用UEFI的Boot Maintenance Manager里面的“Boot from a file”加载U盘上的Shell.efi文件,效果等同。
EFI Shell的功能相当强大,自带许多功能强大的应用软件,相当于一个DOS操作系统了,运行界面如图1所示。
EFI Shell启动后的提示符为“Shell>”,非常像一个DOS命令提示符窗口,命令的输入方法也与DOS一样,进入文件夹也是cd命令,列出文件名则是ls(相当于DOS下的dir)。Date、time、mkdir、attrib、edit、cls、exit等命令含义与DOS命令相同。
EFI Shell的命令可分为引导命令、配置命令、文件系统命令、脚本命令、设备驱动程序和句柄命令以及导航和其他命令。更多的命令和用法,可以通过输入“help”或“?”来获得帮助。
EFI Shell应用程序开发一般使用C语言,在VS 2008下,下载UDK和EFI_Toolkit开发包并解压(需要手动配置开发环境,可参考UDK中ReleaseNote里面的相应说明),可以方便地进行UEFI Application开发,生成的应用程序是.efi文件。并且EFI Shell也支持脚本编程,类似DOS下的批处理。
● BIOS启动与UEFI启动
由于微软想用Windows 8统一桌面和移动端操作系统,对Windows做了大量改进,但很多人觉得不适应,所以迟迟得不到普及。虽然现在的新电脑预装的基本上都是Windows 8,但很多人买来电脑的第一件事就是将操作系统降级为Windows 7。
一个新问题出现了:以联想某笔记本为例,在启动时按F12,准备选择从光驱启动安装系统,但发现启动设备里根本就没有光驱。这是因为这些安装Windows 8的笔记本电脑都是从UEFI启动,我们首先要把启动方式改为传统的BIOS方式,才能从光驱启动。步骤为:①在电脑启动时按F2键进入BIOS界面,选择“Boot”项。在其子菜单“Boot Mode”后可见启动模式默认为“UEFI”。在这一项按回车,选择“Legacy Support”(传统支持,即传统BIOS启动模式)。②在选择了“Legacy Support”后,下面会多出一项“Boot Priority”,默认为“UEFI First”,将其改为“Legacy First”。③在“Boot Device Priority”位置,我们可以设置光驱优先启动。或者重启,在启动时按F12,在启动管理菜单下直接选择光驱。
在UEFI的启动选项中有一项就是安全启动,但它却可能成为困扰我们的一个选项。到底什么是安全启动呢?
微软Windows 8操作系统所认证的PC产品需要客户支持安全启动,而且启动过程中所有的软件和固件都需要可信的CA签名。也就是说在这个过程中将会锁定启动进程,因此无签名的第三方操作系统就无法启动。这就是为什么很多新的笔记本电脑预装的Windows 8操作系统对新手而言不容易更换的原因。
安全启动(Secure boot)是UEFI协议,不属于Window 8的功能,但却是Windows 8安全启动架构的一部分。Windows 8使用安全启动来确保pre-OS环境的安全。虽然看起来Windows 8在UEFI的配合下可能会阻止非Windows系统的启动,但它主要是用来防止未经授权的针对引导代码的访问,而原始设备制造商提供的固件更新程序是安全启动判定的关键,因而实际上一开始就可以允许用户禁用安全引导功能,所以不存在封杀其他系统的能力。安全启动并不“锁定”操作系统的装载器,只是应用安全策略,允许企业软件对组件进行验证。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论