help-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

What does it mean when GRUB fails to find a kernel symbol?


From: Saj Goonatilleke
Subject: What does it mean when GRUB fails to find a kernel symbol?
Date: Fri, 08 Sep 2023 19:33:39 +1000

Hello,

One of our machines presented the following error after a reboot.
I expect this was due to a misconfiguration -- not a bug in GRUB.
I would like to understand the precise nature of the problem
so that we do not make this mistake again.

    error: symbol `grub_disk_native_sectors' not found.

EFI on x86-64.  Our GRUB packages come from Debian stable.
(Well, oldstable now.  grub-efi-amd64 version 2.06-3~deb11u5)

Similar symbol errors often crop up in downstream user message boards.
Invariably, someone will suggest that GRUB ought to be reinstalled --
usually because the core image is assumed to have diverged from the set
of dynamically loadable modules.

Even if that were the case here,
why would the problem manifest with this specific error message?

I poked about the following files in the GRUB source.

grub-core/Makefile.core.def
grub-core/gensymlist.sh
grub-core/kern/disk.c
grub-core/kern/dl.c
grub-core/kern/main.c
include/grub/disk.h
include/grub/kernel.h

As far as I can tell, the function for symbol grub_disk_native_sectors
is directly embedded into the GRUB kernel -- and the GRUB core image.
I don't understand how this symbol could be missing from grub_symtab.

We also observed a rescue prompt from GRUB.  AIUI, the rescue prompt
only works with runtime support from the GRUB kernel, so I guess a good
chunk of the kernel must have loaded successfully.  I suppose I'm
struggling with what seems to be a paradoxical situation:  how could we
be missing a kernel symbol if the kernel appeared to load successfully?

(Unfortunately, the disk state from the original machine has been lost,
so I must now try to reproduce the problem on a test machine.)

Thank you.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]