应查ls /sys/firmware/efi/efivars:报错即legacy,列出.efi文件即uefi;再用sudo fdisk -l | grep "disklabel type"验证磁盘类型,gpt配uefi、dos配legacy,二者必须一致。

装Linux时遇到“找不到启动设备”“安装失败”“重启进不了系统”,八成是UEFI和Legacy引导模式没对齐——不是内核不支持,而是固件、磁盘、启动盘三者之间互相不认识。
怎么确认当前实际运行的是UEFI还是Legacy
别猜,直接查。终端执行:
ls /sys/firmware/efi/efivars
如果报 No such file or directory,说明你正跑在Legacy模式;如果列出一堆以.efi结尾的文件,就是真UEFI。再补一刀验证磁盘类型:
sudo fdisk -l | grep "Disklabel type"
输出 Disklabel type: gpt → 应配UEFI;Disklabel type: dos → 应配Legacy。两者必须一致,否则GRUB或Windows Boot Manager根本不会加载。
BIOS里找不到UEFI/Legacy切换选项
常见于较新主板(尤其是戴尔、联想2018年后机型),选项被灰显或干脆不出现。原因通常是CSM(Compatibility Support Module)被锁死:
- 先进入
Advanced或Security页,找CSM Support、Legacy Support或UEFI/Legacy Boot,把它设为Enabled - 保存退出再进Boot页,此时
Boot Mode或Boot Option Filter才会可选 - 若目标是纯UEFI,选完后务必返回关掉CSM——开着它等于留后门,Secure Boot可能失效,且某些发行版(如Ubuntu 24.04+)安装器会跳过ESP分区创建
安装时提示“未找到启动项”或“无法安装到此磁盘”
这是最典型的模式错配症状,对应三类硬性条件没满足:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
UEFI模式启动安装盘→ U盘必须是FAT32格式,且根目录下存在/EFI/BOOT/BOOTX64.EFI(x86_64)或BOOTIA32.EFI(32位旧设备) -
UEFI模式装系统→ 硬盘必须是GPT分区表,并预留至少100MB的ESP分区(挂载点/boot/efi,文件系统vfat) -
Legacy模式装系统→ 磁盘用MBR,根分区需打上boot标志,GRUB安装目标是/dev/sdX(如/dev/sda),不是/dev/sda1
任何一项不满足,安装器就会卡住或报错。别试图“强制继续”——后续大概率黑屏或循环进Grub rescue。
装完系统却只能进Windows,GRUB不显示
双系统环境下,这通常不是GRUB坏了,而是UEFI NVRAM里的启动顺序被Windows更新重置了。先确认你确实在UEFI下运行(见第一个副标题),然后用 efibootmgr 修:
sudo efibootmgr -v
看输出里有没有 Boot000A* ubuntu 这类条目。如果没有,说明GRUB没注册进NVRAM;如果有但序号靠后,就手动调序:
sudo efibootmgr -o 000A,0001,0002
其中 000A 是ubuntu的Boot编号,0001 可能是Windows Boot Manager。注意:这个设置重启后生效,但下次Windows更新仍可能覆盖——长期方案是禁用Windows快速启动,并在Windows里执行 bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi。
最容易被忽略的一点:ESP分区(/boot/efi)必须保持挂载且未被格式化。有人装完删了Windows的EFI分区,或误把ESP格式化成ext4,结果所有.efi文件全丢——这时候连efibootmgr都救不回来,得从Live USB重装GRUB并恢复ESP内容。










