无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 15392|回复: 14
打印 上一主题 下一主题

[原创] 优盘实现 EFI+传统BIOS多重启动的粗浅思路

  [复制链接]
跳转到指定楼层
1#
发表于 2014-4-28 13:58:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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之类的多分区, 隐藏分区办法, 我的做法似乎更简单有效。

EFI boot.zip

285.57 KB, 下载次数: 626, 下载积分: 无忧币 -2

2#
发表于 2014-4-28 15:26:58 | 只看该作者
楼主看来是本坛efi shell脚本的先锋了
回复

使用道具 举报

3#
发表于 2014-4-28 17:25:29 | 只看该作者
如果仅是安装系统和启动PE,两个分区已经足够,一个Exfat,用于存放系统镜像(可以将多个install.wim集合到一起,放到一个ISO中);一个efi分区,用于存放x64的PE或RamOS和进行UEFI启动。

点评

EFI分区可以启动x64的Win7/8PE,PE下可以加载保存在其它分区的系统ISO镜像。挂载镜像,双击运行程序setup.exe就可以安装系统了  详情 回复 发表于 2014-4-28 20:57
efi 分区不能调用ISO文件, 如果efi分区只是驱动PE, 似乎依旧无法安装efi启动的win8, win7,除非手动分什么esp之类分区什么的。  发表于 2014-4-28 18:48
回复

使用道具 举报

4#
发表于 2014-4-28 20:57:51 | 只看该作者
yaojy 发表于 2014-4-28 17:25
如果仅是安装系统和启动PE,两个分区已经足够,一个Exfat,用于存放系统镜像(可以将多个install.wim集合到 ...

EFI分区可以启动x64的Win7/8PE,PE下可以加载保存在其它分区的系统ISO镜像。挂载镜像,双击运行程序setup.exe就可以安装系统了
回复

使用道具 举报

5#
发表于 2014-5-1 16:59:48 | 只看该作者
在你的指点下,我实现双分区USB盘的双启问题。

我原来是这样作的:将双启分区为第一分区、拷入双启文件并设好主引导记录或分区引导记录;第二分区为用户数据分区并设为可见分区,供用户存放有关数据用。但这样在实机上只能bios方式启动,在虚拟机上可uefi方式启动。

现在,按你的指点,我把双启动分区调整为最后一个分区(我感觉这是关键),用户数据分区调整为第一分区并设为可见分区,其他作法未变。这样成功在实机上实现了双启。

现在要请教的是,为何须把双启动分区调整为最后一个分区才能实现双启,谢谢!
回复

使用道具 举报

6#
发表于 2014-5-1 19:48:52 | 只看该作者
efi\boot\ntfs.efi 完全可以放\ntfs.efi呀。
回复

使用道具 举报

7#
发表于 2014-5-1 20:00:03 | 只看该作者
就会出现多个UEFI的启动, 分别代表win8,win7, PE, 只是名称都一样,你得记住正确的顺序, 而且默认启动的都是\efi\boot\下的bootx64.efi,不一定是你希望的,当然如果你习惯这样, 不用脚本也是可以的。

这个可能会有问题,不一样的主板有可能排序是反过来的。
回复

使用道具 举报

8#
发表于 2014-5-2 09:34:50 | 只看该作者
既然是引导BCD,直接把win8,win7, PE等等。。。制作在一起就可以了。

测试了这样方式,觉得使用Refind来管理,更好一些。

在PE使用WinNTSetup来安装,好像又更直接,成功率高,不会找不到驱动程序,这是实际操作过几多个系统后的感觉。
回复

使用道具 举报

9#
发表于 2014-5-8 22:10:34 | 只看该作者
完全看不懂,膜拜楼主
回复

使用道具 举报

10#
发表于 2014-12-21 16:52:01 | 只看该作者
学习中...
回复

使用道具 举报

11#
发表于 2015-8-23 17:56:45 | 只看该作者
先想分享,下载了
回复

使用道具 举报

12#
发表于 2015-10-5 11:11:12 | 只看该作者
膜拜楼主,努力学习
回复

使用道具 举报

13#
发表于 2016-11-23 11:19:05 | 只看该作者
收藏学习你的方法,谢谢
回复

使用道具 举报

14#
发表于 2017-6-13 09:45:17 | 只看该作者
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:

这个命令运行报错
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 02:35

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表