Grub Boot Entry für Bazzite OS

Ich benutze OpenSuse Tumbleweed als meine Main Distro. Aktuell teste ich Bazzite OS, um ggf. Windows fürs Gaming zu ersetzen. Während Windows und Pop OS sich mit OS Prober problemlos als entry hinzufügen liessen, sieht es bei bazzite anders aus.

Anhand dieses Blogposts habe ich einige Gründe gefunden, wieso dies bei einer Fedora Distro nicht funktioniert. Anschliessend habe ich mithilfe des Grub Manuals und etwas AI folgenden Custom Boot entry kreiert:

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
#!/bin/sh

set menu_color_normal="white"
set menu_color_highlight="#87CEEB"

function recordfail {
  set timeout=30
}

insmod part_msdos
insmod ext2
set root='hd0,msdos1'
set prefix=($root)/boot/grub2/i386-efi

menuentry "Bazzite" {
    insmod btrfs
    set root='sda2'
    set prefix=($root)/boot/grub2/x86_64-efi
    echo 'Loading Bazzite... '
    linux /boot/ostree/default-246c311f97dd7f8d20d40aee2519d0dd5e625b1c60d62924ba3ed320b7867041/vmlinuz-6.12.8-201.bazzite.fc41.x86_64 root=/dev/sda2 ro quiet
    initrd /boot/ostree/default-246c311f97dd7f8d20d40aee2519d0dd5e625b1c60d62924ba3ed320b7867041/initramfs-6.12.8-201.bazzite.fc41.x86_64.img
}

Damit habe ich einen Menüeintrag, allerdings produziert dieser zwei Fehler: no server specified & need to load kernel first.

In Bazzite finde ich zwei Orte, welche nach meinem Verständniss zum booten benutzt werden (jeweils mit Kernel und initramfs):

  1. /boot/ostree/default-246c311f97dd7f8d20d40aee2519d0dd5e625b1c60d62924ba3ed320b7867041/
  2. boot/ostree/default-752429b0e866914beba367177ca36a4c1315dd2253ff224529ef7b6ae7a32530/

Anbei noch meine lsblk Ausgabe:

NAME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda               8:0    0 476.9G  0 disk 
├─sda1            8:1    0   600M  0 part 
├─sda2            8:2    0     1G  0 part 
└─sda3            8:3    0 475.4G  0 part 
sdb               8:16   0 447.1G  0 disk 
├─sdb1            8:17   0  1022M  0 part 
├─sdb2            8:18   0     4G  0 part 
├─sdb3            8:19   0 438.1G  0 part 
└─sdb4            8:20   0     4G  0 part 
sdc               8:32   1  28.9G  0 disk 
└─sdc1            8:33   1  28.9G  0 part /run/media/node-42/EXCHANGE
nvme1n1         259:0    0   1.8T  0 disk 
├─nvme1n1p1     259:2    0   100M  0 part 
├─nvme1n1p2     259:3    0    16M  0 part 
├─nvme1n1p3     259:4    0   1.8T  0 part 
└─nvme1n1p4     259:5    0   562M  0 part 
nvme0n1         259:1    0 931.5G  0 disk 
├─nvme0n1p1     259:6    0     1G  0 part /boot/efi
└─nvme0n1p2     259:7    0 930.5G  0 part 
  ├─system-swap 254:0    0     2G  0 lvm  [SWAP]
  └─system-root 254:1    0 928.5G  0 lvm  /var
                                          /home
                                          /root
                                          /boot/grub2/x86_64-efi
                                          /boot/grub2/i386-pc
                                          /usr/local
                                          /srv
                                          /opt
                                          /.snapshots
                                          /

Wo liegen meine Fehler? Braucht es Ergänzungen oder einen anderen Ansatz bei Bazzite, weil es eine immutable Distro ist?

Zusätzliche Info, lsblk Ausgabe von bazzite OS (ggf. hilfreich als die aus Tumbleweed):

AME            MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda               8:0    0 476.9G  0 disk
├─sda1            8:1    0   600M  0 part /boot/efi
├─sda2            8:2    0     1G  0 part /boot
└─sda3            8:3    0 475.4G  0 part /var/home
                                          /var
                                          /sysroot/ostree/deploy/default/var
                                          /usr
                                          /etc
                                          /
                                          /sysroot
sdb               8:16   0 447.1G  0 disk
├─sdb1            8:17   0  1022M  0 part
├─sdb2            8:18   0     4G  0 part
├─sdb3            8:19   0 438.1G  0 part
└─sdb4            8:20   0     4G  0 part
sdc               8:32   1  28.9G  0 disk
└─sdc1            8:33   1  28.9G  0 part
zram0           252:0    0     4G  0 disk [SWAP]
nvme1n1         259:0    0   1.8T  0 disk
├─nvme1n1p1     259:1    0   100M  0 part
├─nvme1n1p2     259:2    0    16M  0 part
├─nvme1n1p3     259:3    0   1.8T  0 part
└─nvme1n1p4     259:4    0   562M  0 part
nvme0n1         259:5    0 931.5G  0 disk
├─nvme0n1p1     259:6    0     1G  0 part
└─nvme0n1p2     259:7    0 930.5G  0 part
  ├─system-swap 253:0    0     2G  0 lvm
  └─system-root 253:1    0 928.5G  0 lvm

Bitte, es ist nur eine Zeile mehr am Anfang davon was du da zeigst: die Zeile mit dem Prompt und das Kommando. Ganz einfach (und meiner Meinung nach ganz logisch) und spart dir das typen von Sachen wie “Anbei …”.

Und das gibt Andern das Vertrauen das sie wissen was (und wer und wo) du da preziese gemacht hast.

Danke für die Rückmeldung, werde ich gerne so umsetzen. Was Hilfeanfragen zu Linux angeht, bin ich noch im Lernprozess, meinte ich hätte an alles gedacht:).

Fürs Vertrauen: Benutze Linux seit ca. 2 Jahren und dieses Jahr möchte ich tiefer einsteigen, sprich mehr als nur Packetverwaltung und ein paar einfache Befehle übers Terminal. Habe mit Bash und Terminal im Allgemeinen gestartet.

Als Nachschlagewerk neben online und etwas AI, benutze ich das Standartwerk und die Kommandoreferenz von M. Kofler. Zu Bash suche ich noch nach einem guten MooC Kurs zum starten.

Zum Problem:

Für Grub gibt es das Packet libostree-grub2, welches ich in Tumbleweed nachinstalliert habe, vermute, dass das benötigt wird (GRUB2 integration for OSTree gem. Packetmanager).

Weiter werde ich mir die die Grub Config von Bazzite anschauen, um zu verstehen, wie das mit der ostree Einbindung genau funktioniert.

Zu bash Kurs bracht man nicht spezifik auf bash (Borne again shell) zu begrenzen. Jede sh (Bourne shell) Kurs trifft da zu.

Stimmt, habe auch fish installiert, und kann so flexibel hin und her wechseln und vergleichen :slightly_smiling_face:.

Ja, die Doc. habe ich mir auch schon angeschaut. Hilft mir nur bedingt weiter, da sie davon ausgeht, dass Bazzite die Main Distro ist. Habe ich dann nicht ein ähnliches Problem, um Tumbleweed mit Snapshots sauber in die Bazzite Grub Config einzubinden?

Stelle ich mir ggf. schwerer vor, wegen der immutability von Bazzite aber vielleicht täusche ich mich, werde ich ebenfalls mal testen.

Ich habe noch eine grub config mit chainloader getestet, was nicht funktioniert hat. Danach habe ich die Suche nach einer Lösung innerhalb von Grub aufgegeben und das Problem auf andere weise gelöst: rEFInd :slightly_smiling_face:.

Funktioniert tadellos und bietet Unmengen von Anpassungsmöglichkeiten, bisher habe ich es noch nicht ausser Funktion gesetzt :sweat_smile:.