After Fedora 17, I stopped clean installing any of following Fedora releases. For Fedora 18 and 19, I did only “fedup” (FEDora UPgrader tool). In both cases, the upgradation process went well with no known glitches whatsoever at all.

The only problem was that, my machine was using GRUB and not GRUB2, latter which Fedora 18 and 19 adopted for bootloading process. “fedup” process didn’t update GRUB automatically to GRUB2. I tried the manual upgradation and didn’t work on Mac machines (and it was not much supported at that time).

But, GRUB was working flawlessly with Mac’s own Boot Manager, rEFIt, rEFInd, etc., despite GRUB legacy was no longer used on EFI systems starting from Fedora 18. So, I was happy letting the Linux bootloader be GRUB, until the following error message showed up during boot process immediately after updating the kernel to 3.10.3-300 (the numbers really don’t matter).

fb: conflicting fb hw usage nouveaufb vs EFI VGA – removing generic driver

I tried my best to rectify the problem with all the varying kernel boot parameters like nomodset, single, acpi=off, acpi=ht, removing rhgb, quiet, etc. Nothing worked. I had no way to enter into Fedora 19, for quite some weeks.

Fortunately, I backed up the entire ESP partition immediately after having tried grub2-efi installation and creating grub configuration file, before reverting to GRUB, which led me to have a copy of “grub.cfg” with old Fedora 18 kernel parameters.

So, I mounted Fedora 19 ISO image file in Mac OS X, copied the EFI, mach_kernel, System structure from mounted ANACONDA partition to Linux ESP (or you can test run on a USB stick formatted with “Mac OS extended” partition) and replaced the “grub.cfg” with backed up “grub.cfg”. Booted with this Linux ESP (or USB partition) and replaced the old kernel number with new kernel number in editing mode. And, voilà, it booted after some painful weeks of silence. So, I figured it out it’s the absence of GRUB2 that has caused this video related problem.

This write-up is for updating GRUB to GRUB2 uniquely on Mac machines with 64 bit EFI and for 64 bit Fedoras. This also servers the purpose of rectifying corrupted GRUB2 in your Fedora on Mac machine.

This write-up is based on these following posts:

The directory structure of Linux ESP, a Mac OS extended (not journaled) partition, on Mac machines, consists of a file called “mach_kernel” and two directories “EFI” and “System”.

It is the files inside System → Library → CoreServices and “mach_kernel”, that take care of Mac machines Boot Manager, Mac OS X (or BootCamp Microsoft Windows) System Preferences → Startup Disk, EFI bootloading, etc.

EFI directory has BOOT, fedora and redhat subdirectories. GRUB seems to be using redhat and GRUB2 is using fedora. BOOT has files for fallback during booting.

Install GRUB2 for EFI. This creates the necessary /boot/efi/EFI/fedora directory files and updates /boot/efi/EFI/BOOT files.

$ sudo yum install grub2-efi shim

Create the GRUB configuration “grub.cfg” file.

$ sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Now, create a link to this file in System → Library → CoreServices.

$ sudo ln -s /boot/efi/EFI/fedora/grub.cfg /boot/efi/System/Library/CoreServices/grub.cfg

That is it. Make sure inside System → Library → CoreServices directory, you have a grubx64.efi file, a grub.cfg link, SystemVersion.plist file and an optional boot.efi file (I’m not sure whether it’s required or not, test it on your own).

Remember, inside this ESP partition, simple copy/paste (cp command) seems to work always. If you’re an advanced user and have trouble with EFI-GRUB booting, hesitate not to play around with files created by grub2-efi command and from aforementioned ANACONDA partition.

If you’re still having problems, try this detailed step-by-step process for updating GRUB on EFI systems.

Thanks for the read and please leave comments 🙂