4 ms·
General purpose understanding probably won't help you with the specific problem you're having. I know quite a bit about the user space foils of your situation w
by cmurf 9y ago
General purpose understanding probably won't help you with the specific problem you're having. I know quite a bit about the user space foils of your situation with Apple's EFI firmware, the NVRAM boot entries that point to the bootloader, GRUB2, and the peculiarities of Fedora's installer. And there is really nothing standard about it..
a. Fedora's installer, only on Macs, creates a 2nd "EFI System partition" that's HFS+ formatted. And that's because Apple's EFI firmware can read HFS+ directly, and it enables showing Fedora as a boot option when you boot with the option key held down. This doesn't happen if the bootloader is on the "real" FAT32 EFI system partition, which hilariously Apple doesn't use for booting either, they only use it for staging firmware updates.
Right out of the gate you're in the weeds of super esoteric stuff...
b. That you get a GRUB prompt means the firmware found the GRUB EFI OS Loader binary, which is on that HFS+ faux-EFI System partition. In that same directory should be the grub.cfg, which it should read automatically and display a menu of kernels to boot. Therefore, the GRUB prompt also means the OS Loader isn't finding the grub.cfg.
So you have something of a mystery on your hands and it'll take an autopsy to find out what's going on. First thing would be to use one of the netinstallers (any Fedora edition netinstall image) put onto a USB stick, boot that with the option key, choose Troubleshooting, then Rescue a Fedora system, wait for boot process, pick the first option to find and assemble the system. And then you'll
chroot /mnt/sysimage
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
exit
reboot
That should work unless there are extenuating circumstances (some other distro's GRUB is somewhere on this system). But I still don't really understand how APFS resize can affect the grub.cfg alone, without nerfing the entire HFS+ faux-ESP as well, in which case you wouldn't have a GRUB prompt.
- rayascott 9y agoThanks for your reply, it’s extremely informative and useful. It’s actually the second time I’ve resized the APFS container and this didn’t happen the first time. I was also shocked to wake up this morning to discover the resize had actually left me with a new partition, considering that every time I tried to resize it, the process failed with a well documented error code or the machine just spontaneous rebooted while frozen. One other question I have is, that once I’d installed Fedora, my Mac would automatically boot into Fedora. So now if I want to use macOS I have to use the Option key. Has the Fedora boot loader over written something and is it even possible to swap it back? I’m going to give the net installer Rescue a bash now. Thanks.
- cmurf 9y agoFedora's installer wrote a new boot entry to NVRAM and set the bootorder to default to Fedora. If you boot Fedora you can run efibootmgr -v to see these entries and change them with 'efibootmgr --bootorder' and then put in the boot numbers in the order you want, e.g. 0002,0001. If you make macOS first, then it will boot by default, to get to Fedora you'll use the option key at boot time to pick its icon in the firmware boot manager UI.
- rayascott 9y agoSir, you are a genius and the most useful person I have ever discovered on the internet. Thanks!
- rayascott 9y agoThis boot ordering I could not get working, but perhaps it was a symptom of the missing grub.cfg, but I'm just guessing. I have no desire to temp disaster by playing around with anything now that it's working. Thanks again!
- rayascott 9y agoUnfortunately that did not work. I guess I’ll be learning about Grub!
- cmurf 9y agoIt's really tedious. Anyway I'm on irc.freenode.net. I'll want to see efibootmgr -v, blkid, and see how it's all being assembled. The easiest way to get data out of a Macbook Air is if you have a wired ethernet connection since the proprietary Broadcom firmware blob won't be on any of the install/rescue boot media. Once you've got an internet connection you can pipe anything to fpaste, which will spit back a URL containing the pasted data from the command.
- JdeBP 9y agoSee the section heading of http://jdebp.eu./FGA/efi-boot-process.html#Apple http://jdebp.eu./FGA/efi-boot-process.html#Apple (-:
- rayascott 9y agoWhat did eventually work for me was using the following path: grub2-mkconfig -o /boot/grub2/grub.cfg I'd actually resigned myself to using the rEFInd boot manager, as I'd used it in the past, and I'd read that others had better luck when implementing dual boot systems with two OS's both using EFI. I had that all working when I decided to to have a closer look at how grub works, and used the path applicable to my system. I didn't even have a grub2.cfg, and I have read today that others have also had this same issue after resizing Mac partitions. I'm just glad it's working as I want now.
- cmurf 9y agoThe fact that path works tells me this is a CSM-BIOS installation of Fedora. That is, there is an EFI compatibility support module that presents a faux BIOS firmware to the operating system to make it think it's a computer with BIOS rather than UEFI. On Fedora, the BIOS variant of GRUB puts its files in /boot/grub2; where the UEFI variant of GRUB puts its files in /boot/efi/EFI/fedora/. Did you burn the Fedora installer to optical media? I'm not aware of a way to trigger CSM-BIOS booting with flash media.
- rayascott 9y agoI was hoping you hadn't seen this reply of mine. Because it turns out I was wrong. I do have a /boot/grub2 directory. And it has a symlink named 'grubenv' to ../efi/EFI/fedora/grebenv. Grub is actually using /boot/efi/EFI/fedora/grub.cfg. I realised this a few minutes ago when the /boot/grub2/grub.cfg I generated was having no effect on grub, after making a few timeout changes. Is it possible that the grub2-mkconfig only updates the config file if there is a change in the system? I ask because, earlier in the day when I ran your grub2-mkconfig example, it had no effect. But since then I've removed 3 prior kernel versions so I'm guessing that would have caused an update of the config file. Although I'm still unsure as to why grub wouldn't load the config file earlier.