La mayor pega de tener varios sistemas operativos instalados simultáneamente es que solo podemos asignar una opción por defecto en el arranque, si arrancamos Linux no hay problema ya que podemos utilizar grub-set-default para cambiar la entrada por defecto pero si arrancamos otro SO como FreeBSD ya no podremos volver a Linux ya que no podemos modificar la configuración del Grub de Linux desde FreeBSD. Para resolver esta problemática utilizaremos las opciones de arranque que nos brinda UEFI tanto desde Linux como desde FreeBSD.
En Gentoo compilamos la tool, en FreeBSD no hará falta ya que forma parte del sistema base:
Lo primero será consultar el estado de las entradas UEFI:
BootCurrent: 0001
Timeout: 1 seconds
BootOrder: 0002,0004,0005,0006,0007,0008,0009,0003,0001
Boot0001* gentoo HD(3,GPT,839e3608-bfd6-42ba-94a2-14c3d5ae227c,0x2e1800,0x32000)/File(\EFI\GENTOO\GRUBX64.EFI)
Boot0002* HD(3,GPT,839e3608-bfd6-42ba-94a2-14c3d5ae227c,0x2e1800,0x32000)/File(\EFI\FREEBSD\BOOT1.EFI)
Boot0003* UEFI OS HD(1,GPT,eb358698-5581-11e9-8ecb-3497f636bf45,0x28,0x64000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0004* UEFI OS HD(1,GPT,eb358698-5581-11e9-8ecb-3497f636bf45,0x28,0x64000)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0005* Samsung SSD 850 EVO 500GB BBS(HD,,0x0)..BO
Boot0006* WDC WD10EAVS-00D7B1 BBS(HD,,0x0)..BO
Boot0007* WDC WD60EFRX-68L0BN1 BBS(HD,,0x0)..BO
Boot0008* KINGSTON SA400S37120G BBS(HD,,0x0)..BO
Boot0009* WDC WD20EARX-00PASB0 BBS(HD,,0x0)..BO
Boot000A* WDC WD20EARX-00PASB0 BBS(HD,,0x0)..BO
Boot000C* KINGSTON SA400S37120G BBS(HD,,0x0)..BO
Boot000F* KingstonDataTraveler 3.0PMAP BBS(HD,,0x0)..BO
Si queremos modificar el Next boot a la entrada 0002(FreeBSD)Â ejecutamos:
Si queremos modificar el Boot order(GrubGentoo, FreeBSD):
Para añadir entradas hay que tener en cuenta el disco y la partición donde residen los ficheros UEFI, podemos consultarlo tanto desde Linux como FreeBSD.
-
FreeBSD:
gpart show=> 34 976773101 ada0 GPT (466G) 3020800 204800 3 efi (100M)
mount -t msdosfs /dev/ada0p3 /mnt/aux/efibootmgr -c -l /mnt/aux/EFI/gentoo/grubx64.efi -L gentoo -
Linux:
fdisk -l /dev/sda/dev/sda3 3020800 3225599 204800 100M Sistema EFI
efibootmgr -c -d /dev/sda -l /EFI/freebsd/boot1.efi -L freebsd -p 3
Para eliminar entradas.
-
FreeBSD:
efibootmgr -B ID -
Linux:
efibootmgr -b ID -B
Para mas información acerca efibootmgr y UEFI sobre FreeBSD:
https://www.freebsd.org/cgi/man.cgi?query=efibootmgr&sektion=8&manpath=freebsd-release-ports
https://www.freebsd.org/cgi/man.cgi?query=uefi&sektion=8&manpath=freebsd-release-ports