无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 窄口牛

grub2用于pe引导

[复制链接]
发表于 2016-4-19 22:51:56 来自手机 | 显示全部楼层 |阅读模式
需要它判断当前efi环境,并修改bcd菜单中的顺序,以实现自动运行相应的pe系统。
 楼主| 发表于 2016-4-19 22:59:08 来自手机 | 显示全部楼层
在启动bootx64.efi文件前,修改bcd64为bcd;启动bootia32.efi前,修改bcd32为bcd
回复

使用道具 举报

 楼主| 发表于 2016-4-19 22:59:12 来自手机 | 显示全部楼层
在启动bootx64.efi文件前,修改bcd64为bcd;启动bootia32.efi前,修改bcd32为bcd
回复

使用道具 举报

 楼主| 发表于 2016-4-20 07:52:10 来自手机 | 显示全部楼层
该怎么写呢?
回复

使用道具 举报

发表于 2016-4-20 17:46:47 | 显示全部楼层
if [ "${grub_platform}" == "efi" ]; then
        if [ "${grub_cpu}" == "x86_64" ]; then
    menuentry "WinPE UEFI x64" {
      ......
    }
        fi
       
        if [ "${grub_cpu}" == "i386" ]; then
    menuentry "WinPE UEFI x64" {
      ......
    }
        fi
else
        if [ "${grub_platform}" == "pc" ]; then
                if [ "${grub_cpu}" == "i386" ]; then
      menuentry "WinPE UEFI x64" {
        ......
      }
                fi
        else
                echo "unknown platform!"
        fi
fi

BCD文件改名不知道可不可以,Linux命令是 cp bcd64 bcd 、cp bcd32 bcd  或者

你可以两个pe放在不同文件夹,每个文件夹文件为:bcd、bootmgfw.efi、winpe.wim (因为bootmgfw.efi有就近原则,当前目录有bcd就读取当前目录,否则查找/EFI/microsoft/boot/bcd)
回复

使用道具 举报

 楼主| 发表于 2016-4-20 21:18:21 | 显示全部楼层
谢谢,抽空鼓捣测试下。
回复

使用道具 举报

 楼主| 发表于 2016-4-20 23:17:17 来自手机 | 显示全部楼层
已经成功。拜谢!

点评

你使用cp 改名字 bcd了吗?还是分开放的x86、x64的pe?  详情 回复 发表于 2016-4-21 09:09
回复

使用道具 举报

发表于 2016-4-21 09:09:51 | 显示全部楼层
窄口牛 发表于 2016-4-20 23:17
已经成功。拜谢!

你使用cp 改名字 bcd了吗?还是分开放的x86、x64的pe?
回复

使用道具 举报

发表于 2016-4-21 09:43:23 | 显示全部楼层
不是很明白啊,LZ是想做什么呢???

点评

一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。  详情 回复 发表于 2016-4-22 15:52
一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。  详情 回复 发表于 2016-4-22 15:51
回复

使用道具 举报

 楼主| 发表于 2016-4-21 11:33:37 来自手机 | 显示全部楼层
分开放了
回复

使用道具 举报

 楼主| 发表于 2016-4-22 15:51:35 来自手机 | 显示全部楼层
boy6585948 发表于 2016-4-21 09:43
不是很明白啊,LZ是想做什么呢???

一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。
回复

使用道具 举报

 楼主| 发表于 2016-4-22 15:52:37 来自手机 | 显示全部楼层
boy6585948 发表于 2016-4-21 09:43
不是很明白啊,LZ是想做什么呢???

一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。
回复

使用道具 举报

 楼主| 发表于 2016-4-23 21:17:37 来自手机 | 显示全部楼层
六十四和三十二可以筛选显示,阻止不了legacy显示,还有好办法吗?
回复

使用道具 举报

 楼主| 发表于 2016-4-23 21:20:18 来自手机 | 显示全部楼层
legacy下会把efi32和64的都显示出来。

点评

bios环境下,64位cpu显示64位的菜单,32位cpu则显示32位的菜单,你能做到吗?  详情 回复 发表于 2016-4-24 00:57
什么意思?  详情 回复 发表于 2016-4-24 00:44
回复

使用道具 举报

 楼主| 发表于 2016-4-24 00:21:45 来自手机 | 显示全部楼层
原来是缺少命令引起的。达到了目的

点评

缺少命令?缺少什么命令?  详情 回复 发表于 2016-4-24 00:42
回复

使用道具 举报

发表于 2016-4-24 00:42:56 来自手机 | 显示全部楼层
窄口牛 发表于 2016-4-24 00:21
原来是缺少命令引起的。达到了目的

缺少命令?缺少什么命令?
回复

使用道具 举报

发表于 2016-4-24 00:44:11 来自手机 | 显示全部楼层
窄口牛 发表于 2016-4-23 21:20
legacy下会把efi32和64的都显示出来。

什么意思?
回复

使用道具 举报

发表于 2016-4-24 00:57:07 来自手机 | 显示全部楼层
窄口牛 发表于 2016-4-23 21:20
legacy下会把efi32和64的都显示出来。

bios环境下,64位cpu显示64位的菜单,32位cpu则显示32位的菜单,你能做到吗?
回复

使用道具 举报

 楼主| 发表于 2016-4-24 06:09:38 来自手机 | 显示全部楼层
不能,只能legacy和efi32和efi64三分。legacy64和legacy32不会分

点评

efi32和efi64分不了的。 if [ "${grub_cpu}" == "i386" ] 和if [ "${grub_cpu}" == "x86_64" ] 这个是判断cpu是32为还是64位的,而不是判断efi固件是32位还是64位的  详情 回复 发表于 2016-4-24 12:33
回复

使用道具 举报

 楼主| 发表于 2016-4-24 06:10:57 来自手机 | 显示全部楼层
我也没明白原因,反正现在正常了。三分。
回复

使用道具 举报

发表于 2016-4-24 12:33:43 | 显示全部楼层
窄口牛 发表于 2016-4-24 06:09
不能,只能legacy和efi32和efi64三分。legacy64和legacy32不会分

efi32和efi64分不了的。
if [ "${grub_cpu}" == "i386" ] 和if [ "${grub_cpu}" == "x86_64" ] 这个是判断cpu是32为还是64位的,而不是判断efi固件是32位还是64位的
回复

使用道具 举报

 楼主| 发表于 2016-4-24 14:16:22 来自手机 | 显示全部楼层
哦,酱紫啊,明白了。
回复

使用道具 举报

 楼主| 发表于 2016-4-24 14:32:11 来自手机 | 显示全部楼层
本帖最后由 窄口牛 于 2016-4-24 14:55 编辑

原来,qemu模拟还是两种CPU状态呢。
1.jpg
2.jpg
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 05:36

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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