2

I installed GNU/Linux Kali on my Early-2015 MacBook Pro (Mojave) by following the instructions on the Kali official website for dual boot. Linux runs fine but it boots by default. When I went to boot into Macintosh HD from the boot menu, I noticed my new Linux OS was not showing, so I held off on changing macOS to default.

The steps I followed for the installation were:

  • Resize 500 GB partition to 450 GB with diskutil apfs resizeContainer
  • Download contents of kali-linux-2020.4-live-amd64.iso and burn into USB drive with dd
  • Boot into boot menu (hold down option key during power-on)
  • Boot from USB
  • Follow installation instructions (Guided - use the largest continuous free space)

Any ideas what could be wrong?

Listed disks in case that helps:

~$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                 Apple_APFS Container disk1         450.1 GB   disk0s2
   3:           Linux Filesystem                         48.9 GB    disk0s3
   4:                 Linux Swap                         1.0 GB     disk0s4

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +450.1 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            268.7 GB   disk1s1
   2:                APFS Volume Preboot                 46.0 MB    disk1s2
   3:                APFS Volume Recovery                510.4 MB   disk1s3
   4:                APFS Volume VM                      1.1 GB     disk1s4
0
1

There are two methods which can be used when an installed Linux does not appear in the Mac Startup Manager. (The OP refers to the Mac Startup Manager as the "boot menu".)

  • Method 1: Create folders, copy files and rename files from the linux installation so the Linux will appear in the Mac Startup Manager. This may not be possible will all Linux installations. The main problem with this method is that the Linux installation does not know of these changes. So future updates to Linux may cause an unstable boot environment.
  • Method 2: Basically this is the same as Method 1 except instead of harvesting files from the Linux installation, the necessary files are taken from the download of the rEFInd Boot Manger.

In the case of Kali Linux, the steps to implement Method 1 are given below.

  1. Boot to macOS.

  2. Mount the EFI volume. Open a Terminal application window and enter the command given below.

    sudo diskutil mount disk0s1
    
  3. Create folders, copy files and rename files. Enter the following commands in the Terminal application window.

    mkdir -p /Volumes/EFI/EFI/BOOT
    cp /Volumes/EFI/EFI/kali/grubx64.efi /Volumes/EFI/EFI/BOOT/bootx64.efi
    
  4. Unmount the EFI volume. Enter the command given below.

    diskutil unmount disk0s1
    

The steps to implement Method 2 are given below.

  1. Boot to macOS.

  2. Use Safari to download rEFInd. Be default, the download should automatically unzip to the ~/Downloads/refind-bin-0.12.0 folder.

  3. Mount the EFI volume. Open a Terminal application window and enter the command given below.

    sudo diskutil mount disk0s1
    
  4. Create folders, copy files and rename files. Enter the following commands in the Terminal application window.

    cd ~/Downloads/refind-bin-0.12.0/refind
    mkdir -p /Volumes/EFI/EFI/BOOT
    cp refind_x64.efi /Volumes/EFI/EFI/BOOT/boot_x64.efi
    cp refind.conf-sample /Volumes/EFI/EFI/BOOT/refind.conf
    
  5. Edit rEFInd configuration file. Enter the following command in the Terminal application window.

    nano /Volumes/EFI/EFI/BOOT/refind.conf
    

    Add the following text to the end of the file. When finished press control+X key combination to save the modified buffer and exit the editor.

    timeout -1
    hideui all
    scanfor manual
    menuentry Kali {
    loader /EFI/kali/grubx64.efi
    }
    
  6. Change the label which will appear on the Mac Startup Manager display. Enter the command given below.

    bless --folder /Volumes/EFI/EFI/BOOT --label Kali
    
  7. (Optional.) Install a Kali icon to appear on the Mac Startup Manager display. Use Safari to download Mac icns. Enter the following commands to install the icon.

    hdiutil attach ~/Downloads/mac-icns.dmg 
    cp /Volumes/mac-icns/OSX10.11.6/os_kali.icns /Volumes/EFI/.VolumeIcon.icns
    diskutil eject mac-icns
    
  8. Remove the ._* files. Enter the command given below.

    dot_clean /Volumes/EFI/EFI/BOOT
    
  9. Unmount the EFI volume. Enter the command given below.

    diskutil unmount disk0s1
    

I should point out that the Offensive Security macOS/Kali dual boot installation instructions replaced the Mac Startup Manager with the rEFInd Startup Manager. The installation procedure outlined by the OP seems to followed those of Offensive Security, but did not finish with the installation of rEFInd. The OP might consider continuing the installation by starting with the instructions in the section titled "Installing rEFInd using Kali Linux".

2
  • Could you go into more detail with method 1 or point me to a resource? – QuestionMark Dec 16 '20 at 16:49
  • I updated my answer. – David Anderson Dec 16 '20 at 18:54
1

macOS boot manager, on my system at least, only has the ability to select macOS and a bootcamp installation if present.

If you want to manage installations of operating systems outside of Apple's supported installation methods you'll need a boot manager such as refind.

6
  • Which is basically what the Offensive Security macOS/Kali dual boot installation instructions say to do. – David Anderson Dec 15 '20 at 19:59
  • Question, @David-Anderson, what about the idea of symlinking all of the linux boot files to the EFI partition instead? – DanRan Dec 15 '20 at 23:44
  • @DanRan: All the linux boot files, that need to be linked to, are already in the EFI partition. The EFI partition is FAT formatted. FAT formatted volumes do not support symbolic links. – David Anderson Dec 16 '20 at 5:19
  • @DavidAnderson I wanted to use the Mac Startup Manager and default boot into OS X, but it seems that’s not possible so I just went ahead and installed rEFInd – QuestionMark Dec 16 '20 at 16:48
  • @QuestionMark: I assume you knew to hold down the control key when making a selection from the Mac Startup Manager display. This will make the choice the default, then boots the choice. – David Anderson Dec 17 '20 at 2:28

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .