A MacOS upgrade will write a new boot loader and overwrite your GRUB/rEFInd boot loader.
There is no way to avoid that. That's unfortunate but remember Apple believes a Mac will only work with MacOS ;-)
If you want to recover your Linux, you can follow these instructions:
- Install supergrubdisk2 on a USB key by burning the ISO with Etcher or Unetbootin.
- Boot on the USB key by pressing the Option key after a reboot (must be pressed before the "Mac sound")
- Select the Orange disk labeled as "EFI boot"
- In the text menu select "Detect and show boot methods".
- Wait 5 to 10sec for the detection to happen
- Look in the grub.cfg section if you can see your Linux. If not then try them all one by one ;-)
- Select the one and press enter and it should boot your Linux.
Now if you want your Linux back as the default, you can reinstall GRUB on the MBR once your Linux has booted. HOWEVER, since High Sierra, GRUB cannot start High Sierra via the boot menu. You will have to press the Option Key before the Mac Sound and select 'Macintosh HD' to boot High Sierra. It's unfortunate but I have not found a solution since the upgrade. I also noted my misfortune in this thread (1 answer, 2 comment). I recommend to follow it and hope for an answer.
If you are still keen to have Linux back with GRUB and a broken Grub MacOS entry then do the following, as root :
fdisk -l
and look for a disk with HFS entry, very likely to be /dev/sda
grub-install /dev/sd<LETTER>
where <LETTER>
is a letter from the alphabet. Do not add any trailing number! E.g: /dev/sda is good, /dev/sda3 is NOT good
update-grub
reboot
.
- You should now have GRUB back but no access to High Sierra via GRUB.
Hope it helps.