Wie findet grub einen Kernel (gelöst)

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Benutzeravatar
grubenlicht
Beiträge: 552
Registriert: 10.06.2021 22:35:56

Re: grub Kernel finden

Beitrag von grubenlicht » 06.11.2024 12:05:04

fischig hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 11:35:37
Hier ist das Ergebnis 42251
Ich fürchte, dass das nicht weiterbringt.
Mich irritiert das Ergebnis
linux /boot/vmlinuz40935x61.0a root=UUID ro
oder gar ganz ohne eine device Angabe für "/"
linux /boot/vmlinuz41429x61.0 ro
Da bin ich überfragt.
Wenn ihr der Meinung seid

Ich hätte längst das Stretch auf ein USB (oder auch intern) Gerät gepackt, einen stand-alone grub installiert, eine grub.cfg geschrieben, alles, was stört im PC ausgebaut, und mich auf das booten dieses Stretch konzentriert.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: grub Kernel finden

Beitrag von fischig » 06.11.2024 12:16:59

grubenlicht hat geschrieben:Ich hätte längst das Stretch auf ein USB (oder auch intern) Gerät gepackt.
Habe ich hoch - ganz ohne grub. :wink: Aber ich bin auch mitunter durchaus bereit, mir jede Menge Arbeit zu machen, um eine seltsame Idee zu realisieren. Durchaus im Sinne von: Der Berg kreiste - und gebar eine Maus.

Benutzeravatar
grubenlicht
Beiträge: 552
Registriert: 10.06.2021 22:35:56

Re: grub Kernel finden

Beitrag von grubenlicht » 06.11.2024 14:12:59

fischig hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 12:16:59
grubenlicht hat geschrieben:Ich hätte längst das Stretch auf ein USB (oder auch intern) Gerät gepackt.
Habe ich hoch - ganz ohne grub. :wink:
Und wie willst du dann booten? Lilo funktioniert – nach deinen Angaben – nicht, mit os-prober erzeugte Einträge tun es auch nicht (sehen imho auch seltsam aus) und einen stand-alone grub mit schlichtem Menüentrag in einer grub.cfg willst du nicht (versuchen).
Entsprechende grub Befehle (set root…, linux /… etc.) auf der grub Konsole zeigen eigenartige/keine Reaktionen.
Wer weiß, woran das nun liegt.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: grub Kernel finden

Beitrag von fischig » 06.11.2024 16:57:37

Und wie willst du dann booten?
Das habe ich doch irgendwo beschrieben. Ich nutze die Platte eingebaut, nicht per USB, und dann funktioniert die - mit lilo.
einen stand-alone grub mit schlichtem Menüentrag in einer grub.cfg willst du nicht (versuchen)
NOCH nicht, weil ich erst mal wissen will, warum der grub - via udate-grub (eh nur ein wrapper für grub-mkconfig oder wie das Original heißt, geschenkt, ich lese schon, was ich so im Netz finde , habe aber nicht die Absicht, bei der Entwicklung für grub mitzumischen) den einen kernel (bei dem was er selbst macht: [update-grub]) für würdig hält, akzeptiert, zu werden (FUNKTIONIERENDE Aufnahme ins boot-Menü), den anderen dagegen nicht.

baeuchlein
Beiträge: 170
Registriert: 03.09.2020 04:48:45

Re: grub Kernel finden

Beitrag von baeuchlein » 06.11.2024 18:15:46

Das Geheimnis der von grub-mkconfig gefundenen/nicht gefundenen Kernels war etwas schwer aufzuklären, aber ich glaube, ich hab's jetzt entdeckt.

Wenn ich das, was in einer unveränderten Datei /etc/grub.d/10_linux drin steht, mal durchwühle, kommt irgendwann Folgendes zum Vorschein:

Code: Alles auswählen

machine=`uname -m`
case "x$machine" in
    xi?86 | xx86_64)
        list=
        for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
            if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
        done ;;
    *)
        list=
        for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
                  if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
        done ;;
esac
Dort sieht man, dass für Rechner, die mit einem Kernel für 32-Bit-i386-Architektur oder "x86_64" (64-Bit i686) gestartet wurden, nur nach Kernels gesucht wird, deren Dateinamen mit "vmlinux-", "vmlinuz-" oder "kernel-" beginnen und die in / oder /boot drin sind. Ein Posting von fischig eine "Seite" vorher, in der "funktionierende" und "nicht funktionierende" Kernels angegeben sind, zeigt, dass die selbst erstellten, nicht funktionierenden Kernels kein Minuszeichen hinter "vmlinux" oder "vmlinuz" haben. Ein einfaches Umbenennen dürfte schon reichen, damit grub-mkconfig den Kram plötzlich und (un?)erwartet findet.

Hab' ich dann natürlich auch gleich mal ausprobiert. Einen Kernel-Selbstbau namens /boot/bzImage findet grub-mkconfig bei mir nicht, eine 1:1-Kopie namens /boot/vmlinuz-kacke dagegen schon. Die so gebaute grub.cfg zeigt, dass er dann beim Booten melden würde: "Loading Linux kacke". :mrgreen: (Ich komm' vom Lande, da kann man sich an solchen Scherzen noch aufgeilen.)

Ich möchte an dieser Stelle nochmal dafür plädieren, eher nicht selbst die grub.cfg von Hand zu editieren. Es steht dick und fett da drin, dass man das nicht soll, und auch, warum nicht: Wenn dann endlich mal einer von grubs "Helfern" (grub-mkconfig o.ä.) gestartet wird, schmeißt der nämlich die mühsam erstellte grub.cfg gleich auf den Müll, und weg ist die mühevoll geschriebene eigene grub.cfg! Besser, man bastelt seine eigenen Einträge erst mal brav in /etc/grub.d/40_custom.cfg (oder wie diese "custom"-Datei genau heißen mag) und lässt grubs "Helfer" dann ihren Job machen - dann werden die Dinger von denen brav in die grub.cfg eingebaut, und was man so frickelt, geht auch nicht so leicht verloren.

Benutzeravatar
Livingston
Beiträge: 1816
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: grub Kernel finden

Beitrag von Livingston » 06.11.2024 19:18:24

Hab das grad mit einer Textdatei namens /boot/vmlinuz-schrott gemacht. Wird einwandfrei gefunden und ins grub-Menü eingebaut.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

HumiNi
Beiträge: 559
Registriert: 02.10.2014 21:46:18

Re: grub Kernel finden

Beitrag von HumiNi » 06.11.2024 20:00:34

Livingston hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 19:18:24
Hab das grad mit einer Textdatei namens /boot/vmlinuz-schrott gemacht. Wird einwandfrei gefunden und ins grub-Menü eingebaut.
Genau das sagt dein Vorredner/Vorforist.
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.

Benutzeravatar
Livingston
Beiträge: 1816
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: grub Kernel finden

Beitrag von Livingston » 06.11.2024 21:24:05

HumiNi hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 20:00:34
Livingston hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 19:18:24
Hab das grad mit einer Textdatei namens /boot/vmlinuz-schrott gemacht. Wird einwandfrei gefunden und ins grub-Menü eingebaut.
Genau das sagt dein Vorredner/Vorforist.
Was er nicht sagt, und was ich wissen wollte: update-grub prüft nicht auf den Inhalt, wie es z.B. mit dem Tool file möglich wäre.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

Benutzeravatar
grubenlicht
Beiträge: 552
Registriert: 10.06.2021 22:35:56

Re: grub Kernel finden

Beitrag von grubenlicht » 06.11.2024 21:36:03

ich denke, es geht um os-prober, der findet u.a. auch /boot/vmlinuz41941x61.1 und trägt das in die grub.cfg
/etc/grub.d/10_linux ist zuständig für alles, was in (seinem eigenen) "/" steht.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: grub Kernel finden

Beitrag von fischig » 07.11.2024 08:42:02

Der Gewinner ist: baeuchlein! Tata! :THX: :THX: :THX:

Ich habe mal den 4.19er in seinem Sinne umbenannt und schon wird er von update-grub nicht nur gefunden sondern auch gebootet.

Eigentlich hätte ich gedacht, dass ich den Kern neu hätte installieren müssen, weil nicht nur der Kern selbst kompiliert, sondern auch sein vmlinuz von mir umbenannt wurde, war aber nicht nötig, nachdem ich die via dpkg erzeugten Bezeichner in /lib/modules daraufhin überprüft hatte.
grubenlicht hat geschrieben:ich denke, es geht um os-prober, der findet u.a. auch /boot/vmlinuz41941x61.1 und trägt das in die grub.cfg
Mitnichten, hier zumindest bewirkt ein in /etc/default/grub aktivierter os-prober lediglich, dass die auch ohne ihn gefundenen Kernels nochmals in /boot/grub/grub.cfg geschrieben werden.

Irgendwie kommt mir der quasi-Monopolist doch sehr proffessionell vor. Es mag wohl seinen Grund haben, dass GRML grub nicht benutzt.
baeuchlein hat geschrieben:Ich möchte an dieser Stelle nochmal dafür plädieren, eher nicht selbst die grub.cfg von Hand zu editieren. Es steht dick und fett da drin, dass man das nicht soll, und auch, warum nicht
Das hatte ich von Anfang an auf dem Schirm und deswegen entgegen so manchem Rat die Finger davon gelassen.
baeuchlein hat geschrieben:Ein Posting von fischig eine "Seite" vorher, in der "funktionierende" und "nicht funktionierende" Kernels angegeben sind, ...
Das darfst du doch nicht verraten, sonst müsste sich doch der eine oder andere Experte blind vorkommen oder mit Voreingenommenheit geschlagen!

Benutzeravatar
Livingston
Beiträge: 1816
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Wie findet grub einen Kernel (gelöst)

Beitrag von Livingston » 07.11.2024 11:06:44

Was lange währt... Freut mich, dass es geklappt hat :THX:
Ich denke, ich baue tatsächlich mal ein Weihnachtstürchen zu grub zusammen. Mal systematisch durch die Ebenen der Konfiguration gehen, die Systematik hinter dem ganzen Kram zugänglicher machen etc.
Mal sehen, wie weit ich komme. Wenn ich in einer Woche ein Grundgerüst für den Artikel hinbekomme, wage ich eine Ankündigung im Kalender-Thread. Hängt davon ab, ob ich Zeit genug erübrigen kann.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Wie findet grub einen Kernel (gelöst)

Beitrag von fischig » 07.11.2024 13:11:56

Und ich kann jetzt mal probieren, wie das dann aussieht, die gewonnene Erkenntnis anzuwenden auf ein altes Debian-System, das auf einem per USB angeschlossenen Datenträger sitzt.
Aber vorher will ich mal sehen, wie ich mit meinem login-Problem weiterkomme, das echt lästig ist und bei dem rhHeini meint, dass ich auch da besser die Finger von lasse, weil ich nicht in der Lage bin, außer Prosa etwas ihm Gefälligeres zu fragen, womit er durchaus recht hat.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: Wie findet grub einen Kernel (gelöst)

Beitrag von KP97 » 07.11.2024 13:21:12

@fischig
Na siehste, kaum macht mans richtig....
Ich habe mich schon immer über Deine seltsamen Kernelbezeichnungen gewundert, die hast Du ja schon früher mal erwähnt.
Ich vermute, das kommt von diesen Einträgen in der Kernel config:
CONFIG_LOCALVERSION=""
# CONFIG_LOCALVERSION_AUTO is not set
So habe ich das jedenfalls bei mir, und meine Bezeichnungen sind immer vmlinuz-version, momentan also vmlinuz-6.1.115
Anscheinend hat sich lilo aber nicht daran gestört, sonst hätte das ja schon früher Probleme gemacht.

@Livingston
Gute Idee, das hilft doch bestimmt einigen Leuten, auch wenn der Grub allgemein verbreitet und eingesetzt wird.
Da ja die alten Geräte ohne EFI mittlerweile im Aussterben begriffen sind, sind die anderen Bootloader auch nicht mehr wichtig bzw. bekannt.
Wenn Du das machen solltest, könnte ich meine Anleitung für systemd-boot auch hinter ein Türchen packen, das würde dann ja ganz gut zusammen passen.

KP97
Beiträge: 3710
Registriert: 01.02.2013 15:07:36

Re: Wie findet grub einen Kernel (gelöst)

Beitrag von KP97 » 07.11.2024 13:31:04

fischig hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 13:11:56
Und ich kann jetzt mal probieren, wie das dann aussieht, die gewonnene Erkenntnis anzuwenden auf ein altes Debian-System, das auf einem per USB angeschlossenen Datenträger sitzt.
Vorher würde ich überlegen, allen meinen Geräten Label zuzuweisen. Die sind _immer_ eindeutig, ganz egal, welcher Gerätename durch den Kernel zugewiesen wird, sda, sdb oder sdc.
Klar, UUID's sind auch eindeutig, die kann man sich aber nicht merken, und die müssen auch in der fstab geändert werden, bei Label ist das nicht der Fall.
Mit

Code: Alles auswählen

tune2fs -L LABELNAME /dev/sda2                       #für ext4
und

Code: Alles auswählen

dosfslabel /dev/sdxx NAME  (11-st GROSS)             #für fat32
kann man das machen. Das hilft ungemein zum besseren Überblick.

So sieht das dann in meiner fstab aus:

Code: Alles auswählen

LABEL=MB		 /			       ext4	defaults    			                    0	 0
LABEL=EFI-HDD		/boot/efi 	 	vfat	umask=0077,iocharset=iso8859-1  0  0
Zuletzt geändert von KP97 am 07.11.2024 13:44:13, insgesamt 1-mal geändert.

fischig
Beiträge: 4124
Registriert: 24.12.2019 12:25:08
Lizenz eigener Beiträge: MIT Lizenz

Re: Wie findet grub einen Kernel (gelöst)

Beitrag von fischig » 07.11.2024 13:41:40

KP97 hat geschrieben:Ich habe mich schon immer über Deine seltsamen Kernelbezeichnungen gewundert, die hast Du ja schon früher mal erwähnt.
Ich hab's nun mal gerne möglichst minimalistisch, das gilt auch für Bezeichner/Dateinamen. Zwischen „vmlinuz“ und der Kernelversion benötige ich keinen Bindestrich um das sinnvoll lesen zu können. Gleiches gilt hier für die lokale Version.

Das muss man nicht so sehen, aber wo ich's kann/darf, verfahre ich danach. :wink:
KP97 hat geschrieben:Vorher würde ich überlegen, allen meinen Geräten Label zuzuweisen.
Mach ich eigentlich immer. Aber da hier in über 20 Jahren meines Wissens noch nie jemand versucht hat, das im Zusammenhang mit einem bootloader zu nutzen, habe ich das bislang auch nicht probiert.
Ich denk' schon drüber nach, was mir auf meine Fragen rückgemeldet wird.
(letzter Satz geht nicht gegen dich! Aber ich habe momentan tatsächlich einen dicken Hals! :evil: )

HumiNi
Beiträge: 559
Registriert: 02.10.2014 21:46:18

Re: grub Kernel finden

Beitrag von HumiNi » 07.11.2024 19:36:50

baeuchlein hat geschrieben: ↑ zum Beitrag ↑
06.11.2024 18:15:46
Das Geheimnis der von grub-mkconfig gefundenen/nicht gefundenen Kernels war etwas schwer aufzuklären, aber ich glaube, ich hab's jetzt entdeckt.

Wenn ich das, was in einer unveränderten Datei /etc/grub.d/10_linux drin steht, mal durchwühle, kommt irgendwann Folgendes zum Vorschein:

Code: Alles auswählen

machine=`uname -m`
case "x$machine" in
    xi?86 | xx86_64)
        list=
        for i in /boot/vmlinuz-* /vmlinuz-* /boot/kernel-* ; do
            if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
        done ;;
    *)
        list=
        for i in /boot/vmlinuz-* /boot/vmlinux-* /vmlinuz-* /vmlinux-* /boot/kernel-* ; do
                  if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi
        done ;;
esac
Gratuliere! Das nenne ich perfekte Fehlersuche. :)
(Man kann es außerdem lausigen Code nennen. Kernel aufgrund des Dateinamens identifizieren... :facepalm: )
Es macht übrigens viel wacher, den Kaffee über die Tastatur zu kippen, statt ihn zu trinken.

baeuchlein
Beiträge: 170
Registriert: 03.09.2020 04:48:45

Re: grub Kernel finden

Beitrag von baeuchlein » 08.11.2024 00:08:06

HumiNi hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 19:36:50
(Man kann es außerdem lausigen Code nennen. Kernel aufgrund des Dateinamens identifizieren... :facepalm: )
Sei bloß still... eins meiner selbst geschriebenen Skripte macht das genauso! :|

Antworten