无忧启动论坛

标题: 命令行下的UEFI启动项管理 [打印本页]

作者: plutoshen    时间: 2024-8-20 08:29
标题: 命令行下的UEFI启动项管理
本帖最后由 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

作者: plutoshen    时间: 2024-8-20 08:31
更多教程,更多分享,欢迎关注我。
作者: likeyouli    时间: 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜索了好多,都没查到如何在windows下通过命令修改UEFI启动项...
作者: wang1126    时间: 2024-8-20 08:44
谢谢分享
作者: agezxc    时间: 2024-8-20 08:49
求大神帮助!
作者: plutoshen    时间: 2024-8-20 08:55
likeyouli 发表于 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜 ...

本身windows就是个GUI操作系统,它的命令行非常弱鸡的。
作者: wn168cn@163.com    时间: 2024-8-20 09:07
谢谢分享
作者: ynb168c    时间: 2024-8-20 09:09

感谢分享
作者: chairmansu    时间: 2024-8-20 10:27

谢谢分享
作者: 遗忘ing    时间: 2024-8-20 10:38
感谢分享,学习一下。
作者: yc2428    时间: 2024-8-20 10:47
谢谢分享
作者: l3429900    时间: 2024-8-20 11:25
likeyouli 发表于 2024-8-20 08:40
windows下,bcdedit可以修改bcd,但不知道如何修改UEFI启动项,只能通过bcdedit /enum firmware查看
   搜 ...

bootice的uefi选项中可以更改的
作者: likeyouli    时间: 2024-8-20 11:42
l3429900 发表于 2024-8-20 11:25
bootice的uefi选项中可以更改的

bootice xorboot 都有gui界面可以更改uefi序列
  我总觉的bcdedit命令也应该可以更改, bcdedit /? /create 研究摸索了半天也没摸索成功..
作者: fxssj    时间: 2024-8-20 11:47
学习了,谢谢
作者: guong    时间: 2024-8-20 12:31
学习了
作者: plutoshen    时间: 2024-8-20 12:56
likeyouli 发表于 2024-8-20 11:42
bootice xorboot 都有gui界面可以更改uefi序列
  我总觉的bcdedit命令也应该可以更改, bcdedit /? /cre ...

真的喜欢用命令行吗?不喜欢用GUI吗?
作者: likeyouli    时间: 2024-8-20 14:09
plutoshen 发表于 2024-8-20 12:56
真的喜欢用命令行吗?不喜欢用GUI吗?

不是不喜欢用gui,而是为了方便。bcdedit是win系统自带的,随时方便调用,bootice xorboot 或其他,都还需要另行准备软件。
作者: plutoshen    时间: 2024-8-20 15:37
本帖最后由 plutoshen 于 2024-8-20 15:41 编辑
likeyouli 发表于 2024-8-20 14:09
不是不喜欢用gui,而是为了方便。bcdedit是win系统自带的,随时方便调用,bootice xorboot 或其他,都还 ...

有空你学习学习Linux下的shell就会发现好多Windows软件都是完全不需要的。几个系统自带命令组合起来就能实现复杂的功能,既简单又高效,同样功能根本就找不到对应的软件。
作者: towlzj800801    时间: 2024-8-20 19:22
谢谢分享
作者: symwww    时间: 2024-8-20 22:01
额,efibootmgr也算一个软件包
作者: dshit    时间: 2024-8-21 08:09
碰到过,Windows+Linux,双系统
进Linux后,双系统的引导标识就没了,就只剩Linux了,不知道用这个方式能不能行,如果可以,加到开机自启里就挺好
作者: plutoshen    时间: 2024-8-22 13:57
symwww 发表于 2024-8-20 22:01
额,efibootmgr也算一个软件包

绝大多数linux里都自带,根本不用安装。
作者: 2011matrixvexx    时间: 2024-8-22 15:46
感谢楼主分享
作者: Climbing    时间: 2024-8-22 17:51
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>}'

复制代码


作者: likeyouli    时间: 2024-8-22 18: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
作者: Climbing    时间: 2024-8-22 18:30
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
作者: vip021913    时间: 2024-8-22 18:32
windows下好像 也可以
作者: plutoshen    时间: 2024-8-22 19:01
windows下的方法都太繁琐了。
作者: j4tan    时间: 2024-8-27 17:39
感谢大神分享,学习了




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