BIOS升级导致linux无法启动 解决方法
本文章致力于解决BIOS更新导致的多系统电脑无法正常引导的问题
截至本文撰写日期2026.2.11,在更新bios后(一些大厂bios,比如招人厌的微软),通常会改变引导模式为UEFI(legacy->UEFI)。
UEFI相对于legacy的一个重要变化是,它并不根据指定的盘启动顺序进行引导,而是改成直接对所有盘的EFI进行扫描。如果扫描期间发现合适的,则按启动顺序进行引导。
如果之前在某个盘里装过windows,后来进行了简单格式化,换成了linux。这种情况下很有可能/ESP/EFI/Microsoft会没删干净。
这种机制下会出现一种情况: 在更新bios后明明设置的是启动linux的grub, 但是bios却一声不吭地把windows给引导了。
在bios升级后,所有bios设置往往被恢复默认。其中,操作系统引导条目经常被抹除,而后再由UEFI自动检测EFI,重新生成引导条目。在生成时,linux的grub有较大概率无法被给予合适的引导条目。这是引发本文所述故障的主要原因。
开始解决问题
鉴于大多数情况下,windows并不会因bios更新而遭殃,所以我们主要讨论linux的修复方法。
首先我们需要准备一个u盘,其中需要准备一个可用的Linux镜像, 这里推荐使用Arch Linux[点击下载],因为其精简且为纯命令行界面,便于输入命令。
之后我们要烧录linux镜像到u盘,烧录完成后我们启动linux
我们首先输入以下linux命令> lsblk -f假设输出如下:NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 ├─nvme0n1p2 ntfs 4616CCEF16CCE0D3 318.7G 31% /mnt/windows └─nvme0n1p3 ntfs 4E0E5A060E59E80B nvme1n1 ├─nvme1n1p1 vfat FAT32 1B6E-2D78 395.6M 21% /boot ├─nvme1n1p2 btrfs ORANGE 4edc2976-d0e1-41de-9f76-2fc391ccebcc 571.9G 37% /home │ / └─nvme1n1p6 swap 1 2e436e5c-d15f-4f74-8341-84c03d985f32 [SWAP]根据FSTYPE和磁盘大小,我们可以判断哪个是我们的linux盘 在这里,linux盘是nvme1n1, 而EFI分区则是那个文件系统为FAT32的分区:nvme1n1p1(通常都是p1) 然后我们进入到linux盘的EFI分区> mkdir -p /mnt/esp/ #先创建一个名字是esp的目录(不创建其实也行) > mount /dev/nvme1n1p1 /mnt/esp #挂载分区,这样我们就能读取分区里的数据了 > cd /mnt/esp完成之后我们要检查一下EFI有没有被破坏> ls ./EFI/ #看看有没有arch,microsoft等目录(EFI/Microsoft/Boot:对于Windows系统,这个目录存储了Windows Boot Manager(bootmgfw.efi)和相关的引导配置文件(BCD)等。一般bios生成默认引导条目也就优先靠它了。) > ls ./EFI/arch/ #看看有没有grubx64.efi(这个东西是用来启动grub的)如果没有被破坏(一般情况下不会被破坏),我们进入下一步> efibootmgr -v #查看当前UEFI引导条目可能会看到如下结果:BootCurrent: 0003 Timeout: 5 seconds BootOrder: 0003,0000,0001 Boot0000* UEFI Micron 2450 NVMe 1024GB 2209360B7833 1 HD(1,GPT,2d5fc791-3fe3-484d-ab13-0e06b78e57d4,0x800,0xfa000)/\EFI\Boot\BootX64.efi{auto_created_boot_option} dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 a0 0f 00 00 00 00 00 91 c7 5f 2d e3 3f 4d 48 ab 13 0e 06 b7 8e 57 d4 02 02 / 04 04 30 00 5c 00 45 00 46 00 49 00 5c 00 42 00 6f 00 6f 00 74 00 5c 00 42 00 6f 00 6f 00 74 00 58 00 36 00 34 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00 data: 4e ac 08 81 11 9f 59 4d 85 0e e2 1a 52 2c 59 b2 Boot0001* Windows Boot Manager HD(1,GPT,2d5fc791-3fe3-484d-ab13-0e06b78e57d4,0x800,0xfa000)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000031000100000010000000040000007fff0400 dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 a0 0f 00 00 00 00 00 91 c7 5f 2d e3 3f 4d 48 ab 13 0e 06 b7 8e 57 d4 02 02 / 04 04 46 00 5c 00 45 00 46 00 49 00 5c 00 4d 00 69 00 63 00 72 00 6f 00 73 00 6f 00 66 00 74 00 5c 00 42 00 6f 00 6f 00 74 00 5c 00 62 00 6f 00 6f 00 74 00 6d 00 67 00 66 00 77 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00 data: 57 49 4e 44 4f 57 53 00 01 00 00 00 88 00 00 00 78 00 00 00 42 00 43 00 44 00 4f 00 42 00 4a 00 45 00 43 00 54 00 3d 00 7b 00 39 00 64 00 65 00 61 00 38 00 36 00 32 00 63 00 2d 00 35 00 63 00 64 00 64 00 2d 00 34 00 65 00 37 00 30 00 2d 00 61 00 63 00 63 00 31 00 2d 00 66 00 33 00 32 00 62 00 33 00 34 00 34 00 64 00 34 00 37 00 39 00 35 00 7d 00 00 00 31 00 01 00 00 00 10 00 00 00 04 00 00 00 7f ff 04 00 Boot0003* The GREAT ORANGE114 ARCH Linux HD(1,GPT,2d5fc791-3fe3-484d-ab13-0e06b78e57d4,0x800,0xfa000)/\EFI\arch\grubx64.efi dp: 04 01 2a 00 01 00 00 00 00 08 00 00 00 00 00 00 00 a0 0f 00 00 00 00 00 91 c7 5f 2d e3 3f 4d 48 ab 13 0e 06 b7 8e 57 d4 02 02 / 04 04 30 00 5c 00 45 00 46 00 49 00 5c 00 61 00 72 00 63 00 68 00 5c 00 67 00 72 00 75 00 62 00 78 00 36 00 34 00 2e 00 65 00 66 00 69 00 00 00 / 7f ff 04 00我这里操作时没插u盘,请按实际情况来看。 在这里我们可以看到,有些行以Boot000x*开头,紧随其后的是设备名称/引导条目名称我们找到自己装linux的那个条目,记住它前边的现在我们对linux所在的盘创建UEFI引导条目Boot000x*(这一步可选)> efibootmgr -c -d /dev/这里填你自己的linux所在盘(不带后边的p[数字],比如nvme1n1p1 -> nvme1n1) -p 1 -L "这里给自己的引导条目取个名字(可以带空格)" -l '\EFI\arch\grubx64.efi' 这条命令给linux的grub建立了引导条目> efibootmgr -o 0000,0001设置启动顺序(这一步可选,其实直接在bios里调会更省事。因为这条命令可被替代,所以这里不再赘述。)如果没有明显报错的话,就可以关机,拔掉u盘了
下一步我们打开BIOS设置页面,调一下启动顺序,发现linux正常启动
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)