Problems upgrading OS X 10.11 (El Capitan) from beta to GM candidate on a dual-boot setup next to Ubuntu

I’m upgrading my OS X 10.11 (El Capitan) beta to the GM candidate on my MacBook Pro (last year's model, all original hardware) which has a dual-boot setup with Ubuntu. After the installer reboots my computer, I get:

OS X could not be installed on your computer

A boot helper partition is required when working with Core Storage.
Quit the installer to restart your computer and try again.

I have tried restarting my computer but the same error message appears each time. My guess is that the Ubuntu partition is causing this. I’m using rEFInd to boot into it.

Where has my boot helper partition disappeared (whatever that is), and how can I reinstall OS X on the partition it was previously installed on without touching the Ubuntu setup?

Output of diskutil list:

/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:          Apple_CoreStorage Macintosh HD            232.8 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
   4:           Linux Filesystem                         17.2 GB    disk0s4
/dev/disk1 (internal, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS Macintosh HD           +232.5 GB   disk1
                                 Logical Volume on disk0s2
                                 464DCBB2-E35B-48E3-A123-B6B8C755E0F2
                                 Unencrypted

Output of sudo gpt show -l /dev/disk0:

gpt show: /dev/disk0: Suspicious MBR at sector 0
      start       size  index  contents
          0          1         MBR
          1          1         Pri GPT header
          2         32         Pri GPT table
         34          6         
         40     409600      1  GPT part - "EFI System Partition"
     409640  454699328      2  GPT part - "Macintosh HD"
  455108968    1269536      3  GPT part - "Recovery HD"
  456378504   33594064      4  GPT part - "Linux"
  489972568     262151         
  490234719         32         Sec GPT table
  490234751          1         Sec GPT header

Output of sudo fdisk /dev/disk0:

Disk: /dev/disk0    geometry: 30515/255/63 [490234752 sectors]
Signature: 0xAA55
         Starting       Ending
 #: id  cyl  hd sec -  cyl  hd sec [     start -       size]
------------------------------------------------------------------------
 1: EE    0   0   1 - 1023 254  63 [         1 -     409639] <Unknown ID>
*2: AF 1023 254  63 - 1023 254  63 [    409640 -  454699328] HFS+        
 3: AF 1023 254  63 - 1023 254  63 [ 455108968 -    1269536] HFS+        
 4: 83 1023 254  63 - 1023 254  63 [ 456378504 -   33594064] Linux files*

Solution 1:

I suspect (but am not certain) that the problem is caused by the fact that OS X likes to see gaps (of at least 128MiB) between most partitions. See Apple's TN2166 document for details, and particularly the "Partitioning Policy" section. I've seen OS X installations and updates fail when such gaps are absent, so this could be the same thing. If so, though, the error message you received is less than helpful.

The error message itself seems to be referring to the fact that, since Yosemite, OS X has used a type of Logical Volume Management (LVM) by default. Since the firmware can't read inside an LVM, Apple decided to start storing its boot loader on the volume that's usually called "Recovery HD." The message seems to be saying that this volume is not present, but your output clearly indicates that it is present. My suspicion is that this represents a logic error in displaying the error message -- the lack of a 128MiB gap between partitions has been translated into the wrong error message. OTOH, it's also possible that your "Recovery HD" volume has been damaged in some way -- or maybe there's some entirely different problem that's triggering a misleading error message.

Incidentally, I've recently discovered some information on the bless problem to which amanthethy refers that's causing problems for rEFInd users. In short, it looks like Apple is restricting the utility of bless in an effort to tighten security. See this bug report and this one for a couple of data points. Booting to recovery mode (by holding down Alt while booting) and typing csrutil disable in a Terminal is reported to disable this security feature, but I've not tried it myself. It may also be possible to register rEFInd outside of OS X, but I've not looked into this. (Note: I'm rEFInd's maintainer, but I don't yet have an OS X 10.11 beta installation.)

Solution 2:

Same situation. Rather than trying to force the upgrade after being stuck in the boot loop, I was OK with just going back to Yosemite and forgetting El Capitan ever existed. Surprisingly, this got me back to booting Yosemite:

  1. When presented with error message select Apple Menu -> Startup Disk ... -> Select HD -> Confirm
  2. Reboot
  3. Back to booting Yosemite like I never attempted the upgrade.