无忧启动论坛

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

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

    [复制链接]
1#
发表于 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
回复

使用道具 举报

2#
发表于 2023-8-19 20:50:43 | 显示全部楼层
已经添加成功过了,有bootice查看能看到,在BIOS的UEFI启动选项也能看到。

点评

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

使用道具 举报

3#
发表于 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,好资源,下回来研究一下。
回复

使用道具 举报

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

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

点评

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

使用道具 举报

5#
发表于 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
回复

使用道具 举报

6#
发表于 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里面,就脱离了盘符的概念。
回复

使用道具 举报

7#
发表于 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
回复

使用道具 举报

8#
发表于 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}是否已经存在,已经存在也不会报错。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-9 04:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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