Contribute
Register

<< Solved >> Ubuntu Linux entry missing in OpenCore 0.7.0 menu in a Multiboot System with separate drives

Status
Not open for further replies.
Joined
Nov 18, 2015
Messages
170
Motherboard
Gigabyte Z390 Designare
CPU
i9-9900K
Graphics
RX 580
Hi All,
in order to install macOS Big Sur in a dedicated APFS volume on my multiboot system (WIN-macOS-Linux) on separate drives (UEFI-Mode), it was necessary to switch from Clover to OpenCore. So I created the USB pendrive for Big Sur install using OpenCore 0.7.0. Before installing Big Sur, I wanted to test OpenCore on my current multiboot system and I realized that while the Windows 10 entry appears in the OpenCore menu (and it seems to boot fine), the Ubuntu Linux entry does not appear (which worked fine using Clover instead).
I'm a very beginner in OpenCore troubleshooting: what settings could I change in the config.plist file to be able to fix this problem?
Thanks in advance for Your Help
 
I realized that while the Windows 10 entry appears in the OpenCore menu (and it seems to boot fine), the Ubuntu Linux entry does not appear (which worked fine using Clover instead).
I'm a very beginner in OpenCore troubleshooting: what settings could I change in the config.plist file to be able to fix this problem?
First check and see if there's an entry just called 'EFI' on the OpenCore menu. If so try it, as that could be the Ubuntu GRUB boot loader. If not, then you have three ways to add a Ubuntu entry. The following applies to config.plist.

  • Use the BlessOverride feature under Misc to add a manual path to it such as "\EFI\ubuntu\grubx64.efi"
  • Use the Linux efibootmgr utility to add GRUB to the UEFI boot manager and OC will pickup the entry.
  • Chainload the Ubuntu kernel EFISTUB directly using a manual entry in Entries under Misc.
The first option is the easiest while the second is more involved and the third is the most involved to configure. On my system I use the EFISTUB option (just because it's there) but GRUB is present on the menu too because it's already in the UEFI boot settings. Check out the Dortania Dualbooting Guide linked below for details.

 
First check and see if there's an entry just called 'EFI' on the OpenCore menu. If so try it, as that could be the Ubuntu GRUB boot loader. If not, then you have three ways to add a Ubuntu entry. The following applies to config.plist.

  • Use the BlessOverride feature under Misc to add a manual path to it such as "\EFI\ubuntu\grubx64.efi"
  • Use the Linux efibootmgr utility to add GRUB to the UEFI boot manager and OC will pickup the entry.
  • Chainload the Ubuntu kernel EFISTUB directly using a manual entry in Entries under Misc.
The first option is the easiest while the second is more involved and the third is the most involved to configure. On my system I use the EFISTUB option (just because it's there) but GRUB is present on the menu too because it's already in the UEFI boot settings. Check out the Dortania Dualbooting Guide linked below for details.

There are three "EFI" entries on startup in the OpenCore menu but none of them seem to boot Ubuntu (they are probably related to using Clover on three drives of the system, in fact I am currently testing the use of OpenCore with a USB flash drive)
My multiboot system on separate drives for each OS and this is the DiskUtil List output for the Linux drive:
/dev/disk3 (internal, physical): #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk3 1: EFI NO NAME 510.7 MB disk3s1 2: Linux Filesystem 100.0 GB disk3s2 3: Linux Filesystem 50.0 GB disk3s3 4: Linux Swap 8.0 GB disk3s4 5: Linux Filesystem 52.4 GB disk3s5 6: Linux Filesystem 52.4 GB disk3s6 7: Linux Filesystem 62.9 GB disk3s7 8: Linux Filesystem 62.9 GB disk3s8
In the OpenCore menu I have a "NO NAME" entry and this is probably the Linux Drive EFI but if I try to boot I get this error:
"System BootOrder not found. Initializing Defaults.
Could not read \EFI\: Invalid parameter.
Error: could not find boot options: Invalid parameter.
start_image() returned Invalid Parameter.
OCB: Start Image failed - Invalid parameter"

so if I was using BlessOverride to try to add the correct pathname I would have to use the full address /dev/disk3/EFI\ubuntu\grubx64.efi?
Is the pathname sintax correct?
 
Last edited:
In the OpenCore menu I have a "NO NAME" entry and this is probably the Linux Drive EFI but if I try to boot I get this error:
Looks that way, but judging from the errors it can't find grub evidently.
so if I was using BlessOverride to try to add the correct pathname I would have to use the full address /dev/disk3/EFI\ubuntu\grubx64.efi?
Is the pathname sintax correct?
Not quite. You just want the path starting with EFI because OC will look for it on all accessible partitions.

\EFI\ubuntu\grubx64.efi
 
Looks that way, but judging from the errors it can't find grub evidently.

Not quite. You just want the path starting with EFI because OC will look for it on all accessible partitions.

\EFI\ubuntu\grubx64.efi
Following your hint Ubuntu now starts by clicking on the "NO NAME" entry in the OpenCore menu. Thanks!:)
I know this is a "cosmetic" problem but would it be possible to have "Ubuntu" or "Linux" as the menu item label?
Also using an OpenCore Theme the "Linux" icon is not applied to the menu entry.
Any idea about it?
 
Following your hint Ubuntu now starts by clicking on the "NO NAME" entry in the OpenCore menu. Thanks!
Sounds good.

I know this is a "cosmetic" problem but would it be possible to have "Ubuntu" or "Linux" as the menu item label?
Absolutely. You need to enable "custom rendered titles for boot entries" in the Picker Attributes under Misc. It will be easiest to do this using OpenCore Configurator as shown in the screenshot below. Add to your existing attributes.

Label Attribute.png


Then mount the correct partition and create label files using either the OC disklabel utility or the bless command as shown below (don't use both):
Code:
./disklabel -e "Ubuntu Linux" /Volumes/EFI/EFI/ubuntu/.disk_label /Volumes/EFI/EFI/ubuntu/.disk_label_2x
Code:
bless --folder /Volumes/EFI/EFI/ubuntu/ --label "Ubuntu Linux"

Also using an OpenCore Theme the "Linux" icon is not applied to the menu entry.
Any idea about it?
The flavour icon attribute must be set as shown in the previous screenshot. If using the BlessOverride option then create a flavour file in the ubuntu folder:

Code:
echo "Ubuntu:" > /Volumes/EFI/EFI/ubuntu/.contentFlavour

A custom entry for the kernel with a theme flavour icon would appear as shown below:

Ubuntu Custom Entry.png


See more details in the OpenCanopy section of the link below:

 
Absolutely. You need to enable "custom rendered titles for boot entries" in the Picker Attributes under Misc. It will be easiest to do this using OpenCore Configurator as shown in the screenshot below. Add to your existing attributes.

View attachment 523394

Then mount the correct partition and create label files using either the OC disklabel utility or the bless command as shown below (don't use both):
Code:
./disklabel -e "Ubuntu Linux" /Volumes/EFI/EFI/ubuntu/.disk_label /Volumes/EFI/EFI/ubuntu/.disk_label_2x
Code:
bless --folder /Volumes/EFI/EFI/ubuntu/ --label "Ubuntu Linux"
I have a separate drive for each operating system (macOS, Win10, Linux) when you say "mount the correct partition" do you mean the EFI partition of the drive dedicated to linux?
So the /Volumes /EFI/EFI/ubuntu/ pathname is always valid whatever the drive Ubuntu is installed on, or does it have to be specified?

The flavour icon attribute must be set as shown in the previous screenshot. If using the BlessOverride option then create a flavour file in the ubuntu folder:

Code:
echo "Ubuntu:" > /Volumes/EFI/EFI/ubuntu/.contentFlavour
How does this command specify the icon (and by which theme) that is selected for the "Linux" or "Ubuntu" entry in the OpenCore menu?
(so I could figure out what name the icons should have to be enabled)

In my multiboot system in addition to Windows 10 and Linux I will have two versions of macOS (Catalina and Big Sur), could I also add the possibility of having different icons for each version of macOS by setting the value of Picker Attributes (as described in https://www.tonymacx86.com/threads/how-to-opencore-0-6-9-0-7-0-differences.313523/ in the section "Example: How to set Flavors for Big Sur, Catalina, Monterey and Windows" )?
What settings in my case?
Thanks again
 
I have a separate drive for each operating system (macOS, Win10, Linux) when you say "mount the correct partition" do you mean the EFI partition of the drive dedicated to linux?
Yes, that's where the GRUB bootloader for Ubuntu should be located. It's definitely going to be on an EFI partition.

So the /Volumes /EFI/EFI/ubuntu/ pathname is always valid whatever the drive Ubuntu is installed on, or does it have to be specified?
It's always valid because the folder path will always be the same on any EFI partition when mounted through macOS. Since you're not loading the Ubuntu kernel directly the location of the Linux root partition doesn't matter in this case. GRUB takes care of that.

How does this command specify the icon (and by which theme) that is selected for the "Linux" or "Ubuntu" entry in the OpenCore menu?
It creates a hidden file (.contentFlavour) in the "ubuntu" folder with the preferred icon's file name. To quote directly from the page I linked to "...OpenCanopy looks for the icon named with that value in the folder of the active theme." That means if there's a Ubuntu.icns file in the theme you're using that will be applied. Several options can be specified like "Ubuntu:Linux:Grub" and OpenCanopy will look for those icons in the current theme starting with Ubuntu then Linux then Grub. Apparently if it fails to find them it will use the default hard disk icon for the current theme. That's all per the OpenCore differences page.

could I also add the possibility of having different icons for each version of macOS by setting the value of Picker Attributes
According to the previous link: "macOS Entries only need the icons, nothing more; macOS will have its flavour set automatically by OC and it will pick the correct icon from the theme set in PickerVariant; this way it is possible to have different icons for different versions of operating systems." Sounds like what your looking for so just set the theme under Misc > Boot > PickerVariant. First make sure the theme actually has unique icons for different versions of macOS.

Picker Attributes just needs to have the OC_ATTR_USE_FLAVOUR_ICON value set to enable the use of custom icons. OpenCore Configurator should make that easy.
 
Hi @jpz4085 ,
Sorry, i'm back here:
I mounted the Ubuntu drive EFI Volume (with terminal or EFI Agent App) to create the "Ubuntu Linux" volume label using the bless command but unfortunately it seems unable to find the desired partition. This is the terminal output:
Code:
andrea2@iMac-di-Andrea2 ~ % bless --folder /Volumes/EFI/EFI/ubuntu/ --label "Ubuntu Linux"
No mount point for /Volumes/EFI/EFI/ubuntu/
Can't determine mount point of '/Volumes/EFI/EFI/ubuntu/' and ''
Using Diskutil info command aiming the Ubuntu drive EFI Volume you have the following output regarding the mountpoint:
Code:
Volume Name:               NO NAME
   Mounted:                   Yes
   Mount Point:               /Volumes/NO NAME

   Partition Type:            EFI
   File System Personality:   MS-DOS FAT32
   Type (Bundle):             msdos
   Name (User Visible):       MS-DOS (FAT32)
How can I change the syntax of the bless command (if possible) to get the desired result?
Thanks again
 
How can I change the syntax of the bless command (if possible) to get the desired result?
OK, the mount point for that EFI partition is /Volumes/NO NAME so the command should be edited as follows:

Code:
bless --folder /Volumes/NO\ NAME/EFI/ubuntu/ --label "Ubuntu Linux"
 
Status
Not open for further replies.
Back
Top