0

I have a dual booting desktop for some time.

  • /dev/sda - SSD drive containing Windows
  • /dev/sdb - SSD drive containing Ubuntu
  • /dev/sdc - HDD drive with data for both OSes

Recently I switched the SSD drives from MBR to GPT and switched off the legacy modus in my BIOS, so it is UEFI now.

Since then, the GRUB disappeared and I cannot get it to install again.

First I tried the "regular" way of booting from live USB, chrooting into the system on /dev/sdb and running grub-install. This results in the error:

grub-install: warning: this GPT partition label contains no BIOS Boot Partition: embedding won't be possible
grub-install: error: embedding is not possible, but this is required for cross-disk install

Installing it to /dev/sdb is possible but then, depending on which device gets boot priority, there is no choice in OS (so boot from sda and you boot directly to Windows, boot from sdb and you boot directly to Ubuntu).

Then I tried wiping /dev/sdb and reinstalling from a live USB, but upon completing the setup, I get an error that the grub cannot be installed. Not on sda, not on sdb. I does not help if I first boot into "Try Ubuntu" and update, it keeps failing on this step. I tried lvm and regular, I tried manually setting the devices partition actions and just letting the setup do this.

I tried repairing Windows boot before reinstalling but nothing changed (to be fair, Windows was booting alright, so there might not be much to repair). I tried all options of bootrec.exe, I tried bcdboot and I tried Startup Repair.

Any idea what else I can try?

  • Windows only boots from gpt with UEFI. So did you also convert to UEFI booting. If so then you need an ESP - efi system partition (FAT32 wiht boot flag). I like to have one on every drive, as repartitioning to add one later is a hassle. But grub only uses ESP on drive seen first, normally sda & then Windows' ESP. If BIOS, then answer befow is correct, but you need to install with Something Else if new install and install grub to same drive as Ubuntu. – oldfred Apr 6 '19 at 19:23
  • I thought I switched fully to UEFI but found it was still in Legacy mode. Now I switched this off and have the ESP EFI partition, and it works well (installer handles it mostly) – TacoV Apr 7 '19 at 11:29
2

In GPT disk in BIOS mode a separate partition is needed.
Create 1 to 2 MB partition in the beginning of disk with a flag "bios_grub"
Mount point: none
Type: no filesystem
then install grub.

BIOS-Boot or EFI partition (required on GPT disks)

If you want to install Ubuntu on a GPT disk (you can check it via the 'sudo parted -l' command), you will need either an EFI partition (if your BIOS is set up in EFI mode) or a BIOS-Boot partition (if your BIOS is set up in Legacy mode).

BIOS-Boot partition:

Mount point: none Type: no filesystem Description: the BIOS-boot partition contains GRUB 2's core. It is necessary if you install Ubuntu on a GPT disk, and if the firmware (BIOS) is set up in Legacy (not EFI) mode. It must be located at the start of a GPT disk, and have a "bios_grub" flag.
Size: 1MB.

Source

  • Thanks to your answer I found my BIOS was still in Legacy mode instead of EFI (contrary to what I thought). Switched this and now the installer works. Thanks! – TacoV Apr 7 '19 at 11:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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