Linux Mint 22.1 | Grub2 richtig konfigurieren

  • Distrowahl
    Linux Mint

    Nachdem ich jedes Mal wie ein bekloppter googeln muss, um das Grubmenü zu ändern. Hier mal für alle (und für mich als reminder) die Lösung, da Linux Mint eigene Schritte zu gehn scheint.

    Betriebssystem: Linux Mint 22.1
    Desktop: Cinnamon

    In jeder Anleitung heißt es, dass man dort die Werte ändern muss.

    /etc/default/grub

    Beispielwerte:

    Code
    GRUB_DEFAULT=10
    GRUB_TIMEOUT_STYLE=hidden
    GRUB_TIMEOUT=0

    usw.
    Was einem jedoch niemand sagt... die Werte werden mit

    sudo update-grub

    von einer anderen Datei, manchmal sogar von mehreren anderen überschrieben. Womit in der finalen

    /boot/grub/grub.cfg

    immer noch die alten Werte stehen habt, die man nicht möchte. Um das zu verhindern, müsst ihr folgende Datei editieren und mit euren Wunschwerten füllen.

    /etc/grub.d/40_custom

    Dafür einfach ganz unten anhängen:

    Code
    GRUB_DEFAULT=10
    GRUB_TIMEOUT_STYLE=hidden
    GRUB_TIMEOUT=0

    wenn ihr jetzt

    sudo update-grub

    tippt, werden alle configdateien von grub neu geschrieben, jedoch überschreibt der Inhalt von 40_custom alle Werte, die aus anderen Dateien kommen.

    Wenn ihr jetzt neu startet, ist euer Bootmenü von Grub so wie ihr es haben wolltet.

    Edited once, last by Kai Thanner (May 19, 2025 at 9:14 PM).

  • DenalB May 19, 2025 at 8:55 PM

    Changed the title of the thread from “Linux Mint 22.1 | Grub2 richtig configurieren” to “Linux Mint 22.1 | Grub2 richtig konfigurieren”.
  • Dass sollte erheblich nicht der Fall sein, denn was in /etc/default/grub angegeben wird sollte zählen. Wenn dass wirklich überschrieben wird dann ist es ein BUG.

    Warum hast du timeout 2x hintereinander in der config stehen?

  • So oder so, es ist ein Problem, dass mich seit einem Jahr auf verschiedenen Geräten verfolgt und immer mit Linux Mint.


    Öhm, mit dem Timeout ist ein Kopierfehler meinerseits... ist hiermit gefixt.

  • Was einem jedoch niemand sagt... die Werte werden mit

    sudo update-grub

    von einer anderen Datei, manchmal sogar von mehreren anderen überschrieben. Womit in der finalen

    /boot/grub/grub.cfg

    immer noch die alten Werte stehen habt, die man nicht möchte. Um das zu verhindern, müsst ihr folgende Datei editieren und mit euren Wunschwerten füllen.

    Also habe das aus Interesse gerade mal mit Mint 21.3, Mate probiert und der beschriebene Fehler tritt nicht auf. Die geänderten Werte der /etc/default/grub Datei werden nach dem sudo update-grub immer in die /boot/grub/grub.cfg geschrieben. Ich kann mir nicht vorstellen, dass das unter Cinnamon anders sein soll.

    Linux Mint Mate auf ASUS Zenbook Flip UX360U; Armbian auf Banana Pi

  • Ich hab das Problem auch erst seit der Version 22. Bin mir allerdings nicht sicher ob erst mit 22.1 oder schon mit 22.0

    Nicht nur bei meinem PC, sondern inzwischen bei 4

  • Ich bin grad nochmal an der Thematik dran um den Grund für das Verhalten zu analysieren... Wollte mein dual Boot System von -1 auf 5 setzen da ich Windows kaum bis gar nicht mehr brauche... Dabei fiel mir folgendes auf und da ist auch der Unterschied Linux mint zu allen anderen Distros.

    Irgendwoher bezieht er noch andere Werte. set timeout=5 kommt von mir. Aber da steht noch der Mint Standard mit 30 mit drin und dann auch noch mehrfach.


    Einen konnte ich schon mal Identifizieren. 30_os-prober setzt einen Timeout von 10


    Die Header hatte ich noch vergessen und da steckt der ware Übeltäter wie mir scheint


    Ok, oder auch nicht... Eine genauere Analyse der Datei zeigt if <-> else Anweisungen ala:

    Das sollte also soweit ok sein... Aber woher kommen dann die ganzen set timeout einträge?


    Ok, die Analyse zusammen mit chatGPT zeigt, dass der Fehler wohl von meinem Dateisystem (BTRFS) und EFI kommt.

    Aussage chatGPT:

    Code
    Wenn recordfail_broken=1 (→ also recordfail kann nicht gespeichert werden, z. B. weil du btrfs nutzt), wird dieser zusätzliche Timeout-Block eingefügt:
    Code
    if [ $grub_platform = efi ]; then
      set timeout=30
      ...
    fi

    Nun ist die Frage, wie löst man das sauber auf?


    Ok. Folgende Lösung:

    Da bei Dual Boot, EFI-Systemen und BTRFS oder einer Kombination daraus immer ein recordfail_broken=1 gesetzt wird (Meines erachtens ein Bug im grub 00_header oder der verarbeitung dahinter) und ich nicht vorhatte, grub "umzuprogrammieren" 😉 hier nun ein einfacher Weg die Zeit zu erzwingen.

    sudo nano /etc/default/grub

    Code
    GRUB_RECORDFAIL_TIMEOUT=5

    Dies ans Ende setzen. Warum und weshalb wirkt das?

    Durch recordfail werden Einstellungen immer mit timeout=30 überschrieben. Es sei denn wir geben etwas anderes vor. Mit GRUB_RECORDFAIL_TIMEOUT=5 überschreiben wir den Standardwert bei recordfail mit Timeout=5, die Zeit muss natürlich den Bedürfnissen angepasst werden. Wenn kein Timer gewünscht ist also gewohnt -1

    Am Ende wie gewohnt die Bootconfig schreiben mit

    sudo update-grub

    Edited 8 times, last by Kai Thanner: Ein Beitrag von Kai Thanner mit diesem Beitrag zusammengefügt. (June 13, 2025 at 2:44 PM).

  • Die Default Werte sollten unter

    /etc/Default/grub

    zu finden sein.

    Nachdem die änderungen durchgeführt wurden muss noch eine neue boot.cfg erstellt werden mit dem Befehl

    Code
    update-grub

    In der /boot/grub/grub.cfg sollte nichts geändert werden (bzw ist es sinnlos), da bei jedem neuen Kernel eine neue boot.cfg generiert wird um den neuen Kernel einzutragen.

  • Die grub.cfg wird kreiert, und es macht kein Sinn diese zu ändern, das ist richtig. Es geht ja um die Konfig-Dateien von der die grub.cfg erstellt wird. Wenn du meinen Beitrag liest, wirst du merken, dass es Systemkonfigurationen gibt, bei denen die Werte der /etc/default/grub überschrieben werden.

  • Ok, das ist jetzt Spannend... Ich hab mich in der VirtualBox ausgetobt. Dabei folgendes Ergebnis erzielt

    Linux Mint 22.1 Cinnamon Edition:

    ohne EFI + ext4: /etc/default/grub geschrieben, update-grub = funktioniert ✅
    ohne EFI + btrfs: /etc/default/grub geschrieben, update-grub = funktioniert ✅
    mit EFI + ext4: /etc/default/grub geschrieben, update-grub = funktioniert ✅
    mit EFI + btrfs: /etc/default/grub geschrieben, update-grub = funktioniert nicht 🚫

    Grub hat wohl keine Schreibrechte auf Btrfs mit EFI. Daher wird hier der "recordfail" ausgelöst.

    So, Forschung für die Nachwelt abgeschlossen 😜

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!