WinUEFI⸺另辟蹊径进入 BIOS 设置

WinUEFI 是一个开源、简易的 Windows 系统引导工具,可以让系统直接重新启动,但是进入 UEFI/BIOS 设置,方便用户修改。

2 个赞

最有用的一集,帮人重装电脑的时候再也不用从f1试到del了

2 个赞

如果已安装系统版本是 Windows 10 或 11,且可正常进入此系统,其实还有一种不需要借助任何其他软件的方法:

  1. 进入 设置 → 更新和安全 → 恢复,点击 “高级启动” 栏目中的 “立即重新启动”。
  2. 稍等片刻,系统会进入 “选择一个选项” 界面。点击其中的 “疑难解答” 按钮。
  3. 进入 “疑难解答” 页面中的 “高级选项” 页面,再点击 “UEFI 固件设置” 按钮,随后系统将重新启动,并进入 BIOS UEFI 设置界面。

补一个在 Linux 系统上直接重启进入 UEFI 设置界面的方法:

前提条件:需要确保你的 Linux 系统使用 systemd

在终端中执行如下命令:

systemctl reboot --firmware-setup

然后,系统会 立即重新启动,并进入 UEFI 设置。


另外,如果是想在 Linux 中设置下次开机时直接从 U 盘启动,还可以这样做:

终端运行命令

efibootmgr

可得到如下形式的输出:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 2002,2001,0000,2003,0002
Boot0000* ubuntu ......
Boot0002* Windows Boot Manager ......
Boot2001* EFI USB Device	
Boot2002* EFI DVD/CDROM	
Boot2003* EFI Network

可以看到 USB Device 前面对应的编号是 2001

然后再执行如下命令:

sudo efibootmgr --bootnext 2001

重启电脑,即可从 U 盘启动了。

注意:

  1. 用本方法修改启动顺序可直接在 Linux 系统中完成,无需进入 UEFI 固件设置。
  2. 该方法对启动顺序的修改是临时的。下下次启动时,仍将默认从硬盘启动。
  3. 该方法也可以用来启动到其他 EFI 项目。比如想在下次开机时进入 Windows,考虑到 Windows Boot Manager 对应的启动编号为 Boot0002,则可执行 sudo efibootmgr --bootnext 0002
1 个赞

看了下源码,实则就一行有效命令:

C:\> shutdown /fw /f /r /t 00

查询 微软文档 可知:

/fw: Combining this option with a shutdown option causes the next restart to go to the firmware user interface.

所以关键就是这个 /fw 参数,没了。

这是怎么把一句话弄这么复杂的……?这仓库里一堆 .exe,翻来覆去把这个命令用 7 种不同语言各写一遍,又把编译的结果和打包工具全传到仓库里,还写了四国语言的描述文件,是在干什么……

image.png

10 个赞

话说有没有人知道什么办法可以重启到引导选择页,或者直接编辑本机的引导顺序?DiskGenuis只能编辑UEFI引导,对于不支持UEFI启动的老机型就无能为力了

个人建议是,直接到 BIOS 里面修改启动顺序,U盘放第一位,光盘放第二位,硬盘放第三位,然后保存设置。

这样,只要你插入了可启动的 U 盘或光盘,电脑开机时就会自动从 U 盘/光盘启动了;反之,如果没有放这些东西,则还是正常从硬盘启动。一劳永逸。

唱唱反调,不是很建议。

曾经我也是这么干的,直到有一天别人用电脑的时候无意中插着u盘重启了……然后他的u盘里面还正正好好有一个损坏的pe。然后经过一通不知怎么滴的化学反应以后,我的电脑系统彻底炸了……从引导到磁盘数据全寄了个彻底,最终只能重装解决

当然这显然是属于极小概率的事件,更何况他本身是个电脑盲,连u盘都是闲鱼上随便淘的,我也很难指责他什么,只能怪自己没考虑极端情况了……

确实,直接设置 U 盘为第一启动项也不是特别完美的方案。

而且之前我还遇到过一个电脑,它也是把 U 盘设为第一启动项,但最烦的是:如果 U 盘内没有可启动的系统,它就会直接报错,说找不到操作系统,而不是从第二、第三启动项中寻找可启动的操作系统。


回到楼上的问题,感觉有一点比较困难的是,似乎 Windows 系统内是很难有读取和修改 BIOS 设置的权限的。