Latest grub fun

Hi,

I'm trying to re-install grub as per latest guidance but I'm getting a problem and I'm not sure why.

Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists

.

I don't have any efi folder in /sys/firmware and I'm pretty sure I've a BIOS board but it came out as a ■■■■■■■ of the two when UEFI was still teething.

I absolutely have a 512mib boot partition on sda2 which contains grub and all the boot images.

I'm trying to run sudo grub-install /dev/sda and getting the error above.

Any help appreciated, thanks in advance.

If you have an UEFI/gpt system that's not the right command, check here:

https://wiki.manjaro.org/index.php/Restore_the_GRUB_Bootloader

Please, provide output of

inxi -Fxxxza --no-host
sudo efibootmgr -v 
sudo parted -l
lsblk -f
3 Likes

If you want to create a GPT partition table on a system that boots in the legacy BIOS mode ─ which appears to be what you're attempting to do ─ then you don't need an EFI System Partition, but instead you need a BIOS partition. This is a partition of type bios in the partitioning tool, and it should be...

  1. about 1-2 MiB;
  2. unformatted; and
  3. marked with the boot flag.

The reason for this is that in a non-UEFI setup, GRUB will attempt to store its core.img in the drive's MBR ─ just as it would with a regular MS-DOS MBR partition table ─ but it is too large to fit in there, and it would as such overwrite the partition boundaries and damage the partition and filesystem in the first partition.

Therefore, in a non-UEFI setup with GPT, you must create an unformatted bios partition of about 1 to 2 MiB, marked with the boot flag, and then GRUB will store its boot.img in the MBR, and the core.img in the unformatted bios partition.

2 Likes

Indeed, if OP has really a BIOS/gpt combination then an unformatted bios partition is needed. It's important to have the right partition type being set, details can be found in the below references.

https://www.gnu.org/software/grub/manual/grub/html_node/BIOS-installation.html

https://wiki.archlinux.org/index.php/GRUB#BIOS_systems

2 Likes

Just to mention I have a perfectly running system. It was installed with the Manjaro installer and I didn't pay too close attention unfortunately.

I am not keen on posting full system info on a public forum however.

Output of efibootmgr is EFI variables are not supported on this system. Like I said.

If there was something specific you were looking for I can happily oblige.

Cheers

Not what I'm trying to do. core.img is snuggled away in /boot/grub/i386-pc/

This is just a copy of the file. It's difficult to help you if you don't share your partitions.

2 Likes
Disk /dev/sda: 64.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name  Flags
 2      1049kB  538MB   537MB   fat32                 msftdata
 1      538MB   1612MB  1074MB  linux-swap(v1)        swap
 3      1612MB  64.0GB  62.4GB  ext4

This is my boot drive

This looks like an /boot/efi partition except for the missing boot flag.

Anyway, you said you are not booting in UEFI mode. If that's true than you might have installed grub's core.img just right behind the MBR. Seems to allow you to boot but makes it impossible to use grub-install to just re-install grub as the command will detect the gpt disk and provides the error message you see. If you want to stick to your system make backups and try to make a BIOS boot partition with the right flag, then grub-install should work to fix it.

2 Likes

Christ

This was the automated install setting chosen by the manjaro installer a little less than 2 years ago on a formatted drive. So peculiar.

I really don't feel like taking the hammer and tongs to this one..

Thanks for your replies Wollie.

No, more likely, it'll be inside the EFI system partition, because it's the first partition in the list.

The whole point of creating a bios partition is exactly because there isn't enough room behind the MBR for the core.img. :wink:

2 Likes

I think only @BusinessOrc can tell us when they analyse the content of the partition /dev/sda2. The space before the first partition can also be used as the BIOS boot partition though it will be out of gpt alignment specification.

The right way to solve it is to realize a real BIOS boot partition with the right flag. All other solutions are prone to fail pretty soon IMHO.

2 Likes

Ok. My system is now unbootable. I'm in the manjaro installation medium. Any help greatly appreciated @Wollie @Aragorn

I set the BIOS-grub flag on my boot partition and grub installed fine and found my images. Upon reboot my system then got caught in a boot loop.

I think I've really ■■■■■■ it now.

How did you install GRUB? :thinking:

1 Like

I was chrooted into my existing system. I changed the flags (since there were none) to bios_grub and then ran grub-install /dev/sda and then grub-update.

System just posted over and over. Now I'm back in the live environment and

grub-install /dev/sda Installing for i386-pc platform. grub-install: error: cannot open directory '/boot/grub/i386-pc': No such file or directory.

Seems to have been wiped in my latest muck-up...

Perhaps I should just destroy the boot partition and start from scratch?

When in the live environment, can you access /boot/grub from there, and if you can, please post the output of...

ls -l /boot/grub
1 Like

Using thunar I can access the /boot folder. It's totally empty.

ls -l /boot/grub
total 1
-rw-r--r-- 1 root root 1024 Jan 19  2018 grubenv

This is the live disk... let me chroot into my system and report

Forum kindly sponsored by