(gelöst) update-grub: partiton ohne OS-prober einbinden

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

(gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 04.07.2023 15:44:57

Ich nutze bekanntlich 8) Debian/sid(uction). Neben dem siduction Kernel verwende ich auch den reinen Debian Kernel. Dementsprechend häufig habe ich Kernel updates. Dementsprechend häufig läuft update-grub.

update-grub findet ***ohne aktiven OS-prober*** (#GRUB_DISABLE_OS_PROBER=false) alle Kernel des Systems aus dem heraus das Programm aufgerufen wurde (siduction und Debian). Zudem findet es hier bei mir alle auf der Platte gespeicherten siduction-live.iso_s als bootbare Ziele. Letzteres dank eines besonderen scripts in /ect/grub.d/*60_fll-fromiso.

Nicht gefunden wird ***ohne aktiven OS-prober*** meine Notfall Installation (natürlich wird sie bei aktivem OS-prober gefunden uns ins Bootmenü mit aufgenommen).

Ich habe nun die Wahl entweder OS-prober immer aktiv zu lassen (alternativ nach jedem Kernelupdate manuell zu re- und deaktivieren), wovon aus Sicherheitsgründen abgeraten wird (Bitte diese Frage nicht hier zum Gegenstand machen) oder OS-prober immer deaktiviert zu lassen und im Notfall nicht ohne Gefummel auf meine Notfallinstallation zugreifen zu können:

Nun hier die Frage:
Gibt es eine Konfigurationsmöglichkeit um update-grub bei DEaktiviertem OS-prober eine bootbare Partition /ein bootbares System bekannt zu machen und so in das neu erstellte Bootmenü übernehmen zu lassen?

Das IST ein Unterschied zum OS-prober welcher ja bootbare Systeme (und eben im schlimmsten Fall auch Maleware-Bootloader) über alle Platten hinweg sucht und findet während ich hier nur ein konkretes benennbares System (/dev/sda2) einbinden möchte, das gar nicht erst gesucht werden müsste sondern welches ich epr Konfig bekannt machen möchte.

Geht das?
Zuletzt geändert von michaa7 am 04.07.2023 18:12:55, insgesamt 1-mal geändert.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

togglebit
Beiträge: 26
Registriert: 13.04.2021 19:30:22

Re: update-grub: partiton ohne OS-prober einbinden

Beitrag von togglebit » 04.07.2023 16:35:57

Finde im Archwiki ist ganz gut beschrieben wie man Einträge manuell erstellt.
https://wiki.archlinux.org/title/GRUB

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 04.07.2023 17:19:35

Naja, gut beschrieben, darüber kann man streiten. Klar das ist der Wald, ich hätte gern den Baum gefunden. Und zwar bevor ich jeden einzelnen Baum gefällt (bewältigt) habe.

Den hilfreichen Baum habe ich auch gefunden (ohne das verlinkte Dokument), aber ausgerechnet dazu (/etc/grub.d/*40_custom) steht dort wenig wirklich erhellendes.

Klar ist soviel: Was ich möchte kann in /etc/grub.d/*40_custom verwirklicht werden. Aber einen funktionerenden Grub Eintrag eigenständig zu erstellen überfordert mich.

In /boot/grub/grub.cfg hat OS-prober ja den/einen entsprechenden Eintrag erstellt. Den 1 zu 1 zu übernehmen erscheint mir jedoch nicht sinnvoll da er u.a. OS-prober Variablen enthält.

Vllt kann mir jemand helfen hieraus einen funktionierenden Eintrag für die /etc/grub.d/*40_custom zu editieren:
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'siduction 2018.3.0 Patience (LXQt) GNU/Linux, with Linux 6.1.8-1-siduction-amd64 (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.1.8-1-siduction-amd64--editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' {
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 --hint='hd1,msdos2' editiertXXXXXXXXXXXXXXXXXXXXXXXXXXX
else
search --no-floppy --fs-uuid --set=root editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fi
linux /boot/vmlinuz-6.1.8-1-siduction-amd64 root=UUID=editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ro quiet systemd.show_status=1
initrd /boot/initrd.img-6.1.8-1-siduction-amd64
}
menuentry 'siduction 2018.3.0 Patience (LXQt) GNU/Linux, with Linux 6.1.0-2-amd64 (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.1.0-2-amd64--editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' {
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 --hint='hd1,msdos2' editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
else
search --no-floppy --fs-uuid --set=root editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fi
linux /boot/vmlinuz-6.1.0-2-amd64 root=UUID=editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ro quiet systemd.show_status=1
initrd /boot/initrd.img-6.1.0-2-amd64
}
menuentry 'siduction 2018.3.0 Patience (LXQt) GNU/Linux, with Linux 6.0.6-1-siduction-amd64 (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.0.6-1-siduction-amd64--editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' {
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 --hint='hd1,msdos2' editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
else
search --no-floppy --fs-uuid --set=root editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fi
linux /boot/vmlinuz-6.0.6-1-siduction-amd64 root=UUID=editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ro quiet systemd.show_status=1
initrd /boot/initrd.img-6.0.6-1-siduction-amd64
}
menuentry 'Memory test (memtest86+x64.bin) (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/memtest86+x64.bin--editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' {
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 --hint='hd1,msdos2' editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
else
search --no-floppy --fs-uuid --set=root editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
fi
linux /boot/memtest86+x64.bin
}
menuentry 'Memory test (memtest86+x64.bin, serial console) (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/memtest86+x64.bin--editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' {
insmod part_msdos
insmod ext2
set root='hd1,msdos2'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos2 --hint-efi=hd1,msdos2 --hint-baremetal=ahci1,msdos2 --hint='hd1,msdos2' editiertXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
else
search --no-floppy --fs-uuid --set=root editiertXXXXXXXXXXXXXXXXX
fi
linux /boot/memtest86+x64.bin console=ttyS0,115200
}

### END /etc/grub.d/30_os-prober ###
"editiertXXXXXXXXXXXXXXX" ist überall gleich, es ist die UUID
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 04.07.2023 17:54:24

Ich habe das nun versucht und einfach einen eintrag von "menuentry" bis "}" in die *40_custom kopiert. Sooo funktioniert es nicht. Der Eintrag wird nicht per update-grub in das bootmenü übernommen.

EDIT:
Es funktioniert doch. Der Eintrag wird in die /boot/grub/grub.cfg übernommen und funktionert. Er wird aber auf der Bildschirmausgabe beim Ausführen von update-grub ***nicht*** angezeigt .... was mindestens verwirrend wenn nicht ein Bug ist.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

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

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von grubenlicht » 04.07.2023 18:26:28

wenn siduction im "/" oder "/boot" sog. Symlinks hat (vmlinuz und initrd.img) dann reicht ein Eintrag in der 40_custom etwa so:
- menuentry "name" {
search --no-floppy --fs-uuid --set=root UUID
linux /vmlinuz root=/dev/sdxy
initrd /initrd.img
}
(ggf. auch eben .../boot/...)

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 04.07.2023 19:54:55

Danke! Das war in etwa die Hilfe die ich erhofft hatte. Die Variante mit Verweis auf Symlink im Stammverzeichnis funktioniert.

Gegenüber meiner aus dem os-prober Abschnitt kopierten Variante wird in deinen Beispiel "root=/dev/sda2" genutzt (entsprechend hatte ich es ja auch in meinen Ausgansposting beschrieben). Der os-prober Eintrag benutzt jedoch die Grub Nomenklatur, hier also set root='hd1,msdos2' bzw die UUID. Es funktionieren beide Einträge. Gibt es da eine Präferenz? Eine robustere Variante?
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

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

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von grubenlicht » 04.07.2023 22:53:43

michaa7 hat geschrieben: ↑ zum Beitrag ↑
04.07.2023 19:54:55
...Gibt es da eine Präferenz? Eine robustere Variante?
auf der sicheren Seite bist du immer mit der UUID, also
...vmlinuz root=UUID=<uuid>
Symlink-zum-Wurzelverzeichnis

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 05.07.2023 09:55:56

Danke :THX:
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

schwedenmann
Beiträge: 5530
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von schwedenmann » 05.07.2023 10:56:07

Hallo

So sieht bei mir ein Eintrag i custom_40 aus, kein UEFI !!
menuentry "Merlin_custom40" {
insmod part_msdos
set root='(hd0,8)'
search --no-floppy --fs-uuid --set bb66c506-24da-49f1-910f-aa9fb66b4ae2
linux /boot/vmlinuz-6.3.0-1-amd64 root=UUID=bb66c506-24da-49f1-910f-aa9fb66b4ae2
initrd /boot/initrd.img-6.3.0-1-amd64
}

mfg
schwedenmann

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

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von grubenlicht » 05.07.2023 11:48:05

schwedenmann hat geschrieben: ↑ zum Beitrag ↑
05.07.2023 10:56:07
...kein UEFI !!
ob EFI oder nicht ist doch wumpe, du bist dann doch längst im grub!

Code: Alles auswählen

menuentry "Merlin_custom40" {
    insmod part_msdos
    set root='(hd0,8)'
    search --no-floppy --fs-uuid --set bb66c506-24da-49f1-910f-aa9fb66b4ae2
    linux /boot/vmlinuz-6.3.0-1-amd64 root=UUID=bb66c506-24da-49f1-910f-aa9fb66b4ae2
    initrd /boot/initrd.img-6.3.0-1-amd64
}
Zeile 2 ist Mumpitz, dann Zeile 3 oder 4, Zeile 4 ist falsch, vergl. mit meiner vorletzten Antwort (...--set-root...),, und wenn es keine Symlinks sind (Zeile 5 und 6), dann hast du bei jedem kernel update in dem System ja wieder das Gefummel in den "führenden" grub.

schwedenmann
Beiträge: 5530
Registriert: 30.12.2004 15:31:07
Wohnort: Wegberg

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von schwedenmann » 05.07.2023 12:27:31

Hallo

Zeile 2 ist Mumpitz, dann Zeile 3 oder 4, Zeile 4 ist falsch, vergl. mit meiner vorletzten Antwort (...--set-root...),, und wenn es keine Symlinks sind (Zeile 5 und 6), dann hast du bei jedem kernel update in dem System ja wieder das Gefummel in den "führenden" grub.
das ist kein Mumpitz,da ich 2 Festplatten im System habe,die bei OS-prober je nachdem ob sda odr sdb als erstes initialisiert wrden,dann falsche menüeinträge generieren die dann beim Booten ins leere laufen.
Os-prober geneirert menüeintäge per dev nicht per UUID,weshalb ich auf custom_40 umgestellt habe. Die letzen Zeilen bewirken,das auf jeden fall die UUID von / gebootet wird,auch wenn sda und sdb mal wieder vertauscht sind.


Auf jeden Fall funktionren die Einträge,egal auf welcher Platte sich fürs Bios und fürs OS / befindet.


mfg
schwedenmann

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 05.07.2023 12:46:09

schwedenmann hat geschrieben: ↑ zum Beitrag ↑
05.07.2023 12:27:31
...
das ist kein Mumpitz,da ich 2 Festplatten im System habe,die bei OS-prober je nachdem ob sda odr sdb als erstes initialisiert wrden,dann falsche menüeinträge generieren die dann beim Booten ins leere laufen.
Diesen Eintrag (insmod part_msdos) habe ich auch, sowhol bei den von Grub selbst generierten Einträgen der Grub-Systempartion als auch bei den os-prober Einträgen. Ob und wo das eventuell explizit konfiguriert wurde weiß ich nicht mehr. Ich glaube mich jedoch zu erinnern, dass dies für das Erkennen der Reihenfolge der Platten mitverantwortlich ist, bin aber nicht sicher.

schwedenmann hat geschrieben: ↑ zum Beitrag ↑
05.07.2023 12:27:31
Os-prober geneirert menüeintäge per dev nicht per UUID,
...
Das kann ich allerdings nicht bestätigen. os-prober generiert bei mir Einträge mit UUID.
EDIT:
Damit ist dieser insmod Eintrag allerdings wirklich überflüssig. Getestet habe ich das nicht, jedoch folgt das aus der Logik der UUID.
/EDIT

Und jedenfalls ist auch richtig, dass die Variante mit Symlinks die sinnvollere ist um beim Kernelupdate nicht wieder Hand anlegen zu müssen. Funktioniert ja auch hier ...

Bemerkenswert ist auch, dass die von Grub generierten Einträge der Grub-Systempartition einen Rattenschwanz von Zusatzoptionen mit einbaut die alle in der 40_custom fehlen. Das mag daran liegen dass die Kernel der Grub-Systempartition ja von siduction für ein breites Anwendungsspektrum konfiguriert wurden und vllt einiges hier auch in meinem Fall überflüssig ist?

Im Ergebnis funktioneren alle Einträge und ein update Grub listet alles was ich will ohne dass os-prober bemüht wird. Das war mein Ziel, und das ist erreicht.
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

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

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von grubenlicht » 05.07.2023 15:26:24

also...
insmod... ist etwas, das grub braucht (und sehr viel davon bereits im core.img enthalten), wenn das zu startende System etwas braucht, dann komm das in die/etc/default/grub.
Das grub Menü braucht zum Starten eines Linux
1. menuentry plus Titel
2. Verweis auf das device, auf welchem der kernel und das initrd Image liegen
3.linux ... vorzugsweise auf den Symlink, mit device Angabe für "/"
4. dito für initrd
PUNKT
Alle device Angaben vorzugsweise in UUID.
Was os-prober "veranstaltet", steht auf einem anderen Blatt.

rjh

Re: update-grub: partiton ohne OS-prober einbinden

Beitrag von rjh » 05.07.2023 21:18:53

michaa7 hat geschrieben: ↑ zum Beitrag ↑
04.07.2023 17:54:24
Es funktioniert doch. Der Eintrag wird in die /boot/grub/grub.cfg übernommen und funktionert. Er wird aber auf der Bildschirmausgabe beim Ausführen von update-grub ***nicht*** angezeigt .... was mindestens verwirrend wenn nicht ein Bug ist.
Das ist halt so, da kommt kein "Adding ..."

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 06.07.2023 00:53:43

rjh hat geschrieben: ↑ zum Beitrag ↑
05.07.2023 21:18:53
...
Das ist halt so,
... mein Urgroßvater hätte es nicht besser formulieren können
rjh hat geschrieben: ↑ zum Beitrag ↑
05.07.2023 21:18:53
da kommt kein "Adding ..."
LOL, stimmt, gut beobachtet. Danke für die Bestätigung meiner Wahrnehmung. Jetzt sind wir sicher es ist so wie ich es beschrieben habe. :THX:
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

rjh

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von rjh » 06.07.2023 07:42:01

Ich hätte besser darauf verzichtet, wenn das bei Dir so ankommt. Mich hat nur gestört, dass Du hier von einem "Bug" geredet hast.

michaa7
Beiträge: 4636
Registriert: 12.12.2004 00:46:49
Lizenz eigener Beiträge: MIT Lizenz

Re: (gelöst) update-grub: partiton ohne OS-prober einbinden

Beitrag von michaa7 » 06.07.2023 08:22:42

rjh hat geschrieben: ↑ zum Beitrag ↑
06.07.2023 07:42:01
... Mich hat nur gestört, dass Du hier von einem "Bug" geredet hast.
Ja warum denn auch nicht?

Ich lasse etwas generieren und ein Teil dessen wird mir nicht angezeigt obwohl es anschließend Teil des Ergebnisses ist? Das ist verwirrend wenn nicht ein Bug.

EDIT:
Gut es ist kein Grub Bug. update-grub arbeiten nur die scripte (?) in /etc/grub.d ab . Wenn man den output im Terminal sehen will muss man *40_custom entsprechend gestalten.
Irgendwie müsste man wohl aus diesem "$0" einen sinnvollen Teil, z.B menuentry '<name>', extrahieren und per "echo" anzeigen lassen ... aber das überfordert mich. Das kommt auf die TODO Liste für's nächste Leben ...
gruß

michaa7

-------------------------------
Menschen ändern gelegentlich ihre Ansichten, aber nur selten ihre Motive. (Oskar Negt)

Antworten