Light At The End Of The Tunnel

systems administration meanderings

Fedora 17 on Macbook Air

At work we use CentOS and RedHat, therefore we work with and produce RPMs.  I wanted my MacBook Air to be able to build RPMs and also act as a build server for when I need to build servers at a new location.

I had previously installed Ubuntu and Cornice without too many issues.  This post gave me hope that the install would go well.

I firstly created a USB stick to perform the install. Unfortunately, it didn’t work for me I must have missed a step. I burnt a live CD and I was away.

Installation went OK. I created a /boot, a swap, a / and a special BIOS partitiion.  The latter I don’t think I need now. I rebooted and refit/refind nor the native Mac boot manager could boot Fedora.

This is the procedure I ended up using to get it to boot, I think these steps can be performed after the installation and before the reboot:-

  1. After install, boot from live CD.  And fire up a terminal (Activities->System Tools->Terminal)
  2. Setup the network connection - wireless worked for me.
  3. In the terminal, su - #to become root
  4. mount /dev/sda7 /mnt # mount the root partition on /mnt, in my case partition 7
  5. mount /dev/sda5 /mnt/boot
  6. mount -t proc proc /mnt/proc
  7. mount -t sysfs sysfs /mnt/sys
  8. chroot /mnt  # to go into the installed environment
  9. yum install grub2-efi
  10. mkdir /tmp/macefi
  11. mount /dev/sda1 /tmp/macefi
  12. cd /usr/lib/grub/x86_64-efi
  13. #Now we need to create a boot image for EFI
  14. grub2-mkimage -O x86_64-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot jpeg png search tga help font echo loadenv
  15. mkdir -p /tmp/macefi/efi/grub
  16. rsync -av grub.efi *.mod *.lst /tmp/macefi/efi/grub/.
  17. # Now we need to setup a grub2 grub.cfg for Fedora
  18. vi /tmp/macefi/efi/grub/grub.cfg

[code] timeout=5 menuentry “Fedora 17” { set gfxpayload=keep insmod gzio insmod part_gpt insmod ext2 set root=‘hd0,gpt5’ if [ x$feature_platform_search_hint = xy ]; then search –no-floppy –fs-uuid –set=root –hint-bios=hd0,gpt5 –hint-efi=hd0,gpt5 –hint-baremetal=ahci0,gpt5 –hint=‘hd0,gpt5’  6e491a7e-bdae-47d3-96a7-2e4248bf85ce else search –no-floppy –fs-uuid –set=root 6e491a7e-bdae-47d3-96a7-2e4248bf85ce fi echo    ‘Loading Linux 3.3.4-5.fc17.x86_64 …’ linux   /vmlinuz-3.3.4-5.fc17.x86_64 root=UUID=0ee1899c-2274-4b85-8478-0b69e0a481c2 ro rd.lvm=0 SYSFONT=True  KEYTABLE=us rd.luks=0 LANG=en_US.UTF-8 rhgb quiet echo    ‘Loading initial ramdisk …’ initrd  /initramfs-3.3.4-5.fc17.x86_64.img  } [/code]

you will need to use your /boot partition above instead of gpt5

  19. umount /tmp/macefi
  20. reboot

Upon reboot refit/refin picked up the new boot entry and away Fedora 17 went.

Now to fix up the trackpad, and other settings.