记一次由于更换主板导致的EFI启动项不识别问题
本文最后更新于 617 天前,其中的信息可能已经有所发展或是发生改变。

我已经在这台机器上用了近 5 年 Linux 了,在原先的系统里一直运转良好,但最近更换了主板之后发现系统无法启动。在尝试解决这个问题的时候,发觉这个疑难问题还算挺有意思的,遂尝试写下来分享一下解决方案。于是便有了这篇文章。

介绍

GRUB(GRand Unified Bootloader,大一统启动加载器),是一个引导加载程序。当前的 GRUB 也被称作 GRUB 2,而原始 GRUB(GRUB Legacy)表示 0.9x 版本。本页只描述 GRUB 2。

——来自Archwiki
注意: 在本文中,esp 表示 EFI 系统分区(ESP)的挂载点。

系统概况

新系统配置如下

Operating System: Arch Linux 
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.6.0
Qt Version: 6.7.3
Kernel Version: 6.6.52-1-lts (64-bit)
Graphics Platform: X11
Processors: 12 × Intel® Core™ i5-10400F CPU @ 2.90GHz
Memory: 31.3 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3060/PCIe/SSE2
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7E05
System Version: 2.0

故障现象

  • 按下开机后发现在主板 LOGO 屏之后就黑屏,甚至无法进入 GRUB。
  • 主板的侦错 LED 在 BOOT 灯上停留常亮。

故障分析

到现在来看,故障原因似乎已经很清晰了。可能是由于某些原因导致系统没法找到正确的启动项,进而出现无法启动的问题。

进入 BIOS 配置界面查看可以发现主板并没有识别到 GRUB。

于是首先考虑是否是GRUB问题,尝试重新运行 grub-install 重启,依旧没有改变。然后尝试了在 LiveCD 里查看一下 esp 分区,但生成的引导文件完全没有问题。

这时发现了在 ArchWiki1 上的这段话:

提示
提示:如果你使用了 --removable 选项,那 GRUB 将被安装到 esp/EFI/BOOT/BOOTX64.EFI (当使用 i386-efi 时是 esp/EFI/BOOT/BOOTIA32.EFI ),此时即使 EFI 变量被重设或者你把这个驱动器接到其他电脑上,你仍可从这个驱动器上启动。通常来说,你只要像操作 BIOS 设备一样在启动时选择这个驱动器就可以了。如果设备是同时安装了Windows的多引导启动,注意 Windows 通常会在这里安装一个 EFI 可执行程序,该程序的目的是仅重建Windows的UEFI启动项。如果你想在Mac上安装GRUB,那你必须要使用该选项。某些台式机主板只会在此位置寻找 EFI 可执行文件,因此该选项是必需的,尤其是微星(MSI)主板。 如果你更新了UEFI,启动项可能会在更新后丢失。因此可以创建一个“removable”启动项作为后备。
  1. https://wiki.archlinuxcn.org/wiki/GRUB#%E5%AE%89%E8%A3%85 ↩︎

问题原因是由于微星主板只会在特定位置寻找启动项,而在安装 GRUB 时没有加 --removeable 参数,导致新主板找不到启动项,从而卡 BOOT 灯无法启动。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇