无忧启动论坛

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

[求助] 请问下有没有命令行工具添加UEFI引导序列?

    [复制链接]
跳转到指定楼层
#
发表于 2020-2-1 09:00:31 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 liuzhaoyzz 于 2020-4-6 07:15 编辑

请问下有没有命令行工具添加UEFI引导序列?
就是想要实现bootice里面的添加UEFI引导序列的功能。如图所示。bootice添加UEFI引导序列似乎不支持命令行吧?
linux下面似乎有个efibootmgr命令,这个命令有没有人移植到windows下面?
GitHub - rhboot/efibootmgr: efibootmgr development tree https://github.com/rhboot/efibootmgr

2020.4.5日pauly大神编译了一个booticex64_1.4版本已经支持了。
详见27楼http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=418717&pid=4026764&fromuid=298214


uefi引导序列.png (106.66 KB, 下载次数: 254)

uefi引导序列.png
72#
发表于 2023-9-7 16:56:37 | 只看该作者
wintoflash 发表于 2020-3-26 11:05
试了一下,这个程序目前能执行以下操作:
1. 设置 BootCurrent
2. 设置 BootNext

研究的怎么样了
回复

使用道具 举报

71#
发表于 2023-8-30 20:31:34 | 只看该作者
{guid}肯定不一样。

1. 选择下次启动的{GUID}项(一次性有效)



  1. bcdedit /set {fwbootmgr} bootsequence {GUID}
复制代码



2. 置顶或置尾:


  1. bcdedit /set {fwbootmgr} displayorder {GUID} /addfirst
复制代码





  1. bcdedit /set {fwbootmgr} displayorder {GUID} /addlast
复制代码


bcdedit并不关心{GUID}是否已经存在,已经存在也不会报错。
回复

使用道具 举报

70#
发表于 2023-8-30 16:40:49 | 只看该作者

多谢大佬指导,
怎样把添加项设为第一个引导项呢, 我用下面的方法, 会自动创建第二个项,两个项的名字一样
bcdedit /default {guid}
回复

使用道具 举报

69#
发表于 2023-8-30 16:34:21 | 只看该作者
2013kyj 发表于 2023-8-29 23:50
多谢大佬分享, 怎样判断当前系统是不是UEFI引导的呢

答案就在bcdedit
  1. bcdedit /enum {current}
复制代码
Windows 启动加载器
-------------------
标识符                  {current}
device                  partition=C:
path                    \windows\system32\winload.efi
description             Windows 11
locale                  zh-CN
inherit                 {bootloadersettings}

如果 path 中给出的路径是 winload.efi ,则说明系统是通过 UEFI 模式启动的了

点评

多谢大佬指导, 怎样把添加项设为第一个呢, 我用下面的方法, 会自动创建第二个项 bcdedit /default {guid}  详情 回复 发表于 2023-8-30 16:40
回复

使用道具 举报

68#
发表于 2023-8-30 16:30:36 | 只看该作者
2013kyj 发表于 2023-8-30 16:13
大佬, 红色字部分能设置分区的id吗, 不用盘符
bcdedit /set {guid} device partition=z:

可以是盘符,也可以是mountvol挂载的目录。
我的浅见:这里指定的盘符,是不会写入到nvram的,盘符是windows的概念,不是EFI的概念,bcdedit会把根据提供的盘符对应的物理磁盘和分区号(即这两个的guid)记录到nvram里面,就脱离了盘符的概念。
回复

使用道具 举报

67#
发表于 2023-8-30 16:13:41 | 只看该作者
pda8888 发表于 2023-8-30 15:31
把1、2、3步的命令和输出结果、错误提示贴出来看看。

大佬, 红色字部分能设置分区的id吗, 不用盘符
bcdedit /set {guid} device partition=z:

点评

可以是盘符,也可以是mountvol挂载的目录。 我的浅见:这里指定的盘符,是不会写入到nvram的,盘符是windows的概念,不是EFI的概念,bcdedit会把根据提供的盘符对应的物理磁盘和分区号(即这两个的guid)记录到nvra  详情 回复 发表于 2023-8-30 16:30
回复

使用道具 举报

66#
发表于 2023-8-30 16:11:54 | 只看该作者
pda8888 发表于 2023-8-30 15:31
把1、2、3步的命令和输出结果、错误提示贴出来看看。

不好意思大佬, 我把生成的guid两边的{}删了, 加上就行了
回复

使用道具 举报

65#
发表于 2023-8-30 15:31:17 | 只看该作者
2013kyj 发表于 2023-8-30 10:21
我第2第3条命令为什么一执行就出错呢, 指示引用指定项时出错, 我已经将第一步的guid替换到{guid}了

把1、2、3步的命令和输出结果、错误提示贴出来看看。

点评

大佬, 红色字部分能设置分区的id吗, 不用盘符 bcdedit /set {guid} device partition=z:  详情 回复 发表于 2023-8-30 16:13
不好意思大佬, 我把生成的guid两边的{}删了, 加上就行了  详情 回复 发表于 2023-8-30 16:11
回复

使用道具 举报

64#
发表于 2023-8-30 10:22:38 | 只看该作者
szwp 发表于 2023-8-21 15:43
https://www.powershellgallery.com/packages/UEFIv2/2.7

Add-UEFIBootEntry -Name "Linux" -FilePath " ...

这个资源不支持win7 只能win10
回复

使用道具 举报

63#
发表于 2023-8-30 10:21:59 | 只看该作者
pda8888 发表于 2023-8-16 21:35
其实,用bcdedit 增加 UEFI 启动序列,我也折腾了很久,最后翻到一个不知名的墙外网站,最终找到了答案:
...

我第2第3条命令为什么一执行就出错呢, 指示引用指定项时出错, 我已经将第一步的guid替换到{guid}了

点评

把1、2、3步的命令和输出结果、错误提示贴出来看看。  详情 回复 发表于 2023-8-30 15:31
回复

使用道具 举报

62#
发表于 2023-8-29 23:50:55 | 只看该作者
pda8888 发表于 2023-8-16 21:35
其实,用bcdedit 增加 UEFI 启动序列,我也折腾了很久,最后翻到一个不知名的墙外网站,最终找到了答案:
...

多谢大佬分享, 怎样判断当前系统是不是UEFI引导的呢

点评

答案就在bcdedit 如果 path 中给出的路径是 winload.efi ,则说明系统是通过 UEFI 模式启动的了  详情 回复 发表于 2023-8-30 16:34
回复

使用道具 举报

61#
发表于 2023-8-27 11:34:22 | 只看该作者
多谢分享!!
回复

使用道具 举报

60#
发表于 2023-8-21 21:05:53 | 只看该作者
pda8888 发表于 2023-8-21 21:02
可以在创建好EFI启动项之后,用 addlast 移动到最后。

默认启动项与启动顺序没有关联
回复

使用道具 举报

59#
发表于 2023-8-21 21:02:34 | 只看该作者
Bluebells 发表于 2023-8-19 21:14
但关键是不支持使用第三方工具编辑用 bcdedit 创建的 EFI 启动项(很早之前, 我的某帖子中有说明这个情况) ...

可以在创建好EFI启动项之后,用 addlast 移动到最后。

点评

默认启动项与启动顺序没有关联  详情 回复 发表于 2023-8-21 21:05
回复

使用道具 举报

58#
发表于 2023-8-21 20:57:12 | 只看该作者
szwp 发表于 2023-8-21 15:43
https://www.powershellgallery.com/packages/UEFIv2/2.7

Add-UEFIBootEntry -Name "Linux" -FilePath " ...

这个牛B,好资源,下回来研究一下。
回复

使用道具 举报

57#
发表于 2023-8-21 15:43:09 | 只看该作者
https://www.powershellgallery.com/packages/UEFIv2/2.7

Add-UEFIBootEntry -Name "Linux" -FilePath "\EFI\BOOT\BOOTX64.EFI"

点评

这个资源不支持win7 只能win10  详情 回复 发表于 2023-8-30 10:22
这个牛B,好资源,下回来研究一下。  详情 回复 发表于 2023-8-21 20:57
回复

使用道具 举报

56#
发表于 2023-8-19 21:14:10 | 只看该作者
本帖最后由 Bluebells 于 2023-8-19 21:22 编辑
pda8888 发表于 2023-8-19 20:50
已经添加成功过了,有bootice查看能看到,在BIOS的UEFI启动选项也能看到。

但关键是不支持使用第三方工具编辑用 bcdedit 创建的 EFI 启动项(很早之前, 我的某帖子中有说明这个情况)
使用 bcdedit 创建 EFI 文件的启动项还有一个致命缺点, 那就是在某些机子中, 会自动将新建的 EFI 启动项变为默认启动项(有几个人反馈有出现这种问题)
关于使用 bcdedit 创建 EFI 启动项的示例, 可以参考我的帖子Lenovo UEFI OKR 部署工具[+基于PECMD的开源版]中的"Lenovo_UEFI_OKR_部署工具PECMD开源版"里面的源码脚本

点评

可以在创建好EFI启动项之后,用 addlast 移动到最后。  详情 回复 发表于 2023-8-21 21:02
回复

使用道具 举报

55#
发表于 2023-8-19 21:11:53 来自手机 | 只看该作者
bcdedit添加nvram序列有限制,得有项可供copy
回复

使用道具 举报

54#
发表于 2023-8-19 21:05:21 来自手机 | 只看该作者
liuzhaoyzz 发表于 2023-8-18 16:15
能用这个添加grub2x64.efi的NVROM引导项吗?怕是不行吧?
你这个可能只能适用于微软的bootmgfw.efi建立N ...

当然行,群友前几年就试过了
回复

使用道具 举报

53#
发表于 2023-8-19 20:50:43 | 只看该作者
已经添加成功过了,有bootice查看能看到,在BIOS的UEFI启动选项也能看到。

点评

但关键是不支持使用第三方工具编辑用 bcdedit 创建的 EFI 启动项(很早之前, 我的某帖子中有说明这个情况)  详情 回复 发表于 2023-8-19 21:14
回复

使用道具 举报

52#
 楼主| 发表于 2023-8-18 16:15:04 | 只看该作者
pda8888 发表于 2023-8-16 21:35
其实,用bcdedit 增加 UEFI 启动序列,我也折腾了很久,最后翻到一个不知名的墙外网站,最终找到了答案:
...

能用这个添加grub2x64.efi的NVROM引导项吗?怕是不行吧?
你这个可能只能适用于微软的bootmgfw.efi建立NVROM引导项。

点评

当然行,群友前几年就试过了  详情 回复 发表于 2023-8-19 21:05
回复

使用道具 举报

51#
发表于 2023-8-16 21:35:34 | 只看该作者
其实,用bcdedit 增加 UEFI 启动序列,我也折腾了很久,最后翻到一个不知名的墙外网站,最终找到了答案:
3个核心步骤:
1、复制{bootmgr}
  1. bcdedit /copy {bootmbr} /d "My UEFI"
复制代码

如果不出意外,这步执行完了之后,会显示:已将该项目成功复制到{guid}
2、指定{guid}的启动分区(或通过mountvol挂载的目录也行)
  1. bcdedit /set {guid} device partition=x:
  2. 或bcdedit /set {guid} device partition=mountpath
复制代码

3、指定{guid}的启动文件
  1. bcdedit /set {guid} path \efi\boot\bootx64.efi
复制代码

这3步核心步骤做完,已经成功添加了UEFI启动项,通过
  1. bcdedit /enum firmwae
复制代码
,是可以列表出来刚刚添加的"My UEFI",而且,是写入了NVRAM的,也就意味着可以在主板的BIOS启动设置里面看到这个UEFI启动项。
剩下的还有扫除垃圾的工作,就是删除这个新启动项的local、inherit、resumobjedt、toolsdisplayeorder、timeout
折腾死人了,网上太多臭文,都是教你如何添加基于已经安装好的windows下的子启动项。

点评

我第2第3条命令为什么一执行就出错呢, 指示引用指定项时出错, 我已经将第一步的guid替换到{guid}了  详情 回复 发表于 2023-8-30 10:21
多谢大佬分享, 怎样判断当前系统是不是UEFI引导的呢  详情 回复 发表于 2023-8-29 23:50
能用这个添加grub2x64.efi的NVROM引导项吗?怕是不行吧? 你这个可能只能适用于微软的bootmgfw.efi建立NVROM引导项。  详情 回复 发表于 2023-8-18 16:15
回复

使用道具 举报

50#
 楼主| 发表于 2023-7-12 21:50:32 | 只看该作者
Boringman 发表于 2023-7-5 14:28
从github上下载的原来不是原作者发布的,不支持这个cmd命令。注册账号评论下。
话说有人知道Pauly大神除 ...

他已经不更新bootice了。兴趣使然吧。
回复

使用道具 举报

49#
 楼主| 发表于 2023-7-12 21:49:59 | 只看该作者
回复

使用道具 举报

48#
发表于 2023-7-8 21:21:13 | 只看该作者
        赞一个!
回复

使用道具 举报

47#
发表于 2023-7-5 14:28:11 | 只看该作者
liuzhaoyzz 发表于 2020-4-6 07:13
bootice添加uefi引导序列命令行
BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi"  ...

从github上下载的原来不是原作者发布的,不支持这个cmd命令。注册账号评论下。
话说有人知道Pauly大神除了本论坛还有其他发布渠道吗?ipauly.com网址无法访问了。

点评

他已经不更新bootice了。兴趣使然吧。  详情 回复 发表于 2023-7-12 21:50
回复

使用道具 举报

46#
发表于 2023-7-5 14:11:57 | 只看该作者
liuzhaoyzz 发表于 2020-4-6 07:13
bootice添加uefi引导序列命令行
BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi"  ...

能不能放个网盘地址下载

点评

https://www.123pan.com/s/lE5A-QLdyv.html  详情 回复 发表于 2023-7-12 21:49
回复

使用道具 举报

45#
发表于 2023-7-4 16:22:49 | 只看该作者
liuzhaoyzz 发表于 2020-4-6 07:13
bootice添加uefi引导序列命令行
BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi"  ...

不了
回复

使用道具 举报

44#
发表于 2023-4-20 10:24:35 | 只看该作者
bcdedit 和 EasyUEFIC (EasyUEFI 附带的命令行版本) 都可以以命令行方式添加 UEFI 引导序列。不过 bcdedit 支持的 OS Type 只有 Windows,不过其它 OS Type 的 EFI 文件也一样能作为 Windows OS Tpye 启动,只是在某特殊情况下会有一些问题
回复

使用道具 举报

43#
 楼主| 发表于 2023-3-3 21:28:12 | 只看该作者
遨游的风 发表于 2023-3-3 21:02
bootice现在有添加“下一次启动该项”的功能的命令吗?目前就在bootice和diskginus上见过这个功能,但 ...

我没有用过这个命令参数。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-20 07:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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