grub-macbless
Bless macOS partitions for bootability
SYNOPSIS
grub-macbless [OPTIONS] ESP_mount_point macOS_boot_file
Example: `grub-macbless -v /boot/efi /Volumes/Macintosh\ HD/System/Library/CoreServices/boot.efi`
PARAMETERS
ESP_mount_point
The mount point of the EFI System Partition (ESP), typically `/boot/efi` or `/efi`. This is where the EFI bootloaders reside.
macOS_boot_file
The full path to the `boot.efi` file (or equivalent) for the macOS installation you wish to bless. This file is usually found within `System/Library/CoreServices` on the macOS volume.
-v, --verbose
Enable verbose output, showing more details about the operations performed by the command.
-h, --help
Display a help message and exit.
DESCRIPTION
`grub-macbless` is a utility included with GRUB that specifically addresses the boot requirements of macOS (previously OS X) on UEFI-based systems. On such systems, macOS requires its boot loader (typically `boot.efi` located within `System/Library/CoreServices`) to be "blessed" by the EFI firmware to be recognized as a valid bootable entry. This blessing process involves creating or modifying an EFI boot entry.
When GRUB is used to dual-boot Linux and macOS, it needs a way to tell the EFI firmware how to boot macOS. While GRUB can chainload directly, some EFI firmwares or macOS installations might require this explicit blessing. `grub-macbless` automates this process by interacting with the EFI System Partition (ESP) and updating the EFI boot variables, often by leveraging tools like `efibootmgr`. This ensures that macOS can be properly launched from the GRUB boot menu, providing a smoother dual-boot experience, especially in Hackintosh setups or on Apple hardware where GRUB is installed alongside macOS.
CAVEATS
This command requires a UEFI-based system; it is not relevant for traditional BIOS systems.
It must be run with root privileges (e.g., using `sudo`).
The command relies on the availability and proper functioning of underlying EFI utilities, such as `efibootmgr`, to modify EFI boot variables.
Incorrectly specifying the ESP or the macOS boot file path can lead to boot failures.
macOS updates can sometimes reset or alter EFI boot entries, potentially requiring `grub-macbless` to be run again.
The exact behavior can vary between different EFI firmware implementations.
PURPOSE OF "BLESSING"
In the context of macOS and EFI, "blessing" refers to marking a specific directory or file on a volume as the one that contains the boot loader. For EFI systems, this typically means creating an EFI boot entry that points to the `boot.efi` file on the EFI System Partition, allowing the firmware to find and execute the macOS boot loader.
UNDERLYING MECHANISM
`grub-macbless` often achieves its goal by invoking `efibootmgr` (or similar EFI runtime tools) to create or modify `BootNext` or a permanent EFI boot entry that directs the firmware to the correct macOS `boot.efi` location on the ESP. This is crucial because macOS does not usually create its own EFI boot entry in the same way Windows or Linux might, instead relying on its own `bless` command or firmware detection.
HISTORY
`grub-macbless` was introduced as part of the GRUB project to facilitate dual-booting Linux and macOS on Intel-based Macs or Hackintosh systems utilizing UEFI. As UEFI became the standard for modern computers, and with macOS exclusively using UEFI on Intel, a mechanism was needed within the GRUB ecosystem to properly prepare macOS for booting via EFI, complementing GRUB's chainloading capabilities. Its development reflects the increasing complexity of multi-boot environments on modern hardware.
SEE ALSO
grub-install(8), efibootmgr(8), grub(8), bootctl(1), bless(8)