|
本帖最后由 quya 于 2014-4-30 12:43 编辑
本文根据前文 抛砖引玉:优盘EFI Shell 安装系统及脚本的应用 引申而来
目的:优盘能传统启动, 能EFI启动win8, win7安装盘, PE
准备阶段: 以一个32G优盘为例,我将之分为4个分区,第一个分区20G, 格式EXFAT, 用来储存日常数据或者ISO安装盘, 第2,3个分区,NTFS格式,每个分区4-5G,将win7,win8 iso原安装盘分别解压至此, 最后一个分区500-700mb, fat32格式, 用来存放PE和EFI Shell 启动文件。分区软件可用cfadisk驱动,因为安装之后能看到优盘所有分区,便于编辑。完成之后保留或者卸载这个驱动都可以。
传统启动实现办法: 用bootice写入grubdos至第4分区, 并将第四分区激活,因为大多数PE合盘采用的是grubdos启动 (如果不是,请根据PE采用不同的启动办法), 然后将你喜欢的PE ISO盘解压至该盘。
EFI启动办法:先将EFI Shell文件 (你可以下载我的附件,里边包含了脚本)拷贝至fat分区 \efi\boot 目录, 如果该目录有原来的PE文件, 覆盖即可。再将bootmgfw.efi (我想这个文件只是调用 efi\microsoft\boot\bcd )分别拷贝至2-4个分区的根目录, 分别改名 win8.efi, win7.efi, pe.efi即可。
脚本内容如下:
Startup.nsh 类似于dos的autoexec, 能自动执行
echo -off
for %i in fs0 fs1 fs2 fs3 fs4 fs5 fs6 fs7 fs8 fs9 fsa fsb fsc
if exist %i:\efi\boot\ntfs.efi then
%i:
goto loadntfs
endif
endfor
:loadntfs
load \efi\boot\ntfs.efi
cls
echo 1- Installation of Windows 8
echo 2- Installation of Windows 7
echo 3- Windows PE
Echo Enter choice and press Enter
1.nsh 启动安装win8的脚本,其他2个类似, 因EFI Shell 无用户输入等命令,所以只能用这种类似的但实际上只是调用另一个脚本的办法来实现。
echo -off
for %i in blk0 blk1 blk2 blk3 blk4 blk5 blk6 blk7 blk8 blk9 blka blkb blkc blkd blke blkf blkg
if exist %i:\win8.efi then
%i:
goto act
endif
endfor
:act
win8
几点说明:
1. 上边提到的某些文件的安放目录其实可以随意的, 只是需要修改脚本。
2. cfadisk驱动只对本机有效, 在其他机器只能看到优盘的第一个分区。
3. 我下载了无忧论坛的2个pe(无垠和HPY),运行不是太好, 原因未知。 2个pe都能在传统模式下出启动菜单,但都无法启动xp, 2003 pe, 无垠的PE能启动win8 64 位PE, 无32位, HPY PE能启动32位win8 pe, 却无法启动64位的。而在EFI Shell下, 似乎出loading 画面之后都无法启动, 也许无垠的能启动, 但我忘记了。因为win8,win7 安装盘都能启动, 我只能认为PE的兼容性有问题, 如果2位PE制作者能看到本文, 希望研究一下这个问题, 谢谢。 本人对PE是一窍不通的。
4. 如果将2-3分区格式化成fat32, 那么在bios启动之时按F12 选择启动之时, 就会出现多个UEFI的启动, 分别代表win8,win7, PE, 只是名称都一样,你得记住正确的顺序, 而且默认启动的都是\efi\boot\下的bootx64.efi,不一定是你希望的,当然如果你习惯这样, 不用脚本也是可以的。
PS: 如果你一路看到这儿, 我想对你说声对不起, 因为经过楼下同学提醒,我的办法虽然管用, 却也不用如此繁琐的办法。 我的方法简直是脱裤子放屁, 多此一举, 虽然也许在某些场合对某些同学有点点启发作用。
正确的做法就是只把优盘划成2个分区, 第一分区exfat, 放各种iso安装盘以及你的数据, 第二分区fat 放一个支持efi+传统bios双启动的pe (推荐阿弥陀佛的,因为在我的实验中均能成功启动), 然后加载各种iso文件, setup即可。
相比量产, fabinst之类的多分区, 隐藏分区办法, 我的做法似乎更简单有效。 |
|