让电脑下次开机进入其他系统或从U盘启动的方法

前置条件

  1. 电脑使用的启动方式为 UEFI
  2. 已经在操作系统中安装了 efibootmgr(在 Debian、Ubuntu 系统中,对应的软件包名为 efibootmgr

操作方法

首先,执行命令

efibootmgr

查看有哪些可用的启动项。可得到如下形式的输出:

BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,2001,2002,2003,0002
Boot0001* Linux Boot Manager	HD(1,GPT……
Boot0002* Windows Boot Manager	HD(1,GPT……
Boot2001* EFI USB Device	
Boot2002* EFI DVD/CDROM	
Boot2003* EFI Network

:information_source: 说明:

  • 如果引导程序为 GRUB,你的 Debian(或 Ubuntu)系统的启动项一般会显示为 debian(或 ubuntu
  • 如果引导程序为 systemd-boot,你的 Linux 系统的启动项一般会显示为 Linux Boot Manager

然后,如果你希望在下次开机时启动 Windows 系统,先看一下 Windows Boot Mananger 对应的编号为 0002,那么我们可以执行如下命令:

sudo efibootmgr --bootnext 0002

:warning: 注意:

各启动项的编号在不同电脑上是不同的。请根据自己电脑上的查询结果进行调整。

然后重启计算机,电脑就会进入 Windows 系统。

同理,如果希望下次开机时从 U 盘启动,先看一下 EFI USB Device 对应的编号是 2001,那么我们可以执行如下命令:

sudo efibootmgr --bootnext 2001

:warning: 注意:

上述命令只能临时修改启动顺序,仅对下次开机生效。再下一次开机时,还是会启动当前 UEFI 设置中的默认启动项。

安装系统时候就插一个优盘,容量有个2GB大小足矣。等安装到GRUB这一步时候选择把GRUB写入优盘就行了。以后需要开机必须插入这个指定的优盘,把优盘当做U盾。

这么做的意义似乎不大。现在有的启动盘是可以自动扫描并引导硬盘上已经安装的操作系统的,即使硬盘上没有安装引导程序也可以启动。

个人感觉这样做都不如直接在 BIOS 里设个开机密码。BIOS 的开机密码无法跳过,不输入正确的密码是根本无法正常通电的。(但清除 BIOS 密码的方法也很简单,直接把 CMOS 电池拆下来,即可清除 BIOS 的数据,也就清除了 BIOS 密码)

这也是 恢复grub太简单了

bios里设置硬盘密码,哪怕你扣下来都没用

准确点说,应该是 “抠”。

  • 抠:用手指或细小的东西挖。[1]
  • 扣:(1)用圈、环等东西套住或拢住;(2)把器物口朝下放或覆盖东西。[2]

  1. https://zdic.net/hans/抠 ↩︎

  2. https://zdic.net/hans/扣 ↩︎