Tumbleweec "grub_calloc" not found at boot

Hello all,

Since last update yesterday (20200802) I cannot boot my laptop anymore.
It’s a tumbleweed with KDE Plasma and the disk is encrypted.

Anybody could tell me how to repair grub2 to be able to boot.
I don’t have anymore access to any OS on my laptop since I’m stuck at grub rescue prompt.


I did a google search for “grub_calloc”, and got several hits – mostly Ubuntu.

There was a recent update to grub2. And that should have reinstalled booting.

The chances are that you are trying to boot from an older grub than the one that was just reinstalled. So there is a mismatch.

It is usually easy to fix this, by reinstalling grub. However, you are using encryption, so that means that there may be an additional step or two.

Before starting on that, it would be useful to have additional information.

Do you have more than one hard drive?
Are you using legacy BIOS booting or UEFI booting (it is probably legacy BIOS, but I’ll ask anyway).
Can you check the BIOS settings, and find out what is the BIOS boot order.

In order to repair this, you will need to boot from rescue media. You can boot the DVD installer to the rescue system. Or you can download the live rescue CD. If your Tumbleweed is installed as 64-bit, then you need 64-bit rescue media. If it is installed as 32-bit, then you need 32-bit rescue media.

Maybe practice booting from rescue media, and provide the other requested information. And then I’ll try to advise how to proceed from there.

[LEFT]I’m using legacy BIOS, and have one ssd disk but the disk is GPT. It’s an older machine and BIOS has not UEFI settings. I used the gpt disk to be able to have more than 4 partitions.
Since it an encrypted disk there is 2 partitions, 1 small for the kickoff of the decrypted disk with the boot menu, and 1 for the rest of the disk; that last one has the LVM stuff 1 VG with 3 LV : system, home, swap.

I have booted on a USB disk (with solus) and chrooted on my opensuse disk. But I can’t install grub2 with grub2-install, it gives another error message :

FONT=Times New Romangrincheux:/ # grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOSBoot Partition; embedding won’t be possible.
grub2-install: error: embedding is not possible, but this isrequired for RAID and LVM install.
(chroot)grincheux:/ #

So I really need help to get out of this.



I’m going to assume that you are somewhat experienced, and know what you are doing.

If your GPT disk is at all similar to mine, then the first partition starts at sector 2048. There is unused space between sectors 34 and 2047.

You can create a bios_boot partition there.

I actually did that on my Lenovo ThinkServer. And the output from “gdisk -l” includes:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34            2047   1007.0 KiB  EF02  BIOS boot partition
   2            2048         1026047   500.0 MiB   EF00  EFI System
   3         1026048         2050047   500.0 MiB   8300  Linux filesystem
   4         2050048         3074047   500.0 MiB   8300  Linux filesystem
   5         3074048       524288000   248.5 GiB   8E00  Linux LVM
   6       524288008       608176127   40.0 GiB    8300  
   7       608176128       692062207   40.0 GiB    8300  Linux filesystem
   8       692062208      1953525134   601.5 GiB   8300  Linux filesystem

I created that partition using “gdisk”. To do it that way, you need to set the alignment to 1 sector. And then create a partition starting at sector 34. After creating it, set the partition type to ef02 (if using “gdisk”). And then you need to save the changes and reboot before your running system can see it. The new partition will probably get a partition number at the end (instead of partition 1). If you are sure that you are using UUID for all references, then you can reorder (another “gdisk” option). But if anything uses device name, then partition reordering will break some of your systems, so leave it with the partitions out of order.

I have also created a bios_boot partition that way using “parted”. I don’t quite remember the details. I’m pretty sure that I had to set blocksize to 512 (or something like that). And then I had to set the partition to be bios_boot (or maybe it is called “bios_grub”).

If you are able to create that partition, then your grub2-install should work.

If you have unallocated space elsewhere, you could instead create a bios_boot partition there. But that always seems wasteful to me, when that space from sector 34 to sector 2047 would otherwise go unused.

Thank you so much, It works now, I’m back on my laptop! Thank you nrickert.

Yoohoo! OpenSuse rocks!

That’s all it needed : a EFI system partition I don’t use! What a great idea to make use of those lost sectors anyway.
I will remember this one. I have followed your advice and the laptop gracefully rebooted with OpenSuse Thumbleweed 20200801/Kde Plasma

I’m glad that it worked out for you.