• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]"error: symbol 'grub_calloc' not found"

ekke

Newbie
Nach Update (Leap 15,1) am 04.08.20 kommt beim Booten die Meldung:
Code:
Error: symbol 'grub_calloc' not found
Der Vorgang endet mit "Grub rescue". Als Verzweiflungstäter habe ich dann Upgrade auf Leap 15.2 gemacht, mit dem gleichen Ergebnis. Wie komme ich weiter?
Gruß
ekke.
 

Sauerland

Ultimate Guru
Bekannt:
https://bugzilla.opensuse.org/show_bug.cgi?id=1175036
https://forums.opensuse.org/showthread.php/542998-grub-corrupted-after-update
 

abgdf

Guru
Klingt übel.

(calloc ist eine C-Funktion, um Speicher anzufordern, siehe "man 3 calloc". Wenn da etwas nicht klappt, hat man ganz schlechte Karten, denn das ist wahrscheinlich ein Problem auf einer sehr niedrigen Ebene.)
 

susejunky

Moderator
Teammitglied
Hallo ekke,
ekke schrieb:
Nach Update (Leap 15,1) am 04.08.20 kommt beim Booten die Meldung:
Code:
Error: symbol 'grub_calloc' not found
Der Vorgang endet mit "Grub rescue". Als Verzweiflungstäter habe ich dann Upgrade auf Leap 15.2 gemacht, mit dem gleichen Ergebnis. Wie komme ich weiter?
falls Du Dein Problem nicht bereits mit Hilfe der von Sauerland bereitgestellten Links selbst gelöst hast, wäre es noch wichtig zu wissen, ob Du Dein System im MBR- oder im UEFI-Modus startest.

Viele Grüße

susejunky
 

susejunky

Moderator
Teammitglied
ekke schrieb:
Ich starte mit MBR.
ekke.
Die Vermutung liegt nahe, dass die auf Deinem System installierten GRUB2-stages unterschiedliche Versionen aufweisen.

Eine Neu-Installation von GRUB2 (mittels einer chroot-Umgebung) könnte das Problem lösen.

Viele Grüße

susejunky
 
OP
E

ekke

Newbie
vielen Dank für die Hinweise! Ich habe versucht, mit der chroot-Version das Problem zu lösen. alles ging prima, aber beim abchließenden Booten kam das alte Elend wieder: "...not found".
Grüße
ekke
 

susejunky

Moderator
Teammitglied
Hallo ekke,
ekke schrieb:
... Ich habe versucht, mit der chroot-Version das Problem zu lösen. alles ging prima, aber beim abchließenden Booten kam das alte Elend wieder: "...not found".
Ohne eine präzise Beschreibung dessen, was Du im Einzelnen gemacht hast, lässt sich nicht sagen, was da schief gegangen ist.

Viele Grüße

susejunky
 
OP
E

ekke

Newbie
Susejunky hatte recht, es gab Konkurrenten! Ich habe nach langem Herumprobieren einfach eine der Platten abgehängt, scheints die richtige. Alles geht! Bei der Sucherei habe ich seltsame Trittbrettfahrer im grub.cfg gefunden: Eine zweite Version von Leap 15.2 (nicht identisch mit der ersten) und Verweise auf MacOS. Ich habe weder Leap 15.2 zweimal installiert noch habe ich Apple-Hardware und auch kein OS. Es ist mir ein absolutes Rätsel, woher diese fellowtraveller kommen.
Vielen Dank für Eure Hilfe!
Grüße
ekke.
 

gehrke

Administrator
Teammitglied
ekke schrieb:
und Verweise auf MacOS. Ich habe weder Leap 15.2 zweimal installiert noch habe ich Apple-Hardware und auch kein OS. Es ist mir ein absolutes Rätsel, woher diese fellowtraveller kommen.
Hhmm - so etwas habe ich auch noch nie gehört.
Könntest Du - nur interessehalber - den entsprechenden Abschnitt zu MacOS der grub.cfg hier mal einstellen?
TNX
 
OP
E

ekke

Newbie
Meine Erklärung für die Problemlösung ist nicht besonders erhellend. Für Interessierte möchte ich die Vorgänge etwas erläutern: Ich habe auf dem Desktop zwei HDDs. Um es einfach zu machen, nenne ich sie wie im BIOS HD1 und HD2.
Beim Upgrade auf Leap 15.1 im Herbst, hatte ich den Desktop LXDE gewählt. Danach ist das Bootmenue verschwunden und ich konnte nur noch Leap 15.1 öffnen. Anfang August habe ich eines der - fast täglich - angebotenen Updates installiert, in dem auch mehrere Dateien enthalten waren, die Grub2 betrafen. Im noch laufenden Betrieb, war nichts zu bemerken. Nach einem Reboot kam die eingangs gezeigte Meldung.
Ich habe allerlei erfolglos probiert - einschließlich Upgade auf Leap 15.2 vom USB-Stick -, um alles wieder ans Laufen zu bringen, was mir schließlich hilfsweise mit Supergrub2 gelang. Dadurch konnte ich mir die Innereien in ./grub2/grub.cfg ansehen, wo ich temporär sogar drei Leaps fand. Ich habe daraufhin im BIOS die HDDs getauscht: Alles palletti. Und das Upgrade ist auch gegangen. Alles in /home ist da und sogar das vollständige Bootmenue.
Die Verweise auf MacOS sind vermutlich ein Rückstand von Supergrub2, wo diese Möglichkeiten angeboten werden.
Nach wie vor ist das KDE-Leap auf dem Desktop eine zähe Sache. Wie kann ich wohl das überflüssige Leap 15.2 loswerden? Falls es jemanden interessiert, kann ich das aktuelle ./grub2/grub.cfg posten.
Grüße
ekke.
 
OP
E

ekke

Newbie
Ich muß ganz kleine Brötchen backen: Nach dem heutigen Update mit einem neuen Kernel, hab ich in ./grub2/grub.cfg gesehen, daß die jeweils unmittelbar voraufgegangene Version bleibt und frühere gelöscht werden. Bei Debian und Derivaten muß man das zu Fuß machen, aber immer die vorletzte Version behalten, weil die ja funktioniert hat. Jetzt will ich sie nicht mehr loswerden.
Grüße
ekke.
 

Sauerland

Ultimate Guru
Das ist multiversion in /etc/zypp/zypp.conf
Code:
grep multiversion /etc/zypp/zypp.conf
##      provides:multiversion(kernel)   - all packages providing 'multiversion(kernel)'
multiversion = provides:multiversion(kernel)
## Defining directory which may contain additional multiversion definitions.
## one valid multiversion list entry per line. Empty lines and lines starting
## ------------------------- [/etc/zypp/multiversion.d/example file begin] -----------------------
## provides:multiversion(kernel)
## ------------------------- [/etc/zypp/multiversion.d/example file end] -----------------------
## Default value: {configdir}/multiversion.d
# multiversiondir = /etc/zypp/multiversion.d
## above multiversion variable is set. Packages can be specified as
## Default: Do not delete any kernels if multiversion = provides:multiversion(kernel) is set
multiversion.kernels = latest,latest-1,running
Und dann komm purge-kernels.service zum Zuge:
Code:
systemctl status purge-kernels.service 
● purge-kernels.service - Purge old kernels
   Loaded: loaded (/usr/lib/systemd/system/purge-kernels.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Thu 2020-08-20 09:30:10 CEST; 2 days ago

Dieser Service wird beim hochfahren dann ausgeführt, wenn die Datei /boot/do_purge_kernels vorhanden ist.
Diese wird bei einer Kernel Installation angelegt und nach dem Aufruf von purge-kernels.service gelöscht.
Kannst du überprüfen, indem du die Datei anlegst:
Code:
sudo touch /boot/do_purge_kernels
Code:
sudo /sbin/purge-kernels
Wenn dort ein 3. kernel installiert wäre, würde der mit der niedrigsten Version gelöscht.
 
OP
E

ekke

Newbie
Vielen Dank für den Hinweis auf die Multiversion! Ich möchte hier auch nochmals allen danken, die mir mit Anregungen und Tips aus der Affaire geholfen haben.
Grüße
ekke.
 
Oben