无忧启动论坛

标题: 如何用bootice等工具的命令行添加一个efi引导项 [打印本页]

作者: qj_tzy    时间: 2024-9-2 16:23
标题: 如何用bootice等工具的命令行添加一个efi引导项
本帖最后由 qj_tzy 于 2024-9-10 15:18 编辑

如何用bootice等工具的命令行添加一个efi引导项

若我的esp分区为盘符为x:,想把该分区/efi/dir/xx_boot.efi,添加到电脑,启动项名如为my_uefi_boot,作为电脑下次引导的efi启动项。

希望通过如下办法实现:在.bat批文本中调用bootice等工具,用命令行方式添加下次启动电脑的efi引导项。

在.bat批文本中如何写该命令行,敬请各位大大位指点,诚谢!


已解决,见37楼

作者: szwp    时间: 2024-9-2 16:33
2020版可以,里面有说明。

BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi" /title="\EFI\boot\grub2x64.efi"
作者: qj_tzy    时间: 2024-9-2 16:38
本帖最后由 qj_tzy 于 2024-9-2 16:53 编辑
szwp 发表于 2024-9-2 16:33
2020版可以,里面有说明。

BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi" /ti ...

感谢,我没有2020版,烦请提供一下下载点的链接!
作者: qj_tzy    时间: 2024-9-2 16:49
szwp 发表于 2024-9-2 16:33
2020版可以,里面有说明。

BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi" /ti ...

感谢您多次的热心帮助,估计你那里会有2020版的,能否传我下,谢谢!
作者: szwp    时间: 2024-9-2 17:00
下班了,手机未收藏,群文件里有,论坛里也有
作者: captain_g    时间: 2024-9-2 17:23
http://bbs.wuyou.net/forum.php?m ... p;page=1#pid4026764

作者: Climbing    时间: 2024-9-2 17:31
szwp 发表于 2024-9-2 16:33
2020版可以,里面有说明。

BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi" /ti ...

我在论坛里找到了2019版,但没有找到2020版,这里蹲一个。

貌似在Windows下只能找到这一个可以操作EFI启动条目的命令行工具。
作者: 旭东    时间: 2024-9-2 17:32
来学习
作者: wn168cn@163.com    时间: 2024-9-2 17:33
学习了
作者: qj_tzy    时间: 2024-9-2 19:25
captain_g 发表于 2024-9-2 17:23
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=418717&page=1#pid4026764

非常感谢,下载试试!
作者: qj_tzy    时间: 2024-9-2 19:25
Climbing 发表于 2024-9-2 17:31
我在论坛里找到了2019版,但没有找到2020版,这里蹲一个。

貌似在Windows下只能找到这一个可以操作EFI ...

感谢您的热心回复!
作者: wang1126    时间: 2024-9-2 19:39
谢谢2楼分享
作者: szwp    时间: 2024-9-3 08:02
群文件有些bcdedit操作序列的示例
作者: plutoshen    时间: 2024-9-3 13:28
路过,在linux下非常简单的问题被你们搞得这么复杂。
作者: yzqmxh    时间: 2024-9-3 15:32
学习了
作者: fui2008    时间: 2024-9-3 20:15
先收藏,坐等加精
作者: qj_tzy    时间: 2024-9-4 22:59
szwp 发表于 2024-9-2 16:33
2020版可以,里面有说明。

BOOTICEx64.exe /uefi /add /inspos=1 /file="I:\EFI\boot\grub2x64.efi" /ti ...

前两天外出无时间测试,今晚测试了,能正常添加启动项。
但用BOOTICEx64.exe /uefi /delete /file="I:\EFI\boot\grub2x64.efi",删除已存在的启动项出错,所以未能成功删除启动项,还请指点,诚谢!
作者: szwp    时间: 2024-9-5 06:53
qj_tzy 发表于 2024-9-4 22:59
前两天外出无时间测试,今晚测试了,能正常添加启动项。
但用BOOTICEx64.exe /uefi /delete /file="I:\E ...

群文件搜序列,找清空可以参考
作者: Bluebells    时间: 2024-9-5 07:00
Climbing 发表于 2024-9-2 17:31
我在论坛里找到了2019版,但没有找到2020版,这里蹲一个。

貌似在Windows下只能找到这一个可以操作EFI ...

bcdedit 是可以操作 efi 启动条目的,但功能有限就是了。第三方管理 uefi 启动条目的命令行工具的则有 efivar-rs,easyuefic 等
作者: qj_tzy    时间: 2024-9-5 08:54
Bluebells 发表于 2024-9-5 07:00
bcdedit 是可以操作 efi 启动条目的,但功能有限就是了。第三方管理 uefi 启动条目的命令行工具的则有 ef ...

感谢,我下载 efivar-rs,easyuefic 试试!
作者: qj_tzy    时间: 2024-9-5 08:58
szwp 发表于 2024-9-5 06:53
群文件搜序列,找清空可以参考

能说详细点吗,不知如何进行群文件搜序列,谢谢!
作者: Climbing    时间: 2024-9-5 09:01
Bluebells 发表于 2024-9-5 07:00
bcdedit 是可以操作 efi 启动条目的,但功能有限就是了。第三方管理 uefi 启动条目的命令行工具的则有 ef ...

感谢提供这么有价值的信息。两个都下载试用了一下,貌似easyefic更好用一些,基本上接近linux下的efibootmgr的功能。另一个efivar-rs貌似更复杂。
作者: szwp    时间: 2024-9-5 09:12
qj_tzy 发表于 2024-9-5 08:58
能说详细点吗,不知如何进行群文件搜序列,谢谢!

进cmd将bcdedit /enum firmware结果粘贴上来
作者: louther    时间: 2024-9-5 09:18
感谢分享
作者: qj_tzy    时间: 2024-9-5 09:51
szwp 发表于 2024-9-5 09:12
进cmd将bcdedit /enum firmware结果粘贴上来


固件启动管理器
---------------------
标识符                  {fwbootmgr}
displayorder            {39192026-6b28-11ef-807b-0068eb981cf9}
                        {7b6ca4a3-68ce-11ef-9b5d-806e6f6e6963}
                        {a5af6c32-68b0-11ef-bdc1-806e6f6e6963}
                        {a5af6c30-68b0-11ef-bdc1-806e6f6e6963}
                        {a5af6c2f-68b0-11ef-bdc1-806e6f6e6963}
                        {a5af6c31-68b0-11ef-bdc1-806e6f6e6963}
                        {1ca62ba6-68cc-11ef-b149-806e6f6e6963}
                        {34dd73ee-68f3-11ef-b85c-806e6f6e6963}
                        {a5af6c33-68b0-11ef-bdc1-806e6f6e6963}
                        {a5af6c34-68b0-11ef-bdc1-806e6f6e6963}
timeout                 2

固件应用程序(101fffff)
-------------------------------
标识符                  {1ca62ba6-68cc-11ef-b149-806e6f6e6963}
description             Hard Drive

固件应用程序(101fffff)
-------------------------------
标识符                  {34dd73ee-68f3-11ef-b85c-806e6f6e6963}
description             UEFI:CD/DVD Drive

固件应用程序(101fffff)
-------------------------------
标识符                  {39192026-6b28-11ef-807b-0068eb981cf9}
device                  partition=F:
path                    \EFI\oc\OpenCore.efi
description             \EFI\oc\OpenCore.efi

固件应用程序(101fffff)
-------------------------------
标识符                  {7b6ca4a3-68ce-11ef-9b5d-806e6f6e6963}
device                  partition=F:
path                    \EFI\CLOVER\CURRENT_BOOT.EFI
description             current_boot

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c2f-68b0-11ef-bdc1-806e6f6e6963}
device                  partition=F:
path                    \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description             Windows Boot Manager

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c30-68b0-11ef-bdc1-806e6f6e6963}
device                  partition=F:
path                    \EFI\REFIND\REFIND_X64.EFI
description             refind

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c31-68b0-11ef-bdc1-806e6f6e6963}
device                  partition=F:
path                    \EFI\UBUNTU\SHIMX64.EFI
description             ubuntu

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c32-68b0-11ef-bdc1-806e6f6e6963}
device                  partition=F:
path                    \EFI\CLOVER\CLOVERX64.EFI
description             clover

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c33-68b0-11ef-bdc1-806e6f6e6963}
description             UEFI:Removable Device

固件应用程序(101fffff)
-------------------------------
标识符                  {a5af6c34-68b0-11ef-bdc1-806e6f6e6963}
description             UEFI:Network Device

比如想删除:\EFI\oc\OpenCore.efi项,我用booticex64.exe /uefi /delete /file="f:\EFI\oc\OpenCore.efi"
出现:“failed 3”的出错提示

作者: szwp    时间: 2024-9-5 09:53
bcdedit /delete {39192026-6b28-11ef-807b-0068eb981cf9}
作者: qj_tzy    时间: 2024-9-5 10:21
szwp 发表于 2024-9-5 09:53
bcdedit /delete {39192026-6b28-11ef-807b-0068eb981cf9}

感谢,操作成功!

这是手动操作,若用xx.bat批文本自动实现,即搜索bcdedit /enum firmware结果,找到\EFI\oc\OpenCore.efi项对应的{39192026-6b28-11ef-807b-0068eb981cf9},再用
bcdedit /delete {39192026-6b28-11ef-807b-0068eb981cf9}删除,如何实现呢?有捷径吗,还希望指点,诚谢!
作者: szwp    时间: 2024-9-5 10:22
qj_tzy 发表于 2024-9-5 10:21
感谢,操作成功!

这是手动操作,若用xx.bat批文本自动实现,即搜索bcdedit /enum firmware结果,找到 ...

qq群的群文件里有不少示例的。
作者: szwp    时间: 2024-9-5 10:25
bcdedit /enum {fwbootmgr}
也可用此命令获取id,结合bcdedit /enum {id},找到需要的id

作者: szwp    时间: 2024-9-5 10:28
bcdedit /enum firmware|findstr /i "标 path"|findstr /n .
先去cmd里观察,这比上面的那句效率会高
作者: Bluebells    时间: 2024-9-5 10:46
本帖最后由 Bluebells 于 2024-9-5 19:34 编辑

bcdedit 管理 efi 启动条目的一些示例

枚举所有 efi 启动条目
  1. bcdedit /enum firmware
复制代码
删除目标 efi 启动条目
  1. bcdedit /delete {id} /f
复制代码
将目标 efi 启动条目副本设置到启动条目顺序的末尾
  1. bcdedit.exe /set {fwbootmgr} displayorder {id} /addlast
复制代码
将目标 efi 启动条目副本设置到启动条目顺序的最前面
  1. bcdedit.exe /set {fwbootmgr} displayorder {id} /addfirst
复制代码
将目标 efi 启动条目设置为"下一次启动该条目"
  1. bcdedit /set {fwbootmgr} bootsequence {id}
复制代码
PS: 以上示例中的 {id} 为目标启动条目的"标识符"

作者: qj_tzy    时间: 2024-9-5 11:07
szwp 发表于 2024-9-5 10:22
qq群的群文件里有不少示例的。

是哪一个QQ群,希望能加入学习下,谢谢!
作者: Bluebells    时间: 2024-9-5 11:07
使用 bcdedit 创建新的 efi 启动条目(不建议使用这种方法)
  1. bcdedit.exe /copy {bootmgr} /d "New boot entry"
复制代码
上述命令将创建一个名为 New boot entry 的 efi 启动条目, 并返回一个 {id} (标识符)
修改 New boot entry 启动条目的 efi 映像路径(因为第一条命令创建的启动条目指向的 efi 映像是 {bootmgr} 提供的)
  1. bcdedit.exe /set {id} path \EFI\boot\NewImage.efi
复制代码
其中 {id} 为第一条命令返回的标识符, \EFI\boot\NewImage.efi 为要指向新的映像的路径(不要在路径前面添加驱动器号[即所谓的盘符], 因为该命令只能使用 esp 的 efi 映像)

---------------------------------------------------------------------------------------------------------------------

后续一些非必要的操作(删除该启动条目的一些多余数据)
  1. bcdedit /deletevalue {id} locale
  2. bcdedit /deletevalue {id} inherit
  3. bcdedit /deletevalue {id} default
  4. bcdedit /deletevalue {id} resumeobject
  5. bcdedit /deletevalue {id} displayorder
  6. bcdedit /deletevalue {id} toolsdisplayorder
  7. bcdedit /deletevalue {id} timeout
复制代码
特殊操作(更改创建的 efi 启动条目的类型)
  1. reg add "HKLM\BCD00000000\Objects\{id}\Description" /v "Type" /t REG_DWORD /d "270532607" /f
复制代码
PS: 最后一条命令需要特殊特权才能执行成功




作者: qj_tzy    时间: 2024-9-5 11:14
Bluebells 发表于 2024-9-5 11:07
使用 bcdedit 创建新的 efi 启动条目(不建议使用这种方法)
上述命令将创建一个名为 New boot entry 的 efi ...

先学习下,不清楚时再向您请教!
作者: szwp    时间: 2024-9-6 08:38
qj_tzy 发表于 2024-9-5 11:07
是哪一个QQ群,希望能加入学习下,谢谢!

http://bbs.wuyou.net/forum.php?m ... &fromuid=225195
作者: qj_tzy    时间: 2024-9-6 08:50
szwp 发表于 2024-9-6 08:38
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=437260&pid=5036360&fromuid=225195

原来是这个群,谢谢!
作者: qj_tzy    时间: 2024-9-10 15:16
szwp 发表于 2024-9-6 08:38
http://bbs.wuyou.net/forum.php?mod=redirect&goto=findpost&ptid=437260&pid=5036360&fromuid=225195

前两天无空,今天整了下,已编制批处理运行成功。非常感谢szwp、Bluebells等网友的热心指点、帮助。
实现方法是:
1.在我的hp288电脑中安装了win+mac+linux多系统,做好了用oc、clover、refind、xorboot、grub2、grub4dos等6个uefi引导器菜单,用以启动win+mac+linux多系统(当然后4个引导mac时是引导oc或clover直接进入mac)。
2.编制批处理:
一是用bootice建立6个引导器的引导项到电脑引导序列。
如:booticex64 /uefi /add /inspos=1 /file="%drive%\efi\clover\cloverx64.efi" /title="\efi\clover\cloverx64.efi"
二是用bcdedit把电脑下次启动所用的引导项放在首项。
如:
set nextboot=\efi\clover\cloverx64.efi
for /f "tokens=2 delims={}" %%a in ('bcdedit /enum {fwbootmgr}') do (
    for /f "tokens=2 delims= " %%b in ('bcdedit /enum {%%a} /v') do (if /i %nextboot%==%%b set next_boot_id=%%a)
)
bcdedit /set {fwbootmgr} displayorder {%next_boot_id%} /addfirst

作者: szwp    时间: 2024-9-10 16:04
qj_tzy 发表于 2024-9-10 15:16
前两天无空,今天整了下,已编制批处理运行成功。非常感谢szwp、Bluebells等网友的热心指点、帮助。
实 ...

俺是将最常用的系统设为默认,其它系统点一次性启动的批处理。




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