You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何阻止Ubuntu每次启动时修改UEFI启动顺序

如何阻止Ubuntu每次启动时修改UEFI启动顺序

兄弟,这种每次开机都要进BIOS调启动顺序的糟心事儿我太懂了!折腾好几次终于找到靠谱的解决办法,给你整理几个方案,你挨个试试:

方案一:修改Grub配置,强制指定默认UEFI启动项

这个方法能让Grub不再乱改UEFI启动顺序,而是乖乖用你指定的默认项:

  1. 先打开终端,输入以下命令查看当前UEFI启动项的编号:
    sudo efibootmgr
    
    你会看到类似这样的输出,重点看BootOrder和各个启动项的编号(比如Boot0001是Windows Boot Manager):
    BootCurrent: 0000
    Timeout: 10 seconds
    BootOrder: 0000,0001,0002
    Boot0000* ubuntu
    Boot0001* Windows Boot Manager
    Boot0002* USB Drive
    
  2. 编辑Grub的配置文件:
    sudo nano /etc/default/grub
    
  3. 在文件末尾添加两行内容,把0001换成你想要设为默认的启动项编号(比如上面的Windows编号):
    GRUB_DISABLE_OS_PROBER=false
    GRUB_EFI_BOOTNEXT=0001
    
  4. 保存并退出(按Ctrl+O,回车,再按Ctrl+X),然后更新Grub生效:
    sudo update-grub
    

方案二:直接在UEFI里锁定启动顺序(最省心)

你的ASUS MAXIMUS Formula VII主板应该支持这个功能,直接在BIOS里锁死启动顺序,不管系统怎么折腾都改不了:

  1. 重启电脑,开机时按DelF2进入UEFI设置界面;
  2. 找到Boot菜单,再进入Boot Configuration选项;
  3. 找类似Boot Order Lock的选项,把它设为Enabled
  4. 先手动把你想要的启动顺序排好(比如Windows Boot Manager放在第一位),保存设置退出即可。

方案三:禁用Grub自动修改启动顺序的脚本

如果上面的方法不管用,可以直接修改Grub的探测脚本,把它修改UEFI顺序的代码关掉:

  1. 打开Grub的探测脚本文件:
    sudo nano /etc/grub.d/30_os-prober
    
  2. 找到里面调用efibootmgr -n的段落,看起来大概是这样:
    if [ "${found_other_os}" = "true" ]; then
      ...
      efibootmgr -n "${bootnext}"
      ...
    fi
    
  3. 把这段代码用#注释掉,或者直接删除;
  4. 保存退出后,更新Grub生效:
    sudo update-grub
    

试完这些方法,应该就能摆脱每次进BIOS改顺序的噩梦了!

备注:内容来源于stack exchange,提问作者Liam Clink

火山引擎 最新活动