无忧启动论坛

标题: grub2用于pe引导 [打印本页]

作者: 窄口牛    时间: 2016-4-19 22:51
标题: grub2用于pe引导
需要它判断当前efi环境,并修改bcd菜单中的顺序,以实现自动运行相应的pe系统。
作者: 窄口牛    时间: 2016-4-19 22:59
在启动bootx64.efi文件前,修改bcd64为bcd;启动bootia32.efi前,修改bcd32为bcd
作者: 窄口牛    时间: 2016-4-19 22:59
在启动bootx64.efi文件前,修改bcd64为bcd;启动bootia32.efi前,修改bcd32为bcd
作者: 窄口牛    时间: 2016-4-20 07:52
该怎么写呢?
作者: 2013qiuwei0209    时间: 2016-4-20 17:46
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
谢谢,抽空鼓捣测试下。
作者: 窄口牛    时间: 2016-4-20 23:17
已经成功。拜谢!
作者: 2013qiuwei0209    时间: 2016-4-21 09:09
窄口牛 发表于 2016-4-20 23:17
已经成功。拜谢!

你使用cp 改名字 bcd了吗?还是分开放的x86、x64的pe?
作者: boy6585948    时间: 2016-4-21 09:43
不是很明白啊,LZ是想做什么呢???
作者: 窄口牛    时间: 2016-4-21 11:33
分开放了
作者: 窄口牛    时间: 2016-4-22 15:51
boy6585948 发表于 2016-4-21 09:43
不是很明白啊,LZ是想做什么呢???

一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。
作者: 窄口牛    时间: 2016-4-22 15:52
boy6585948 发表于 2016-4-21 09:43
不是很明白啊,LZ是想做什么呢???

一个cfg走天下,让grub2自己选择显示菜单,mbr启动就显示BIOS菜单,efi32就显示efix86菜单,efi64就显示efix86_64菜单,但实质上是在一个cfg文件里写着。
作者: 窄口牛    时间: 2016-4-23 21:17
六十四和三十二可以筛选显示,阻止不了legacy显示,还有好办法吗?
作者: 窄口牛    时间: 2016-4-23 21:20
legacy下会把efi32和64的都显示出来。
作者: 窄口牛    时间: 2016-4-24 00:21
原来是缺少命令引起的。达到了目的
作者: 青青草    时间: 2016-4-24 00:42
窄口牛 发表于 2016-4-24 00:21
原来是缺少命令引起的。达到了目的

缺少命令?缺少什么命令?
作者: 青青草    时间: 2016-4-24 00:44
窄口牛 发表于 2016-4-23 21:20
legacy下会把efi32和64的都显示出来。

什么意思?
作者: 青青草    时间: 2016-4-24 00:57
窄口牛 发表于 2016-4-23 21:20
legacy下会把efi32和64的都显示出来。

bios环境下,64位cpu显示64位的菜单,32位cpu则显示32位的菜单,你能做到吗?
作者: 窄口牛    时间: 2016-4-24 06:09
不能,只能legacy和efi32和efi64三分。legacy64和legacy32不会分
作者: 窄口牛    时间: 2016-4-24 06:10
我也没明白原因,反正现在正常了。三分。
作者: wintoflash    时间: 2016-4-24 12:33
窄口牛 发表于 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
哦,酱紫啊,明白了。
作者: 窄口牛    时间: 2016-4-24 14:32
本帖最后由 窄口牛 于 2016-4-24 14:55 编辑

原来,qemu模拟还是两种CPU状态呢。






欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3