Single boot EFI Mac install

peeter (must) karu.pruun at gmail.com
Thu Mar 22 16:05:44 PDT 2012


>> Thanks again, partial success so far: could get refit working but
>> apparently refit does not boot dfly, or at least not yet.
>>
>> I made two partitions for dfly as described in the README on the live
>> cd, a ufs partition for /boot and hammer partition for the rest. refit
>> recognizes the boot partition as a FreeBSD one and when I choose to
>> boot it in the refit many then I get a blank screen and then "No
>> bootable device -- insert boot disk and press any key". Then the
>> computer hangs.
>
> 2 GPT partitions or 2 slices in the dragonfly partition?
>
>> I thought it might be since refit isn't familiar with 64bit disklablel
>> but using disklabel32 gives the same result.
>>
>> I tried to gptsync the partition tables but refit refuses; refit sees
>> dfly partitions as "Unknown" and refuses to do anything with them. I
>> thought there might be a way to force gptsync but refit shell hasn't
>> got gptsync.
>
> Did you use a GPT aware partitioning tool?
> (g)parted or cgdisk on Linux livecds (sysresccd etc.) or Apple's Disk Util.


2 GPT partitions as described in "Boot setup"

http://leaf.dragonflybsd.org/cgi/web-man?command=gpt&section=8

However, this might be outdated. As far as I understand, gpt was
ported from freebsd; freebsd has moved on to gpart now. refit gptsync
complained about gpt partitions. When I installed freebsd and used
gpart, then refit was satsified.

I tried installing freebsd on an external usb stick. And succeeded: so
this is the first time I've succeeded in getting a BSD running on this
13" MBPro! Booting sequence is then:

MacEFI --> refit --> fbsd

It turns out fbsd has two exclusive types of partioning schemes. The
old one, bsd slices; and gpt. They are exclusive: you can't disklabel
gpt slices. And you should created one gpt slice for each partition
you want, so eg

/dev/ada0p1    /boot
/dev/ada0p2    swap
/dev/ada0p3    /

and so on, as many as you like. dfly man 8 gpt is not quite consistent
with this. dfly disklabels a gpt slice. Fbsd gpt booting scheme
involves a small 64k partition that consists of a loader,
/boot/gptboot, see

http://www.freebsd.org/cgi/man.cgi?query=gpart&apropos=0&sektion=0&manpath=FreeBSD+9.0-RELEASE&arch=default&format=html

However, success did not last long; at the next boot I got "Missing
operating system" -- a different error message from the last time. I
did not touch any freebsd partitions, and have no clue what happened.
I never regained booting to that system.

Installed fbsd on the harddisk and could gptsync and everything. But
refit boot leads to "Missing operating system".



>
>> I wonder if there's a way to make refit recognize how to boot from the
>
> I've never booted a BSD via rEFIt. Is it possible you need to have a
> 1MB BIOS BOOT partition as the 3rd partition?
>
>> dfly ufs partition? I was browsing around to find if grub2 might work
>> but haven't found the right .efi image yet.
>
> The following is what "should" work, but I didn't try it out for BSDs.
>
> You could of course install a grub.efi image inside the HFS+ partition
> and then provide a grub.cfg with the chainloader config or kernel
> loader config based on one of the myriads of grub2 plugins for
> booting dragonfly.
> Creating a grub2.efi image file is not hard. Get a livecd with
> grub2-efi-32 and then use usegrub-mkimage to create an efi image
> file by selection all plugins/modules you want and the output filename.
> Once you have that, write or generate a grub.cfg and put it in the
> same directory.
> Next bless the grub efi image instead of refit.efi in the OSX installer's
> terminal.
>
> If you have an Nvidia or ATI video adapter you might have to load one
> of the video bios grub plugins or just boot with rEFIt to avoid such issues.


I will try grub32 next.

Another thought: if dfly could port /boot/gptboot from fbsd and set up
similar booting scheme, then efi booting might be solved?

Peeter

--





More information about the Users mailing list