无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 4596|回复: 32
打印 上一主题 下一主题

[教程] 命令行下的UEFI启动项管理

[复制链接]
跳转到指定楼层
1#
发表于 2024-8-20 08:29:27 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 plutoshen 于 2024-8-20 08:38 编辑

管理UEFI启动项,在Linux下可以通过efibootmgr命令快捷高效地完成,不需要下载安装任何软件。

创建UEFI启动项:



先查看已有的启动项
然后输入下面的命令

  1. efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "WINPEFI_90M"  --loader /EFI/BOOT/90M.efi
复制代码


其中的参数:

nvme0n1是我的硬盘设备名,对应于图中左下角的图标(去掉最后的编号),图标上的p1到p4代表4个分区。

WINPEFI_90M是自己指定的启动项名字,方便在命令行里识别,删除和修改顺序会用到。

/EFI/BOOT/90M.efi是启动项指向的efi文件,位置在esp分区里。

删除UEFI启动项:



先查看已有的启动项
然后输入下面的命令

  1. efibootmgr -b 0006 -B
复制代码


可以看到,编号0006的启动项已经删除

修改默认启动顺序:




先查看已有的启动项
然后输入下面的命令(在lxterminal里,可以复制粘贴)

  1. efibootmgr --bootorder 0005,0001,0002,0000,0004,0003,2001,2002,2003
复制代码


可以看到,编号0005的启动项已经排在第一位。


我所用的系统在这里
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=441755

评分

参与人数 1无忧币 +5 收起 理由
cuicongyuan + 5 赞一个!

查看全部评分

34#
发表于 2024-10-16 08:33:45 | 只看该作者

感谢楼主分享
回复

使用道具 举报

33#
发表于 2024-9-30 15:17:13 | 只看该作者
感谢分享
回复

使用道具 举报

32#
发表于 2024-9-24 16:53:37 | 只看该作者
谢谢分享
回复

使用道具 举报

31#
发表于 2024-9-23 12:58:44 | 只看该作者
谢谢分享
回复

使用道具 举报

30#
发表于 2024-8-27 17:39:13 来自手机 | 只看该作者
感谢大神分享,学习了
回复

使用道具 举报

29#
 楼主| 发表于 2024-8-22 19:01:59 | 只看该作者
windows下的方法都太繁琐了。
回复

使用道具 举报

28#
发表于 2024-8-22 18:32:33 | 只看该作者
windows下好像 也可以
回复

使用道具 举报

27#
发表于 2024-8-22 18:30:50 | 只看该作者
likeyouli 发表于 2024-8-22 18:06
应该是不行,因为bcdedit 不能create uefi固件,
  bcdedit可以对bcdedit /enum firmware 里的固件进行s ...

很显然,Windows官方没有提供对应的工具,甚至连GUI的工具都没有官方的。

但是它可以变相的实现添加条目,就是这条命令:
bcdedit /set {bootmgr} path \efi\grub\grubx64.efi

如果你要添加多条条目,你就只能考虑第三方的工具了。例如bootice、EasyEFI这一类的,我在github上找到了这么一个项目,是命令行的:
https://github.com/ju-funk/efibootwin
回复

使用道具 举报

26#
发表于 2024-8-22 18:06:06 | 只看该作者
Climbing 发表于 2024-8-22 17:51
看这个帖子(英文): https://stackoverflow.com/questions/44919190/windows-equivalent-to-efibootmgr ...

应该是不行,因为bcdedit 不能create uefi固件,
  bcdedit可以对bcdedit /enum firmware 里的固件进行set,可以调整固件的启动顺序。https://learn.microsoft.com/zh-c ... oot-loader-settings
    另外,咱们论坛也有讨论  ”有没有命令行工具添加UEFI引导序列 http://bbs.wuyou.net/forum.php?m ... p;page=1#pid4026764

点评

很显然,Windows官方没有提供对应的工具,甚至连GUI的工具都没有官方的。 但是它可以变相的实现添加条目,就是这条命令: bcdedit /set {bootmgr} path \efi\grub\grubx64.efi 如果你要添加多条条目,你就只  详情 回复 发表于 2024-8-22 18:30
回复

使用道具 举报

25#
发表于 2024-8-22 17:51:54 | 只看该作者
likeyouli 发表于 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜 ...

看这个帖子(英文): https://stackoverflow.com/questi ... alent-to-efibootmgr 的讨论,貌似bcdedit具有所有的efi管理功能。
看帖子最后部分,相关代码如下:

  1. bcdedit /set {bootmgr} path \efi\grub\grubx64.efi
  2. bcdedit /enum {bootmgr}
  3. bcdedit /set {fwbootmgr} displayorder {<GUID>} /addfirst
  4. bcdedit /set {fwbootmgr} default {<GUID>}

  5. bcdedit /set '{bootmgr}' path \efi\grub\grubx64.efi
  6. bcdedit /enum '{bootmgr}'
  7. bcdedit /set '{fwbootmgr}' displayorder '{<GUID>}' /addfirst
  8. bcdedit /set '{fwbootmgr}' default '{<GUID>}'

复制代码

点评

应该是不行,因为bcdedit 不能create uefi固件, bcdedit可以对bcdedit /enum firmware 里的固件进行set,可以调整固件的启动顺序。https://learn.microsoft.com/zh-cn/windows-hardware/manufacture/desktop/bcd  详情 回复 发表于 2024-8-22 18:06
回复

使用道具 举报

24#
发表于 2024-8-22 15:46:46 | 只看该作者
感谢楼主分享
回复

使用道具 举报

23#
 楼主| 发表于 2024-8-22 13:57:25 | 只看该作者
symwww 发表于 2024-8-20 22:01
额,efibootmgr也算一个软件包

绝大多数linux里都自带,根本不用安装。
回复

使用道具 举报

22#
发表于 2024-8-21 08:09:58 | 只看该作者
碰到过,Windows+Linux,双系统
进Linux后,双系统的引导标识就没了,就只剩Linux了,不知道用这个方式能不能行,如果可以,加到开机自启里就挺好
回复

使用道具 举报

21#
发表于 2024-8-20 22:01:36 | 只看该作者
额,efibootmgr也算一个软件包

点评

绝大多数linux里都自带,根本不用安装。  详情 回复 发表于 2024-8-22 13:57
回复

使用道具 举报

20#
发表于 2024-8-20 19:22:21 | 只看该作者
谢谢分享
回复

使用道具 举报

19#
 楼主| 发表于 2024-8-20 15:37:11 | 只看该作者
本帖最后由 plutoshen 于 2024-8-20 15:41 编辑
likeyouli 发表于 2024-8-20 14:09
不是不喜欢用gui,而是为了方便。bcdedit是win系统自带的,随时方便调用,bootice xorboot 或其他,都还 ...

有空你学习学习Linux下的shell就会发现好多Windows软件都是完全不需要的。几个系统自带命令组合起来就能实现复杂的功能,既简单又高效,同样功能根本就找不到对应的软件。
回复

使用道具 举报

18#
发表于 2024-8-20 14:09:22 | 只看该作者
plutoshen 发表于 2024-8-20 12:56
真的喜欢用命令行吗?不喜欢用GUI吗?

不是不喜欢用gui,而是为了方便。bcdedit是win系统自带的,随时方便调用,bootice xorboot 或其他,都还需要另行准备软件。

点评

有空你学习学习Linux下的shell就会发现好多Windows软件都是完全不需要的。  详情 回复 发表于 2024-8-20 15:37
回复

使用道具 举报

17#
 楼主| 发表于 2024-8-20 12:56:32 | 只看该作者
likeyouli 发表于 2024-8-20 11:42
bootice xorboot 都有gui界面可以更改uefi序列
  我总觉的bcdedit命令也应该可以更改, bcdedit /? /cre ...

真的喜欢用命令行吗?不喜欢用GUI吗?

点评

不是不喜欢用gui,而是为了方便。bcdedit是win系统自带的,随时方便调用,bootice xorboot 或其他,都还需要另行准备软件。  详情 回复 发表于 2024-8-20 14:09
回复

使用道具 举报

16#
发表于 2024-8-20 12:31:42 | 只看该作者
学习了
回复

使用道具 举报

15#
发表于 2024-8-20 11:47:59 | 只看该作者
学习了,谢谢
回复

使用道具 举报

14#
发表于 2024-8-20 11:42:36 | 只看该作者
l3429900 发表于 2024-8-20 11:25
bootice的uefi选项中可以更改的

bootice xorboot 都有gui界面可以更改uefi序列
  我总觉的bcdedit命令也应该可以更改, bcdedit /? /create 研究摸索了半天也没摸索成功..

点评

真的喜欢用命令行吗?不喜欢用GUI吗?  详情 回复 发表于 2024-8-20 12:56
回复

使用道具 举报

13#
发表于 2024-8-20 11:25:29 | 只看该作者
likeyouli 发表于 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜 ...

bootice的uefi选项中可以更改的

点评

bootice xorboot 都有gui界面可以更改uefi序列 我总觉的bcdedit命令也应该可以更改, bcdedit /? /create 研究摸索了半天也没摸索成功..  详情 回复 发表于 2024-8-20 11:42
回复

使用道具 举报

12#
发表于 2024-8-20 10:47:12 | 只看该作者
谢谢分享
回复

使用道具 举报

11#
发表于 2024-8-20 10:38:51 | 只看该作者
感谢分享,学习一下。
回复

使用道具 举报

10#
发表于 2024-8-20 10:27:16 | 只看该作者

谢谢分享
回复

使用道具 举报

9#
发表于 2024-8-20 09:09:31 | 只看该作者

感谢分享
回复

使用道具 举报

8#
发表于 2024-8-20 09:07:21 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
 楼主| 发表于 2024-8-20 08:55:16 | 只看该作者
likeyouli 发表于 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜 ...

本身windows就是个GUI操作系统,它的命令行非常弱鸡的。
回复

使用道具 举报

6#
发表于 2024-8-20 08:49:20 | 只看该作者
求大神帮助!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-11 06:38

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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