从UEFI启动PE 并执行备份和还原的动作

 

前言
最近有客户需要实现在UEFI里面boot WinPE ,然后进行recovery操作。根据客户的要求,通过在网络上搜索资料终于实现了。方法网络上都有,我只是简单的总结了下。
 
UEFI 的定义
对于操作系统来说,如果主板使用的是BIOS,那么操作系统就必须面对所有的硬件,大到主板显卡,小到鼠标键盘,每次重装系统或者系统升级,都必须手动安装新的驱动,否则硬件很可能无法正常工作。而基于EFI的主板则方便很多,因为EFI架构使用的驱动基于EFI Byte Code。EFI Byte Code有些类似于Java的中间代码,并不由CPU直接执行操作,而是需要EFI层进行翻译。对于不同的操作系统来说,EFI将硬件层很好地保护了起来,所有操作系统看到的,都只是EFI留给EFI Byte Code的程序接口,而EFI Byte Code又直接和Windows的API联系,这就意味着无论操作系统是Windows还是Linux,只要有EFI Byte Code支持,只需要一份驱动程序就能吃遍所有操作系统平台
 
 
1) 制作一个winpe x64
为什么要制作winpe x64 呢? 开始我也考虑了很久,后来才发现是win 7 64位的OS 才同时支持BIOS和UEFI启动。在Image Configuration Editor 里面制作一个WinPE x64
制作出来的文件如下:
请注意,WinPE x86 和Winpe X64有些文件是不同的。在X86下面,是没有bootmgr.efi的。
 

2) 复制一个bootmgfw.efi 文件到根目录下,同时复制shell.efi文件到根目录下

如下. Bootmgfw.efi 是在\Windows\Boot\EFI 路径下,复制一份到根目录下。Shell.efi 则是BIOS本身的一个文件,由Intel方布的,可以从网络上下载。
 

 
3) 然后在BIOS里面设置从EFI启动,这个时候系统会进入EFI SHELL, 进入指令界面,输入“bootmgfw.efi” 。这个时候你就可以看到熟悉的WINPE界面了喔。 
 
4) 由于UEFI只支持fat32位的系统,无法识别大于4G的文件,但是windows 7/8的wim文件一般都比较大,因此为了能够兼容,需要使用imagex的分卷操作。具体如下:win7.wim是原始镜像文件
 
imagex /split D:\win7.wim d:\datasplited.swm 640
 
imagex 会自动的分割文件,文件大小为640M大小,自动编号如datasplited1.swm ,datesplited2.swm 等。
 
5)还原系统,如果想还原的话,可以参考如下指令
Example:
Copy all SWM files to a local drive - in this example, c:\image.
Run the following command: imagex /ref c:\image\*.swm /apply c:\image\split.swm 1 c:
 
6)这样子就实现了通过EFI进行引导PE,并执行备份和还原的过程了
 

需要注意的几个地方:

1:bootmgfw.efi  文件是在winpe 64位的系统里面才有的,winpe 32为系统里面没有。

2:shell.efi 文件据说是Intel早期发布的一个用来进行操作的shell, 可以从网络上下载,很多。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章