无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 23367|回复: 14
打印 上一主题 下一主题

[求助] bcdedit 如何创建EFI 文件引导项?

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-8 10:18:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我原来天真的认为把.efi文件改名放在\efi\boot\bootx64.efi ,它就会成默认的启动管理器了。事实不是这样。uefi是否有nvram在记录固件引导项?

其实windSLIC 是用一个程序创建的,用bcded修改其中的path值不生效,用bcdedit 复制一个固件应用程序项也行,启动后在Boot menu中能看到。bcdedit 但是依旧无法修改其中的值.
请问有方法修改其它的值 吗?  或者添加efi入口。

测试发现位于{fwbootmgr} 第一的项 会先被启动,想使用grub2.efi来做启动器,现在 的办法。只是把WindSLIC 位置中的bootx64.efi用替换成grub2的文件来启动 来实现开机自启动grub2。   grub2能用chainloader 加载bootmgrfw.efi,所以选择它。
所以请问,如何修改和创建固件应用程序 项?

C:\Users\magic>bcdedit /enum firmware

固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {c034533c-aeaf-19e1-b862-806e6f6e6963}
                        {c034533e-aeaf-19e1-b862-806e6f6e6963}
                        {c034533a-aeaf-19e1-b862-806e6f6e6963}
                        {c034533b-aeaf-19e1-b862-806e6f6e6963}
                        {c034533d-aeaf-19e1-b862-806e6f6e6963}
timeout                 0

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=X:
path                    \EFI\Microsoft\Boot\bootmgfw.efi
default                 {current}
displayorder            {current}

固件应用程序(101fffff)
-------------------------------
标识符                  {c034533a-aeaf-19e1-b862-806e6f6e6963}
description             Optical Disk Drive

固件应用程序(101fffff)
-------------------------------
标识符                  {c034533b-aeaf-19e1-b862-806e6f6e6963}
description             Notebook Hard Drive

固件应用程序(101fffff)
-------------------------------
标识符                  {c034533c-aeaf-19e1-b862-806e6f6e6963}
device                  partition=X:
path                    \EFI\89ddafb2d906a4551dc5c41fa57e8628\BOOTX64.EFI
description             WindSLIC

固件应用程序(101fffff)
-------------------------------
标识符                  {c034533d-aeaf-19e1-b862-806e6f6e6963}
description             Notebook Ethernet

固件应用程序(101fffff)
-------------------------------
标识符                  {c034533e-aeaf-19e1-b862-806e6f6e6963}
device                  partition=X:
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
2#
发表于 2012-6-8 14:52:32 | 只看该作者
uefi引导信息(uefi启动菜单)是存在nvram中的,也就是 {fwbootmgr}下面的项,这个bcdedit可以更改。

另外,uefi启动菜单也可以直接通过主板的bios启动顺序设置来改,而不用进入操作系统修改,大部分uefi主板设置都是图形化的,修改起来比bcdedit命令行方便。
回复

使用道具 举报

3#
 楼主| 发表于 2012-6-8 20:50:46 | 只看该作者

回复 #2 fujianabc 的帖子

fujianabc的出现总是让我充满希望

我的板子确实不能用bcdedit来编辑。不知道WindSLIC是如何来添加fwbootmgr项的。再称赞下grub2 好用。
回复

使用道具 举报

4#
发表于 2012-6-9 01:43:22 | 只看该作者
不知道你的板子是不是有限制?
另外,我一般还是喜欢在bios设置里面改这个uefi启动菜单,而不是在操作系统中改。
回复

使用道具 举报

5#
 楼主| 发表于 2012-6-9 08:30:12 | 只看该作者
bcdedit 中新建“固件应用程序  ” 可以吗?  是哪个参数?
之前我做法是/copy 其它项再修改path 选项
回复

使用道具 举报

6#
发表于 2012-6-9 16:48:08 | 只看该作者
原帖由 jneny 于 2012-6-9 08:30 发表
bcdedit 中新建“固件应用程序  ” 可以吗?  是哪个参数?
之前我做法是/copy 其它项再修改path 选项

那你就用bcdedit /copy吧,我也没新建过。

不知道你为什么想用bcdedit来改这个固件菜单?一般我都是在bios设置中修改的,而不是在操作系统中来改
回复

使用道具 举报

7#
 楼主| 发表于 2012-6-9 21:40:26 | 只看该作者
第一:是习惯用引导器来管理操作系统
第二:安装完LINUX后并不能正确生成UEFI的引导项 (或者说修改nvram)。 没有试过先进的ubuntu。整个UEFI菜单中只有bootmgr和硬盘有关。
回复

使用道具 举报

8#
发表于 2012-6-9 21:54:57 | 只看该作者
原帖由 jneny 于 2012-6-9 21:40 发表
第一:是习惯用引导器来管理操作系统
第二:安装完LINUX后并不能正确生成UEFI的引导项 (或者说修改nvram)。 没有试过先进的ubuntu。整个UEFI菜单中只有bootmgr和硬盘有关。

这个fwbootmgr本来就不是操作系统的引导器,而是efi主板上带的引导程序。
按照正常标准,这个EFI主板上的引导程序在操作系统中也可以修改(而不像bios,必须尽主板bios才能更改启动顺序)。

但看你的描述,bcdedit和linux都改不了你的这个主板引导程序,应该是主板可能没有开放给操作系统,所以你还是进主板设置来改这个fwbootmgr下面的项。而且UEFI主板设置里面应该可以直接选择你要加载的.EFI文件的,比如选择执行grub2.efi
回复

使用道具 举报

9#
发表于 2012-6-9 21:58:38 | 只看该作者
bcdedit列出来的项,fwbootmgr里的那几个项是存在主板nvram中的,其他项还是存在硬盘的bcd文件里的
回复

使用道具 举报

10#
 楼主| 发表于 2012-6-10 00:05:22 | 只看该作者
是的,看来是板子的限制问题
回复

使用道具 举报

11#
发表于 2012-7-11 17:51:31 | 只看该作者
看来需要有人开发能读主板NVRAM的东西来修改fwbootmgr里的那几个项。
回复

使用道具 举报

12#
发表于 2012-7-12 15:28:30 | 只看该作者
原帖由 myBOOT 于 2012-7-11 17:51 发表
看来需要有人开发能读主板NVRAM的东西来修改fwbootmgr里的那几个项。

bcdedit就能读到,除非你的板子没按标准来
回复

使用道具 举报

13#
发表于 2013-2-21 18:09:55 | 只看该作者
用bcdedit /store BCDfile
需要先用diskpart 给windows efi区分配盘符

B:\>bcdedit /store b:\EFI\Microsoft\Boot\BCD /enum

Windows 启动管理器
--------------------
标识符                  {bootmgr}
device                  partition=\Device\HarddiskVolume1
path                    \EFI\Microsoft\Boot\bootmgfw.efi
description             Windows Boot Manager
locale                  en-us
inherit                 {globalsettings}
default                 {default}
resumeobject            {aa0b6361-7c05-11e2-9349-a34517bb1fbe}
displayorder            {default}
toolsdisplayorder       {memdiag}
timeout                 30

Windows 启动加载器
-------------------
标识符                  {default}
device                  partition=C:
path                    \windows\system32\winload.efi
description             Windows 8
locale                  en-us
inherit                 {bootloadersettings}
nointegritychecks       Yes
testsigning             Yes
isolatedcontext         Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \windows
resumeobject            {aa0b6361-7c05-11e2-9349-a34517bb1fbe}
nx                      OptIn
bootmenupolicy          Standard
detecthal               Yes

B:\>

[ 本帖最后由 rivulet 于 2013-2-21 18:20 编辑 ]
回复

使用道具 举报

14#
发表于 2015-1-22 22:29:48 | 只看该作者
经过验证,bcdedit命令必须指定标识符才能修改efi引导项,如下:
bcdedit /set {bootmgr} path \EFI\Boot\BOOTX64.EFI  可成功修改路径。
若使用bcdedit /set {current} path \EFI\Boot\BOOTX64.EFI 是无效的,即使提示操作完成,依然无法修改bootmgr项的efi路径参数
回复

使用道具 举报

15#
发表于 2017-3-20 22:58:49 | 只看该作者
bcdedit /set {fwbootmgr} default {bootmgr}
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-30 13:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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