GRUB2 for EFI in DragonFly?

Pierre-Alain TORET pierre-alain.toret+dragonflybsd at protonmail.com
Wed Nov 21 05:02:02 PST 2018


Hello Martin,

I'm using both DragonFlyBSD and Linux in a "pure" UEFI dual boot.

My disk as seen from a Linux perspective is like this (using gpt is a must) :
Disklabel type: gpt
Device         Start       End   Sectors   Size Type
/dev/sda1       2048    739327    737280   360M EFI System
/dev/sda2     739328 232022015 231282688 110.3G unknown
/dev/sda7  232022016 233046015   1024000   500M Linux filesystem
/dev/sda8  233046016 249300991  16254976   7.8G Linux filesystem
/dev/sda9  249300992 460738559 211437568 100.8G Linux filesystem

The /dev/sda2 partition is the one I used to install DragonFlyBSD.
Once booted on the live media this /dev/sda2 is seen as /dev/serno/162534803013.s1.

So I created a,b and d labels in order to have this layout :
sudo disklabel64 /dev/serno/162534803013.s1
16 partitions:
#          size     offset    fstype   fsuuid
  a:    1048576          0    4.2BSD    #    1024.000MB
  b:    8388608    1048576      swap    #    8192.000MB
  d:  106202112    9437184   HAMMER2    #  103713.000MB
  a-stor_uuid: 992e74da-d9e4-11e8-889a-ed8eb59a667e
  b-stor_uuid: 992e74ed-d9e4-11e8-889a-ed8eb59a667e
  d-stor_uuid: 992e74fa-d9e4-11e8-889a-ed8eb59a667e

Once done I used the online docs about manual installation.
After that I did mount the fat partition (/dev/sda1 or slice 0 from BSD side)
mount_msdos /dev/serno/162534803013.s0 /mnt/esp

I finally had to copy /boot/boot1.efi into /mnt/esp/EFI/dfly/boot1.efi and add an entry into my UEFI boot loader from the Linux side using efibootmgr because I don't know any tool doing the same thing on DragonFlyBSD (I guess you can just use a Linux live CD to achieve this, no need to have a distribution installed, just make sure it has access to the EFI variables).

sudo efibootmgr --disk /dev/sda --part 0 --create --gpt --label "DragonFlyBSD" --loader /EFI/dfly/boot1.efi

Telling the boot manager that this "DragonFlyBSD" entry should take the loader /EFI/dfly/boot1.efi on /dev/sda, on part0 (/dev/sda1)

Once this is done you can check which entry number it has with
sudo efibootmgr
In my case I get :
Boot0011* Arch Linux
Boot0013* DragonFlyBSD

I can use efibootmgr -n 0013 to make it the next target at next boot/reboot so I don't have to stay in front of the computer to press F9 to get the boot manager.

So I know this efibootmgr utility is available on FreeBSD but not on DragonFlyBSD, I don't know about OpenBSD.
Maybe you can be able to reach the same state by directly using the EFI variables because there seems to be this new variable corresponding to the entry I added.

sudo efivar -p --name 8be4df61-93ca-11d2-aa0d-00e098032b8c-Boot0013
GUID: 8be4df61-93ca-11d2-aa0d-00e098032b8c
Name: "Boot0013"
Attributes:
        Non-Volatile
        Boot Service Access
        Runtime Service Access
Value:
00000000  01 00 00 00 5a 00 44 00  72 00 61 00 67 00 6f 00  |....Z.D.r.a.g.o.|
00000010  6e 00 46 00 6c 00 79 00  42 00 53 00 44 00 00 00  |n.F.l.y.B.S.D...|
00000020  04 01 2a 00 01 00 00 00  00 08 00 00 00 00 00 00  |..*.............|
00000030  00 40 0b 00 00 00 00 00  5c cb 65 be ba c9 ae 4a  |. at ......\.e....J|
00000040  aa a6 ab 86 70 04 64 34  02 02 04 04 2c 00 5c 00  |....p.d4....,.\.|
00000050  45 00 46 00 49 00 5c 00  44 00 46 00 4c 00 59 00  |E.F.I.\.D.F.L.Y.|
00000060  5c 00 62 00 6f 00 6f 00  74 00 31 00 2e 00 65 00  |\.b.o.o.t.1...e.|
00000070  66 00 69 00 00 00 7f ff  04 00                    |f.i.......      |

I never tried to modify the variables directly though.

Hope this will help you.
Regards,




‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Sunday 18 November 2018 19:30, Dr. Martin Ivanov <martin.ivanov at greenpocket.de> wrote:

> Hello,
>
> after successfully installing Dragonfly and OpenBSD in a multiboot setup on the same hard drive on an old BIOS machine, now I am planning to attempt to do the same on a new machine with UEFI Firmware. I googled a lot and it seems at some point I may be in need of the GRUB2 for EFI bootloader or elilo.  I simple
>
> pkg search grub2
>
> or 
>
> pkg search elilo
>
> provides no output . Is it possible to install any of these packages on DragonFly? 
>
> Thank you very much!
>
> Best regards,
>
> Martin





More information about the Users mailing list