无忧启动论坛

 找回密码
 注册
搜索
一次装机 终生领工资最纯净的「微PE装机优盘」UEPON大师作品卡瑞飞系统和装机二合一超级U盘
诚聘PE工具开发技术员QQ:1607112133系统gho:最纯净好用系统下载站广告联系 QQ:184822951 微信:wuyouceo
查看: 8106|回复: 26
打印 上一主题 下一主题

[已解决] GURB2 UEFI环境如何引导光盘上的非镜像PE系统

  [复制链接]
跳转到指定楼层
1#
发表于 2014-12-8 19:12:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jebbs 于 2014-12-10 11:17 编辑

我最近将自己的启动光盘迁移到GRUB2方案,做成BIOS和UEFI双启的方案。所有的难题都啃下来了,只剩下无法在UEFI环境下,GRUB2-->CHAINLOADER-->BOOTX64.EFI(WIN,在光盘中)。

先介绍下我的方案:
一个光盘中集成三个主要工具,分别是WIN8PE32、WIN8PE64和Parted Magic。预期是三者在BIOS和UEFI方案下都能正常启动
目前Parted Magic是OK的,唯一PE有问题,就卡在上面那条路上。我个人的理解是,EFI环境一定要FAT格式,而BOOTX64.EFI在光盘中,不是FAT,因而CHAINLOADER是不成功的,无论是有没有载入文件系统支持的模块。
目前感觉唯一可行的方案只能是MEMDISK了,但一是费内存,二是32和64之前不能共用外置了,都不是好办法。
不知道哪位大神对此有研究,有解决办法的?先在此谢过!



最新测试:我将微软的BOOTX64.EFI改名PE.EFI,放在efisys.bin中,loopback了也不能加载(此时GRUB的EFI是可以chainloader的)。原因可能是PE.efi访问不了Loop,也可能是其他未知问题

已解决,解决办法参见13楼和18楼,感谢2012hxwgz!

评分

参与人数 1无忧币 +5 收起 理由
有阴也有阳 + 5 很给力!

查看全部评分

2#
发表于 2014-12-8 19:38:34 | 只看该作者
本帖最后由 2011niumao 于 2014-12-8 20:32 编辑

我制作的的一个 小grub通用启动器-2014-12-06,可以参考.
汇集了 grub4ods grub2-pc grub2-efi(x86_64) grubia32-efi几种启动方式.
主要是引导UBUNTU系统.对于Windows 以及WINPE 还没有什么经验.
http://pan.baidu.com/s/1hqopezq

点评

谢谢,有些高级语句,学到了。 我在想是不是能MAP一个PE启动文件的FAT磁盘镜像,再chainloader到镜像中,再启动回CD。不知这个方案可行不  详情 回复 发表于 2014-12-9 09:01
回复

使用道具 举报

3#
 楼主| 发表于 2014-12-9 09:01:57 | 只看该作者
2011niumao 发表于 2014-12-8 19:38
我制作的的一个 小grub通用启动器-2014-12-06,可以参考.
汇集了 grub4ods grub2-pc grub2-efi(x86_64) gru ...

谢谢,有些高级语句,学到了。
我在想是不是能MAP一个PE启动文件的FAT磁盘镜像,再chainloader到镜像中,再启动回CD。不知这个方案可行不
回复

使用道具 举报

4#
发表于 2014-12-9 09:31:03 来自手机 | 只看该作者
loopback loop1 winpe.img chainloader (loop1)+1 boot 试一下,没用过!
回复

使用道具 举报

5#
发表于 2014-12-9 09:38:26 来自手机 | 只看该作者
不好意思,手机发帖没办法换行!如果不可以,就 insmod ntldr ntldr (loop1)/ntldr  (第二个ntldr可以是其他pe启动文件。 先说好,没实验,不知道进去实模式后会消失么。

点评

谢谢。GRUB2的BIOS下PE启动成功的哦,现在的问题是限定在UEFI模式下,因此肯定是chainloader *.efi,ntldr没用的哦。 loopback试过了,GRUB2里认loop,chainloader 后面的efi认不到,也启动不了  详情 回复 发表于 2014-12-9 09:54
回复

使用道具 举报

6#
 楼主| 发表于 2014-12-9 09:54:22 | 只看该作者
my9823 发表于 2014-12-9 09:38
不好意思,手机发帖没办法换行!如果不可以,就 insmod ntldr ntldr (loop1)/ntldr  (第二个ntldr可以是其 ...

谢谢。GRUB2的BIOS下PE启动成功的哦,现在的问题是限定在UEFI模式下,因此肯定是chainloader *.efi,ntldr没用的哦。
loopback试过了,GRUB2里认loop,chainloader 后面的efi认不到,也启动不了
回复

使用道具 举报

7#
 楼主| 发表于 2014-12-9 09:58:00 | 只看该作者
本帖最后由 jebbs 于 2014-12-9 09:59 编辑

现在的问题就转化为,ISO文件里有 bootx64.efi, bcd,win8pe.wim,如果是 纯 uefi 引导盘,这样就足够了,但中间插了个GRUB2,不知道怎么转过去

PS,纯UEFI下,bootx64.efi可能是在EFI镜像里的

点评

我把ISO文件解开到VHD上使用VBOX测试,可以使用grub2-efi,chainloader 方式启动到WINPE的那个bootx64.efi. 接着我把他们做成ISO,结果就不能由grubx64.efi引导bootx64.efi了。 报错说是 BCD 文件有错。 可以推  详情 回复 发表于 2014-12-9 10:17
回复

使用道具 举报

8#
发表于 2014-12-9 10:17:34 | 只看该作者
本帖最后由 2011niumao 于 2014-12-9 11:06 编辑
jebbs 发表于 2014-12-9 09:58
现在的问题就转化为,ISO文件里有 bootx64.efi, bcd,win8pe.wim,如果是 纯 uefi 引导盘,这样就足够了,但 ...


我把ISO文件解开到VHD上使用VBOX测试,可以使用grub2-efi,chainloader 方式启动到WINPE的那个bootx64.efi.
接着我把他们做成ISO,结果就不能由grubx64.efi引导bootx64.efi了。
报错说是 BCD 文件有错。

可以推测  如果是做启动优盘,解开就可以。但是如果是做启动光盘不行。
而且这个错误很奇怪,不是说不能引导bootx64.efi(WINPE的),是说BCD有错。
也许是WINPE的系统内的问题吧。或者说调整一下WINPE的注册表是不是就行呢。

是 0xc000000e错误。很常见的.百度中.....

点评

这个问题应该是和我的同理的。如果有任何进展记得分享给我啊 我怀疑是chainloader的时候,后者所在的分区格式问题,GPT+FAT,这两个条件在ISO上一个也不满足  详情 回复 发表于 2014-12-9 11:13
回复

使用道具 举报

9#
发表于 2014-12-9 10:28:28 来自手机 | 只看该作者
这个板块不是有个grub2全内置的efi吗,你可以用它做bootx64.efi
回复

使用道具 举报

10#
发表于 2014-12-9 10:29:24 来自手机 | 只看该作者
俺们还是7-8年前的电脑,没办法折腾uefi

点评

我是在虚拟机上折腾的。GRUB2 EFI已经完工了的,能引导EFI版的parted magic了,但无论如何,需要微软的bootx64.efi来读取BCD,引导WIM文件。但GRUB2交给微软引导时行不通  详情 回复 发表于 2014-12-9 11:27
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2019-4-20 10:56

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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