You are not logged in.
Hello,
I recently installed Arch on my MacBook Pro, and I'm now trying to set Arch as the default boot option. For that you need to "bless" the Arch boot partition in MacOS. The problem is I don't know which --folder and --file parameters to set.
After "blessing", I reboot (without holding any key down), GRUB loads correctly, and then gets stuck on the following screen:
Booting `Arch Linux'
Loading Linux linux ...
Loading initial ramdisk ...
It then waits for what feels like about 20 seconds, and then reboots.
However, if I reboot and hold `alt` and select `EFI boot` manually, Linux boots successfully. This is the part I really don't understand. But I know that `bless` sets the value in ramdisk, and so I assume that somehow I am "blessing" the wrong thing.
My disk partitions look like this:
$ lsblk
NAME SIZE FSTYPE PATH MOUNTPOINT
sda 233.8G /dev/sda
├─sda1 200M vfat /dev/sda1 # Apple EFI boot
├─sda2 140.4G apfs /dev/sda2 /MacOS # Apple MacOS
├─sda4 256M hfsplus /dev/sda4 /boot
├─sda5 32G swap /dev/sda5 [SWAP]
├─sda6 30G ext4 /dev/sda6 /
└─sda7 30.8G ext4 /dev/sda7 /home
I installed GRUB, following the instructions in Mac#Using the native Apple bootloader with GRUB.
Now the file structure of /boot looks like this (I have replaced some less relevant nodes and blobs with "..." for readability):
$ tree /boot
/boot
├── grub
│ ├── fonts
│ │ └── unicode.pf2
│ ├── grub.cfg
│ ├── grubenv
│ ├── locale
│ │ │...
│ ├── themes
│ │ │...
│ └── x86_64-efi
│ |...
│ ├── core.efi
│ │...
│ ├── grub.efi
│ │...
│...
├── mach_kernel
├── System
│ └── Library
│ └── CoreServices
│ ├── boot.efi
│ └── SystemVersion.plist
└── vmlinuz-linux
14 directories, 347 files
I have tried all of the following (6) things individually in MacOS (after mounting /dev/disk0s4 at /Volumes/efi) and all of them result in the behavior described above.
Blessing boot.efi:
$ sudo bless --setBoot --folder=/Volumes/efi --file=/Volumes/efi/System/Library/CoreServices/boot.efi
$ sudo bless --setBoot --folder=/Volumes/efi/System/Library/CoreServices --file=/Volumes/efi/System/Library/CoreServices/boot.efi
Blessing core.efi:
$ sudo bless --setBoot --folder=/Volumes/efi --file=/Volumes/efi/grub/x86_64-efi/core.efi
$ sudo bless --setBoot --folder=/Volumes/efi/grub/x86_64-efi --file=/Volumes/efi/grub/x86_64-efi/core.efi
Blessing grub.efi
$ sudo bless --setBoot --folder=/Volumes/efi --file=/Volumes/efi/grub/x86_64-efi/grub.efi
$ sudo bless --setBoot --folder=/Volumes/efi/grub/x86_64-efi --file=/Volumes/efi/grub/x86_64-efi/grub.efi
If you've done this before or have any idea how one might be able to do it, please drop a reply.
Thanks!
Last edited by wpbdry (2019-05-19 16:26:12)
Offline