Monday, May 20, 2019

Upgrading Macbook to High Sierra

Trying to upgrade a Macbook Pro 7.1 (mid-2010) from Sierra to High Sierra failed with several cryptic error messages. This laptop had been upgraded with a Crucial SSD and non-Apple RAM modules, and is configured to dual-boot Linux with rEFInd boot loader.

TLDR: The EFI system boot partition (ESP) should be of type EF (aka 0xEF, EF00), not 07 (Fat).

We recieved the following errors:

macOS could not be installed on your computer
The installer resources were not found
...
You may not install this volume because the computer is missing a firmware partition
...

Somewhere along the line after Bootcamp was initiated, maybe when the Hybrid MBR was altered with gdisk, or partitions adjusted using Gparted, the partition type for the EFI boot partition was changed from type EFI system (EF) to Fat (07).  The format for EF and 07 types is the same, EF is used to identify it specifically as the EFI partition.  Note: this partition is not required to be of type HFS+ as claimed on some sites.

If you have an old High Sierra Upgrade installer from an old previous attempt it may also help to Trash that installer and re-download from the App Store so that you get the updated messages.

The final partition tables on this Macbook are something like:
Hybrid MBR:
 EE: 1 -> 2148 (Protective MBR indicator)
  (128MB space)
 EF: 2149 -> ... (EFI partition, 200MB)
  (128MB space)
 AF: ... -> ... (macOS, 120GB)
  (128MB space)
 83: ... -> ... (Linux, 80GB)

GPT:
 EE
  (128MB space)
 EF (EFI Boot)
  (128MB space)
 AF (macOS)
  (128MB space)
 AF (Recovery 10.11)
 AF (Recovery 10.12)
 83 (Ubuntu)
 83 (Debian)
 82 (Linux swap)
 07 (Fat32 Shared Data)

(*128MB spaces between partitions is an Apple recommendation)

Friday, May 17, 2019

Macbook Pro No Entry symbol

Getting a No Entry symbol when starting macOS on a Macbook Pro (7.1; mid 2010). The Macbook was initially configured to dual boot using OS X Boot Camp Assistant, but later used Refind boot manager to load multiple Linux installations.

Somewhere along the line, the Hybrid MBR had lost the Apple HFS+ file system (AF). Since an MBR can only have 4 primary partitions there is not enough locations to store more than the essential:
1 x Protective Partition (type EE)
1 x EFI System Partition (EF)
1 x Apple Partition (AF)
1 x Linux Partition (83)

Re-creating the hybrid MBR, using Linux utility gdisk (recovery menu), to include the Apple (AF) partition allowed macOS Sierra to boot again. Once corrected, the Recovery partition is bootable also but does not need to be included in the MBR.

A Hybrid MBR is required in order to get the BIOS Compatibility Module (CMS) to initialise hardware (video & wifi) so they work with Linux/Windows.

GRUB can be installed to the Linux partition to enable booting the other distros, although ongoing maintenance of Kernels may be an issue.