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进入恢复模式启动:
- 打开终端,先挂载你的EFI分区:
执行后会显示挂载点,比如diskutil mount /dev/disk0s1/Volumes/EFI - 运行带具体引导文件路径的bless命令:
Ubuntu默认会把GRUB的EFI引导文件放在bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/ubuntu/grubx64.efi --verboseEFI/ubuntu/grubx64.efi路径下,这个命令会明确告诉Mac固件要加载这个引导文件,跳过搜索延迟。
更简单的替代方案:在Ubuntu里用efibootmgr设置
既然你的系统是EFI模式,其实不用折腾OS X的bless命令,直接在Ubuntu里用efibootmgr工具更直接:
- 在Ubuntu终端执行以下命令查看所有EFI启动项:
你会看到类似这样的输出,找到标注sudo efibootmgrubuntu的启动项(比如Boot0001* ubuntu) - 设置该启动项为默认:
把命令里的sudo efibootmgr -o 00010001换成你找到的Ubuntu启动项对应的编号即可。
这样操作后,Mac固件会直接加载Ubuntu的EFI引导文件,不会再出现30秒的白屏延迟了。
备注:内容来源于stack exchange,提问作者user3700562
相关产品推荐
相关产品推荐

