Migrate from GitHub to SourceForge with this tool. Check out all of SourceForge's recent improvements.
Close

After upgrade to MacOS Sierra, unable to boot to grub2

Jose Silva
2016-09-22
2016-10-01
  • Jose Silva

    Jose Silva - 2016-09-22

    Hello,

    Just upgraded to MacOS Sierra, reboot into Apple Recovery, ran
    refind-install 10.3 and reboot to Manjaro - grub2.

    Instead of Manjaro-grub screen, got grub2 rescue screen:

    Starting grubx64.efi
    Using load options ''
    Welcome to GRUB!

    error: unknown filesystem
    Entering rescue mode...

    Then first weird thing: one drive was "invented", I just have two ssd
    drives, the first being partitioned between MacOS and linux, used to be
    (hd0) but is now (hd1):

    grub-rescue> ls
    (hd0) (hd1) (hd1,gpt8) (hd1,gpt7) (hd1,gpt6) (hd1,gpt5) (hd1,gpt4)
    (hd1,gpt3) (hd1,gpt2) (hd1,gpt1) (hd2)

    But then I can boot using this:

    grub-rescue> set root=(hd1,gpt6)
    grub-rescue> set prefix=(hd1,gpt6)/boot/grub
    grub-rescue> insmod normal
    grub-rescue> normal

    and all is well.

    Then, from Manjaro, I ran refind-install to reinstall the EFI tree. But
    in the /boot/efi/EFI/manjaro/ I have grub.cfg:

    search.fs_uuid 2458d39f-cc00-4087-9282-a6725cb21f11 root hd0,gpt5
    set prefix=($root)'/boot/grub'
    configfile $prefix/grub.cfg

    which, as I said, doesn't work; I thought because hd0 and gpt5 is not
    the drive/partition where the filesystem is. So I changed grub.cfg to
    hd1,gpt6 and it didn't work either. Tried several combinations of hd and
    gpt, nothing works.

    So, I'm puzzled, where did the new drive came from? Is refind the causer
    or is it grub, or is it just me?

    Can somebody help, please?

    Rgds

    jss

     
  • Jose Silva

    Jose Silva - 2016-09-23

    Furthermore, on the grub rescue console:

    grub-rescue> set
    cmdpath=(hd1,gpt1)/EFI/manjaro
    prefix=(hd1,gpt5)/boot/grub
    root=hd1,gpt5

    And inside MacOS, the partition containing my Manjaro system is Disk0s6. So grub (or refind) are inventing one drive and forgetting one partition (or counting from 0).

    At one stage I thought that search.fs_uuid was fetching a wrong partition (one less than the correct one), so I replaced the whole statement by:

    root=hd1,gpt6
    set prefix=($root)'/boot/grub'
    configfile $prefix/grub.cfg

    But the result is the same, set returns the same environment as above.

    Any ideas, please?
    Rgds
    jss

     
  • Jose Silva

    Jose Silva - 2016-09-24

    Well, I'll keep talking to myself, even if it becomes embarassing, in the hope that someone jumps in to help :)

    I already check the partition table and there seems to be nothing wrong with it:
    MBR: protective
    BSD: not present
    APM: not present
    GPT: present
    Found valid GPT with protective MBR; using GPT

    So, my best hunch is that refind calls grubx64.efi but the later does not read the grub.cfg present on the same directory, to adjust the root and prefix variables. These now wake up on a grub console set to (hd1,gpt1) and (hd1,gpt1)/EFI/ubuntu, which I guess is the default because I saw the Canonical name inside the file.

    The grub.cfg, which is not being read, is:
    search.fs_label MANJARO root
    set prefix=($root)'/boot/grub'
    configfile $prefix/grub.cfg

    If I try these commands on the open grub console, followed by insmod normal and normal, the grub menu gets called correctly. So, to the best of my knowledge, repeating myself, the file is not being read.

    Again..., can somebody help, please?

    Rgds,
    jss

     
  • Jose Silva

    Jose Silva - 2016-09-27

    Right...

    As I'm obviously all alone in this, I guess the best way to go is a grub-only boot. I already tried and it's working.

    Thank you all for viewing.

    Rgds,
    jss

     
  • Matteo Guglielmi

    I cannot boot macOS Sierra with rEFInd anymore.

    I believe rEFInd cannot access the boot loader of macOS Sierra because it cannot read the new APple File System (APFS).

    Am I correct?

    How did you manage to boot both Sierra and Linux?

     
  • Jose Silva

    Jose Silva - 2016-09-29

    Hello,

    Due to the obvious lack of support, I decided to give up refind entirely and use efibootmgr to create an entry on the boot manager to call grub directly.

    I lost the 'howto' link amongst the large amount of pages I had to read; anyway, I think it was either on arch linux wiki or ubuntu forum, on how to install linux on a macbook pro. Just google for it.

    Good luck,
    jss

     
  • Fabio Falci

    Fabio Falci - 2016-09-30

    Well just giving my +1 for this as I'm waiting for refind to support sierra to upgrade my macbook.

    I can't really mess with my laptop right now as I've been using it on my work.

     
  • Jose Silva

    Jose Silva - 2016-10-01

    That's my case as well, the Mac is my mission-critical machine and I was very anxious for some time with absolutely zero support even from other users. I then discovered how to boot by editing on the grub rescue console; very inconvenient though.

    That's when I decided to simplify by calling grub directly instead of calling refind and then grub; that's one less source of big problems like the present.

    The only thing you loose, at first sight, is calling MacOS from grub, although you also can with some more work. I didn't care because, to boot MacOS, I just have to hold the option key at boot.

    Rgds
    jss

     

Log in to post a comment.