You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2009款MacBook Pro上Ubuntu 22.04启动白屏延迟问题:正确使用bless命令设置EFI启动分区

2009款MacBook Pro上Ubuntu 22.04启动白屏延迟问题:正确使用bless命令设置EFI启动分区

我太懂你这种老Mac装Ubuntu后的启动头疼事了——2009款的MacBookPro5,2在EFI模式下的启动兼容性确实有点磨人。先结合你的情况梳理清楚,再给你靠谱的解决步骤:

首先先确认几个关键信息:

  • 从你的df -h输出看,/dev/sda1确实是挂载到/boot/efi的EFI系统分区(ESP),对应OS X环境里的/dev/disk0s1,这点你没搞错;
  • 既然/sys/firmware/efi目录存在,说明你的Ubuntu确实是EFI模式安装的,绝对不能用--legacy参数——这个参数是给BIOS/CSM兼容模式用的,你之前试了之后黑屏无法启动就是因为这个原因,完全符合预期。

那为什么你之前用bless --device /dev/disk0s1 --setBoot没效果?因为单纯指定启动分区还不够,bless命令需要明确知道要引导的EFI二进制文件路径,尤其是你已经完全抹掉了OS X,固件没有默认的引导文件可以搜索,才会出现30秒的白屏延迟。

正确的bless命令操作步骤(需要从OS X环境执行)

因为Ubuntu里没有bless命令,你得先通过OS X安装U盘或者按住Cmd+R进入恢复模式启动:

  1. 打开终端,先挂载你的EFI分区:
    diskutil mount /dev/disk0s1
    
    执行后会显示挂载点,比如/Volumes/EFI
  2. 运行带具体引导文件路径的bless命令:
    bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/ubuntu/grubx64.efi --verbose
    
    Ubuntu默认会把GRUB的EFI引导文件放在EFI/ubuntu/grubx64.efi路径下,这个命令会明确告诉Mac固件要加载这个引导文件,跳过搜索延迟。

更简单的替代方案:在Ubuntu里用efibootmgr设置

既然你的系统是EFI模式,其实不用折腾OS X的bless命令,直接在Ubuntu里用efibootmgr工具更直接:

  1. 在Ubuntu终端执行以下命令查看所有EFI启动项:
    sudo efibootmgr
    
    你会看到类似这样的输出,找到标注ubuntu的启动项(比如Boot0001* ubuntu)
  2. 设置该启动项为默认:
    sudo efibootmgr -o 0001
    
    把命令里的0001换成你找到的Ubuntu启动项对应的编号即可。

这样操作后,Mac固件会直接加载Ubuntu的EFI引导文件,不会再出现30秒的白屏延迟了。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 14:48:10