Installing fedora in a new (trash can) mac pro

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu May 29 17:40:25 UTC 2014


I recently managed to install fedora in a trash can mac pro. I am not
sure what the best place to document the steps, so I am just sending
an email. Hopefully search engines can find it.

Let me know if you think something should be reported as a bug.

First, a list of the problems:

* The kernel that comes with the installer will not boot. I am not
sure what the issues is, but yum update will fetch a kernel that
works. Unfortunately I could not find a way to rebuild the
installation image from sources.

* Using glub2 is just too horrible for me. It is incredibly slow. At
first I also thought it might be responsible for the kernel not
booting, but that was not the case. The good news is that gummiboot
works *really* well.

* The apple firmware is very slow at booting from the FAT ESP
partition. It is way faster at loading anything from hfs.

* The linux hfs driver will not write to a hfs partition that has
journalling enabled.

* To get the ui running I had to pass nomodeset to the kernel.

* If the monitor (a dell dell up2414q) is connected vi display port,
it will not come back from sleep. It is slow to wake up on OS X, but
works. Connecting it with an hdmi cable avoids the problem.

The steps to get the installation working:

First, create a VM:

* Using virtualbox create a VM which uses EFI and install fedora in it.
* Use yum update to get a new kernel.
* Install gummiboot, remove grub2. Make sure you can still boot the VM.
* You can now delete the /boot partition and make /boot just a
directory. Gummitboot will be using /boot/efi
* Boot the vm with the install cd again and create a tar file of the
root fs and copy it to the host. I used  tar --selinux --acls --xattrs
... | nc

Now, create the partitions for fedora;

* Using disk util reduce the size of the os x install partition.
* Create a small partition for gummiboot to live in, make it hfs.
* Disable journalling in the gummiboot partition.

Install gummiboot:

* Copy it to the new hfs partition
* run bless:
  sudo bless --setBoot --folder /volumes/gummiboot --file /Volumes/gummiboot.efi
* Rebooting the system should show up gummiboot with only one entry: os x.

Copying fedora to the new partitions:
* Download a live cd with a new kernel. I used ubuntu 14.04. It
requires nomodeset to start the UI.
* With the livecd, create a btfs partition in the free space after the
gummiboot partition.
* Use tar -xvpf as root to extract the root contents.
* Update /etc/fstab to have the new partition names and UUIDs.
* Copy the kernel and initrd to the gummiboot partition and create an
entry in the config (remember to include nomodeset).
* Reboot and pass selinux=0 to the kernel
* Login as root.
* touch /.autorelabel
* reboot.

I am sure there are more efficient ways of doing this. In particular,
the relabelling is probably unnecessary if you use a live cd with
selinux.

Was it worth it? Yes, linux is quiet a bit faster. Running the llvm
and clang tests now takes 32.18s, under OS X it takes 49.56s.

Cheers,
Rafael


More information about the users mailing list