Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I have a problem that others do seem to have had, but have had not success following their suggestions. Updating to the Mavericks added another partition which put refit/grub out of sync and dumps me at the grub recovery shell:

  • typing "set", returns:

root=(hd0,gpt5)

prefix=(hd0,gpt5)/boot/grub

  • for which the fix is (noting the increment in partition number):

set root=(hd0,gpt6)

set prefix=(hd0,gpt6)/boot/grub

insmod normal

normal

  • I've tried updating and reinstalling grub, to no avail. I don't really understand the relationship between grub and refit. Does refit have some kind of snapshot of grub that needs updating?

Thanks

Dan

share|improve this question

1 Answer 1

up vote 1 down vote accepted

rEFIt just launches GRUB; there's no real "sync" between the two programs. Chances are you've got a BIOS-mode GRUB installation with a hybrid MBR to tell the Mac's firmware to activate its BIOS (aka CSM or legacy) support. This is a poor way to do things because it's dangerous and it can create problems like the one you've encountered. I recommend you instead try an EFI-mode boot of Linux using another boot loader. If you're using a 3.3.0 or later kernel, you can do this directly by upgrading to rEFInd (a fork of rEFIt that I maintain; rEFIt has been abandoned for close to four years now):

  1. Install rEFInd in OS X. (Alternatively, you can test this from rEFInd on a USB flash drive or CD-R, although some Macs have problems booting these images. These images include all the necessary filesystem drivers, so you needn't install them for such a test.)
  2. Install the EFI filesystem driver for whatever filesystem holds your kernel (normally ext4fs).
  3. When you reboot, select one of your Linux kernels, press Insert or F2 twice, and add ro root=/dev/sda6. (It's probably /dev/sda6, given the information you posted; but if it's something else, change that appropriately.) When you press Enter, Linux should boot.
  4. In Linux, run the mkrlconf.sh script that comes with rEFInd. Be sure to run it as root or by using sudo. This step creates a file called /boot/refind_linux.conf that holds kernel options, thus obviating the need to edit them, as in the previous step.

Thereafter, you should be able to boot Linux directly from rEFInd without using GRUB and without editing the boot options via F2/Insert. You may even want to replace your hybrid MBR with a standard protective MBR. (Don't do this if you're triple-booting with Windows, though.)

You can check out my page on EFI installations of Ubuntu on Macs for more on this topic; but that page is written for somebody doing a fresh installation. Thus, it covers much more than you need to do.

share|improve this answer
    
Thanks Rod - this was very simple and worked straight away! Can I ask if it's possible to jump to the ubuntu splash without the grub command popping up, when starting kernels directly? –  Dan Seddon Jan 11 at 20:00
    
Correction - I mean the rEFInd command prompt. I'd like to go straight between the 2 graphical splashes. –  Dan Seddon Jan 11 at 21:02
    
You could try playing with the use_graphics_for option in refind.conf. I can't make any promises that this would do what you want, though. –  Rod Smith Jan 12 at 14:26

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.