如何在 2009 年 MacBook Pro 上为 Ubuntu 22.04 祝福启动分区

如何在 2009 年 MacBook Pro 上为 Ubuntu 22.04 祝福启动分区

我在一台旧的 MacBook Pro(2009 年的 MacBookPro5,2,Core 2 Duo)机器上进行了 Ubuntu 22.04 的全磁盘安装,并在此过程中彻底擦除了 OS X。

我现在面临的是启动时 30 秒白屏延迟的已知问题。我已经弄清楚我必须使用 OS Xbless命令将 Ubuntu 设置为启动分区。我的问题是我必须传递哪些命令行参数?互联网上的所有示例都使用了该--legacy选项并讨论了 BIOS 模式,但据我所知,我的 Ubuntu 安装使用的是 EFI (目录/sys/firmware/efi存在)。

那么,我是否可以假设在祝福分区时不应使用该--legacy选项?此外,我必须祝福哪个分区?那个/dev/sda1

df -h这是在 Ubuntu 中运行时的输出:

t30@macbook:~$ df -h
tmpfs           770M    1,7M  768M    1% /run
/dev/sda2       457G     12G  423G    3% /
tmpfs           3,8G       0  3,8G    0% /dev/shm
tmpfs           5,0M    4,0K  5,0M    1% /run/lock
/dev/sda1       511M    6,1M  505M    2% /boot/efi
tmpfs           770M     52K  770M    1% /run/user/1000

那么我是否应该bless像这样调用(/dev/sda1用其下安装的任何内容替换bless)?

bless --device /dev/sda1 --setBoot

尝试了不同的变化后,结果如下:

bless --device /dev/disk0s1 --setBoot 似乎什么都没做。白屏上仍然长时间超时。之后系统仍在启动。

bless --device /dev/disk0s2 --setBoot同上。

bless --device /dev/disk0s1 --setBoot --legacy白屏上仍长时间超时。之后系统进入黑屏,无法启动 Ubuntu。

fdisk 中只列出了/dev/disk0s1和。我假设是,但我不知道。/dev/disk0s2/dev/disk0/dev/disk0s1/boot/efi

答案1

总结:一个可能的命令是bless --folder /Volumes/EFI --file /Volumes/EFI/EFI/ubuntu/grubx64.efi --setBoot

由于问题还涉及启动时间,因此我列出了启动时间和我的 Mac 的规格。我预计楼主的 Mac 会比我的 Mac 慢。

我的 Mac 具有以下规格:

  • iMac(21.5 英寸,2011 年中)
  • 2.5 GHz 英特尔酷睿 i5
  • 16 GB 1333 MHz DDR3
  • 1 TB SATA II (3 Gb/s) 内置硬盘

下表显示了我的 Mac 上当前安装的操作系统。

操作系统 版本 建筑学 启动方式 地点
Windows 11 专业版 22H2 AMD64 BIOS 内置硬盘
macOS High Sierra 10.13.6 AMD64 电喷 内置硬盘
Ubuntu 22.04.1 LTS AMD64 电喷 内置硬盘

我按照以下步骤使用命令bless来测试将 Ubuntu 设置为默认启动操作系统。

  1. 启动 Mac 并按住该option键直到出现 Mac 启动管理器图标。
  2. 选择从内部驱动器上的 macOS High Sierra 恢复卷启动。
  3. 已将唯一的 EFI 卷 ( /dev/disk0s1) 挂载于/Volumes/EFI
  4. 在终端窗口中输入以下命令。
    bless --folder /Volumes/EFI --file /Volumes/EFI/EFI/ubuntu/grubx64.efi --setBoot
    
  5. 重新启动 Mac,启动 GRUB,然后启动 Ubuntu。

†这是 OP 在评论

启动时间表如下所示。这里,GRUB 配置为等待 10 秒,并且 Ubuntu 已打开自动登录。

事件 期间 总时间
开机到白屏启动之间 6.75 6.75
可见白屏 8.74 15.50
白屏结束和桌面出现之间 1:35.65 1:51.16

/etc/default/grub以下是我的 Mac 上当前文件的内容。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
GRUB_TERMINAL=console
GRUB_DISABLE_OS_PROBER=true

相关内容