Grub-Menü und Optionen ohne Neustart anzeigen?

12

Ich möchte das grubMenü über die Befehlszeile anzeigen . Wählen Sie auch eine Grub-Boot-Menüoption und drücken Sie, um Enterzu sehen, welche Pre-Kernel-Treiber geladen werden und welche Boot-Parameter beim Laden des Kernels übergeben werden.

Die Gründe, dies von der Kommandozeile aus zu tun:

  • Ein Neustart zum Anzeigen des grubMenüs dauert einige Zeit.
  • Es ist umständlich, ein Bild des grubMenüs zu machen und das Bild auf Websites zu veröffentlichen. Es ist einfacher, einen Screenshot zu erstellen, wenn Ubuntu läuft.
  • Die editMenüoption mit eund ein Bild aufzunehmen ist oft schwierig, da der Bildschirm schwer zu lesen ist. Mit dieser Funktion können Sie stattdessen kopieren und einfügen.
  • Mit dieser Funktion ist es möglicherweise einfacher, alle Kernelversionen als apt list --installed | grep linux-imageoder anzuzeigen ls /boot/vml*.
  • Das schnelle Erkennen der Grub-Menünummer ist für grub-rebootund grub-set-defaultBefehle wertvoll .

Wie kann ich das Grub-Menü von der Befehlszeile aus malen, interne Grub-Menüeintragsnummern anzeigen und die Boot-Parameter für eine bestimmte Option anzeigen?

WinEunuuchs2Unix
quelle

Antworten:

12

Aktualisiert am 7. Mai 2018

Die Entwicklung des Skripts: Bash - Skript Klon Ubuntu auf neue Partition für den Test 18.04 LTS Upgrade entdeckte ich Ihnen einige lächerlich lange Menüoptionen erhalten, um das Menü zu verleumden Ursachen:

4>8  Ubuntu, with Linux 4.14.30-041430-generic (recovery mode) (on /dev/nvme0n1p8)

Dies wurde heute behoben, indem Zeilen mit mehr als 68 Zeichen abgeschnitten wurden.

Aktualisiert am 5. April 2018

Dieses Update enthält grub-menu.sheine viel bessere Version als die vorherige Antwort (die unten noch verfügbar ist). Das neue Grub-Menü bietet:

  • Zeigt die Menüeintragsnummern für Gruppe 2 an. dh 0, 1, 1>0, 1>1... 2,3
  • Standard-Kurzversion ohne (upstart)und (recover mode)Untermenüoptionen können eingestellt werden.
  • Parameter 1 kann als shortoder longzum Überschreiben der Standardeinstellung übergeben werden.
  • Spaltenüberschriften dynamisch formatiert basierend auf shortoder longEinstellung.

Farbbildschirm (kurze Version)

grub-menu.sh

Text Screenshot (lange Version)

Grub Version: 2.02~beta2-36ubuntu3.15


        ┌─────────┤ Use arrow, page, home & end keys. Tab toggle option ├──────────┐
        │ Menu No. --------------- Menu Name ---------------                       │ 
        │                                                                          │ 
        │     0    Ubuntu                                                     ↑    │ 
        │     1    Advanced options for Ubuntu                                ▮    │ 
        │     1>0  Ubuntu, with Linux 4.14.31-041431-generic                  ▒    │ 
        │     1>1  Ubuntu, with Linux 4.14.31-041431-generic (upstart)        ▒    │ 
        │     1>2  Ubuntu, with Linux 4.14.31-041431-generic (recovery mode)  ▒    │ 
        │     1>3  Ubuntu, with Linux 4.14.30-041430-generic                  ▒    │ 
        │     1>4  Ubuntu, with Linux 4.14.30-041430-generic (upstart)        ▒    │ 
        │     1>5  Ubuntu, with Linux 4.14.30-041430-generic (recovery mode)  ▒    │ 
        │     1>6  Ubuntu, with Linux 4.14.27-041427-generic                  ▒    │ 
        │     1>7  Ubuntu, with Linux 4.14.27-041427-generic (upstart)        ▒    │ 
        │     1>8  Ubuntu, with Linux 4.14.27-041427-generic (recovery mode)  ▒    │ 
        │     1>9  Ubuntu, with Linux 4.14.24-041424-generic                  ▒    │ 
        │     1>10 Ubuntu, with Linux 4.14.24-041424-generic (upstart)        ▒    │ 
        │     1>11 Ubuntu, with Linux 4.14.24-041424-generic (recovery mode)  ▒    │ 
        │     1>12 Ubuntu, with Linux 4.14.23-041423-generic                  ▒    │ 
        │     1>13 Ubuntu, with Linux 4.14.23-041423-generic (upstart)        ↓    │ 
        │                                                                          │ 
        │                                                                          │ 
        │                   <Display Grub Boot>        <Exit>                      │ 
        │                                                                          │ 
        └──────────────────────────────────────────────────────────────────────────┘ 

grub-menu.sh Bash-Skript

Frühere Versionen grub-display.shund grub-display-lite.shbenötigt viele Tweaking Optionen im Code. grub-menu.shEs gibt nur eine Option zum Optimieren:

# Default for hide duplicate and triplicate options with (upstart) and (recovery mode)?
HideUpstartRecovery=false

Stellen Sie den Wert auf trueoder false.

Das Standardformat kann überschrieben werden, wenn das Skript folgendermaßen aufgerufen wird:

grub-menu.sh short

oder:

grub-menu.sh long

Der Code:

#!/bin/bash

# NAME: grub-menu.sh
# PATH: $HOME/bin
# DESC: Written for AU Q&A: /ubuntu//q/1019213/307523
# DATE: Apr 5, 2018. Modified: May 7, 2018.

# $TERM variable may be missing when called via desktop shortcut
CurrentTERM=$(env | grep TERM)
if [[ $CurrentTERM == "" ]] ; then
    notify-send --urgency=critical "$0 cannot be run from GUI without TERM environment variable."
    exit 1
fi

AllMenusArr=()      # All menu options.
# Default for hide duplicate and triplicate options with (upstart) and (recovery mode)?
HideUpstartRecovery=false
if [[ $1 == short ]] ; then
    HideUpstartRecovery=true    # override default with first passed parameter "short"
elif [[ $1 == long ]] ; then
    HideUpstartRecovery=false   # override default with first passed parameter "long"
fi
SkippedMenuEntry=false  # Don't change this value, automatically maintained
InSubMenu=false     # Within a line beginning with `submenu`?
InMenuEntry=false   # Within a line beginning with `menuentry` and ending in `{`?
NextMenuEntryNo=0   # Next grub internal menu entry number to assign
# Major / Minor internal grub submenu numbers, ie `1>0`, `1>1`, `1>2`, etc.
ThisSubMenuMajorNo=0
NextSubMenuMinorNo=0
CurrTag=""          # Current grub internal menu number, zero based
CurrText=""         # Current grub menu option text, ie "Ubuntu", "Windows...", etc.
SubMenuList=""      # Only supports 10 submenus! Numbered 0 to 9. Future use.

while read -r line; do
    # Example: "           }"
    BlackLine="${line//[[:blank:]]/}" # Remove all whitespace
    if [[ $BlackLine == "}" ]] ; then
        # Add menu option in buffer
        if [[ $SkippedMenuEntry == true ]] ; then
            NextSubMenuMinorNo=$(( $NextSubMenuMinorNo + 1 ))
            SkippedMenuEntry=false
            continue
        fi
        if [[ $InMenuEntry == true ]] ; then
            InMenuEntry=false
            if [[ $InSubMenu == true ]] ; then
                NextSubMenuMinorNo=$(( $NextSubMenuMinorNo + 1 ))
            else
                NextMenuEntryNo=$(( $NextMenuEntryNo + 1 ))
            fi
        elif [[ $InSubMenu == true ]] ; then
            InSubMenu=false
            NextMenuEntryNo=$(( $NextMenuEntryNo + 1 ))
        else
            continue # Future error message?
        fi
        # Set maximum CurrText size to 68 characters.
        CurrText="${CurrText:0:67}"
        AllMenusArr+=($CurrTag "$CurrText")
    fi

    # Example: "menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu" ...
    #          "submenu 'Advanced options for Ubuntu' $menuentry_id_option" ...
    if [[ $line == submenu* ]] ; then
        # line starts with `submenu`
        InSubMenu=true
        ThisSubMenuMajorNo=$NextMenuEntryNo
        NextSubMenuMinorNo=0
        SubMenuList=$SubMenuList$ThisSubMenuMajorNo
        CurrTag=$NextMenuEntryNo
        CurrText="${line#*\'}"
        CurrText="${CurrText%%\'*}"
        AllMenusArr+=($CurrTag "$CurrText") # ie "1 Advanced options for Ubuntu"

    elif [[ $line == menuentry* ]] && [[ $line == *"{"* ]] ; then
        # line starts with `menuentry` and ends with `{`
        if [[ $HideUpstartRecovery == true ]] ; then
            if [[ $line == *"(upstart)"* ]] || [[ $line == *"(recovery mode)"* ]] ; then
                SkippedMenuEntry=true
                continue
            fi
        fi
        InMenuEntry=true
        if [[ $InSubMenu == true ]] ; then
            : # In a submenu, increment minor instead of major which is "sticky" now.
            CurrTag=$ThisSubMenuMajorNo">"$NextSubMenuMinorNo
        else
            CurrTag=$NextMenuEntryNo
        fi
        CurrText="${line#*\'}"
        CurrText="${CurrText%%\'*}"

    else
        continue    # Other stuff - Ignore it.
    fi

done < /boot/grub/grub.cfg

LongVersion=$(grub-install --version)
ShortVersion=$(echo "${LongVersion:20}")
DefaultItem=0

if [[ $HideUpstartRecovery == true ]] ; then
    MenuText="Menu No.     ----------- Menu Name -----------"
else
    MenuText="Menu No. --------------- Menu Name ---------------"
fi

while true ; do

    Choice=$(whiptail \
        --title "Use arrow, page, home & end keys. Tab toggle option" \
        --backtitle "Grub Version: $ShortVersion" \
        --ok-button "Display Grub Boot" \
        --cancel-button "Exit" \
        --default-item "$DefaultItem" \
        --menu "$MenuText" 24 76 16 \
        "${AllMenusArr[@]}" \
        2>&1 >/dev/tty)

    clear
    if [[ $Choice == "" ]]; then break ; fi
    DefaultItem=$Choice

    for (( i=0; i < ${#AllMenusArr[@]}; i=i+2 )) ; do
        if [[ "${AllMenusArr[i]}" == $Choice ]] ; then
            i=$i+1
            MenuEntry="menuentry '"${AllMenusArr[i]}"'"
            break
        fi
    done

    TheGameIsAfoot=false
    while read -r line ; do
        if [[ $line = *"$MenuEntry"* ]]; then TheGameIsAfoot=true ; fi
        if [[ $TheGameIsAfoot == true ]]; then
            echo $line
            if [[ $line = *"}"* ]]; then break ; fi
        fi
    done < /boot/grub/grub.cfg

    read -p "Press <Enter> to continue"

done

exit 0

Frühere Versionen (nicht empfohlen)

Unten finden Sie die ursprüngliche Antwort, bei der die Menüeintragsnummern dem Grub 1-Format folgten.

grub-display.sh Zeigt die Optionen und Parameter des Grub-Menüs an

Ohne auf Anwendungen von Drittanbietern angewiesen zu sein, können Sie ein Bash-Skript verwenden, um das grubMenü und die Startparameter für eine bestimmte Option anzuzeigen . Die Boot-Parameter sind mehr als nur die cat /proc/cmdlineWerte. Sie enthalten auch die Treiber, die vor dem Booten von Linux geladen wurden.

grub-display.sh Bash-Skript

Hier ist die vollständige Programmliste, die Sie kopieren und einfügen können:

#!/bin/bash

# NAME: grub-display.sh
# PATH: $HOME/bin
# DESC: Written for AU Q&A: /ubuntu//q/1019213/307523
# DATE: Mar 24, 2018. Modified: Mar 26, 2018.

# $TERM variable may be missing when called via desktop shortcut
CurrentTERM=$(env | grep TERM)
if [[ $CurrentTERM == "" ]] ; then
    notify-send --urgency=critical "$0 cannot be run from GUI without TERM environment variable."
    exit 1
fi

# Must have the dialog package. On Servers, not installed by default
command -v dialog >/dev/null 2>&1 || { echo >&2 "dialog package required but it is not installed.  Aborting."; exit 99; }

# Version without upstart and recovery options displayed
#awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
#        | grep -v upstart | grep -v recovery > ~/.grub-display-menu

# Version with upstart and recovery options displayed
awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
        > ~/.grub-display-menu

MenuArr=()

while read -r line; do 
    MenuNmbr=${line%% *}
    MenuName=${line#* }
    MenuArr+=($MenuNmbr "$MenuName")
done < ~/.grub-display-menu
rm ~/.grub-display-menu

LongVersion=$(grub-install --version)
ShortVersion=$(echo "${LongVersion:20}")
DefaultItem=0

while true ; do

    Choice=$(dialog \
        --title "Use arrow, page, home & end keys. Tab toggle option" \
        --backtitle "Grub Version: $ShortVersion" \
        --ok-label "Display Grub Boot" \
        --cancel-label "Exit" \
        --default-item "$DefaultItem" \
        --menu "Menu Number       ----------- Menu Name ----------" 24 76 16 \
        "${MenuArr[@]}" \
        >/dev/tty)

    clear
    if [[ $Choice == "" ]]; then break ; fi
    DefaultItem=$Choice

    for (( i=0; i < ${#MenuArr[@]}; i=i+2 )) ; do
        if [[ "${MenuArr[i]}" == $Choice ]] ; then
            i=$i+1
            MenuEntry="menuentry '"${MenuArr[i]}"'"
            break
        fi
    done

    TheGameIsAfoot=false
    while read -r line ; do
        if [[ $line = *"$MenuEntry"* ]]; then TheGameIsAfoot=true ; fi
        if [[ $TheGameIsAfoot == true ]]; then
            echo $line
            if [[ $line = *"}"* ]]; then break ; fi
        fi
    done < /boot/grub/grub.cfg

    read -p "Press <Enter> to continue"

done

exit 0

Hinweis für Benutzer von Ubuntu Server

Dieses Bash-Skript wurde für Ubuntu Desktop entwickelt. Für Ubuntu Server und andere Linux-Distributionen, auf denen dialogstandardmäßig kein Paket installiert ist, grub-display-lite.shist unten ein anderes Skript mit dem Namen enthalten. Diese Version verwendet whiptailstatt dialog.

Reduzierung der Menügröße um 66%

Um die angezeigte Liste der Menüoptionen zu verkürzen, können Sie die Optionen (upstart)und entfernen (recovery). Dazu entfernen Sie diese Zeilen aus dem Kommentar:

# Version without upstart and recovery options displayed
awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
        | grep -v upstart | grep -v recovery > ~/.grub-display-menu

Wenden Sie dann Kommentare auf diese Zeilen an:

# Version with upstart and recovery options displayed
#awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
#        > ~/.grub-display-menu

Screenshots

So sieht es aus, wenn es über die Befehlszeile aufgerufen wird. Leider konnte ich das Menü nicht kopieren und einfügen und musste folgendes verwenden Print Screen:

grub-display.sh.png

Deaktivieren Sie die Mausunterstützung für Copy & Paste

 Grub Version: 2.02~beta2-36ubuntu3.15
 ──────────────────────────────────────────────────────────────────────────────────────────
       ┌──────────Use arrow, page, home & end keys. Tab toggle option─────────────┐
        Menu Number  ----------- Menu Name ----------                              
        ┌──────────────────────────────────────────────────────────────────────┐   
            0   Ubuntu                                                           
            1   Ubuntu, with Linux 4.14.30-041430-generic                        
            2   Ubuntu, with Linux 4.14.30-041430-generic (upstart)              
            3   Ubuntu, with Linux 4.14.30-041430-generic (recovery mode)        
            4   Ubuntu, with Linux 4.14.27-041427-generic                        
            5   Ubuntu, with Linux 4.14.27-041427-generic (upstart)              
            6   Ubuntu, with Linux 4.14.27-041427-generic (recovery mode)        
            7   Ubuntu, with Linux 4.14.24-041424-generic                        
            8   Ubuntu, with Linux 4.14.24-041424-generic (upstart)              
            9   Ubuntu, with Linux 4.14.24-041424-generic (recovery mode)        
            10  Ubuntu, with Linux 4.14.23-041423-generic                        
            11  Ubuntu, with Linux 4.14.23-041423-generic (upstart)              
            12  Ubuntu, with Linux 4.14.23-041423-generic (recovery mode)        
            13  Ubuntu, with Linux 4.14.21-041421-generic                        
            14  Ubuntu, with Linux 4.14.21-041421-generic (upstart)              
            15  Ubuntu, with Linux 4.14.21-041421-generic (recovery mode)        
        └────↓(+)──────────────────────────────────────────────────────16%─────┘   
                                                                                   
       ├──────────────────────────────────────────────────────────────────────────┤  
                    <Display Grub Boot>       <      Exit       >                  
       └──────────────────────────────────────────────────────────────────────────┘  

Wenn die Standard-Mausunterstützung aktiviert ist, können Sie den Bildschirm nicht in die Zwischenablage kopieren, sondern müssen ihn Print Screenfür einen grafischen Bildschirmschnappschuss verwenden. Um das Kopieren und Einfügen zu unterstützen, müssen Sie die Mausunterstützung deaktivieren, indem Sie nach den folgenden Zeilen suchen:

    --default-item "$DefaultItem" \
    --no-mouse \
    --menu "Menu Number       ----------- Menu Name ----------" 24 76 16 \

Das Argument --no-mousewurde unten eingefügt --default-item. Dies bedeutet, dass Sie die Mausunterstützung verlieren, aber eine bessere Auflösung erzielen und in die Zwischenablage kopieren können, indem Sie Text markieren und Ctrl+ drücken C.

Anzeigen der Boot-Parameter von Grub

Verwenden Sie die Navigationstasten, um eine Option zu markieren, und drücken Sie Enter, um die Startparameter anzuzeigen:

menuentry 'Ubuntu, with Linux 4.14.27-041427-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.14.27-041427-generic-advanced-f3f8e7bc-b337-4194-88b8-3a513f6be55b' {
recordfail
savedefault
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root f3f8e7bc-b337-4194-88b8-3a513f6be55b
else
search --no-floppy --fs-uuid --set=root f3f8e7bc-b337-4194-88b8-3a513f6be55b
fi
echo 'Loading Linux 4.14.27-041427-generic ...'
linux /boot/vmlinuz-4.14.27-041427-generic root=UUID=f3f8e7bc-b337-4194-88b8-3a513f6be55b ro quiet splash loglevel=0 vga=current udev.log-priority=3 fastboot kaslr acpiphp.disable=1 crashkernel=384M-2G:128M,2G-:256M $vt_handoff
echo 'Loading initial ramdisk ...'
initrd /boot/initrd.img-4.14.27-041427-generic
}
Press <Enter> to continue

Menüeintrag # 94

menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
savedefault
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root D656-F2A8
else
search --no-floppy --fs-uuid --set=root D656-F2A8
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
Press <Enter> to continue

Menüeintrag # 96

menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
Press <Enter> to continue

grub-display-lite.sh für Ubuntu Server

Auf Ubuntu Server und Lubuntu ist dialogstandardmäßig kein Paket installiert, wie auf Ubuntu Desktop. Für diese Benutzer wurde eine andere Version geschrieben, die auf dem whiptailPaket basiert, das standardmäßig in den meisten Linux-Distributionen enthalten ist.

Der Nachteil whiptailist weniger Funktionen, aber sie werden in diesem Fall nicht verwendet. Ein weiterer Nachteil scheinen weniger Farben zu sein, aber das kann es manchen Leuten leichter machen, zu lesen. Es gibt Vorteile whiptailgegenüber dialogwie Kopieren in die Zwischenablage, Mausrad-Unterstützung und wahrscheinlich eine schnellere Verarbeitung.

grub-display-lite.sh Bash-Skript

#!/bin/bash

# NAME: grub-display-lite.sh
# PATH: $HOME/bin
# DESC: Written for AU Q&A: /ubuntu//q/1019213/307523
# DATE: Mar 26, 2018.
# NOTE: "lite" version written for Ubuntu Server and Lubuntu which do
#       not have `dialog` installed by default. `whiptail` is used
#       instead. Nice consequences are better resolution, mouse scroll
#       wheel and copy to clipboard support.

# $TERM variable may be missing when called via desktop shortcut
CurrentTERM=$(env | grep TERM)
if [[ $CurrentTERM == "" ]] ; then
    notify-send --urgency=critical "$0 cannot be run from GUI without TERM environment variable."
    exit 1
fi

# Version without upstart and recovery options displayed
awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
        | grep -v upstart | grep -v recovery > ~/.grub-display-menu

# Version with upstart and recovery options displayed
#awk -F\' '/menuentry / { print i++, $2}' /boot/grub/grub.cfg \
#        > ~/.grub-display-menu

MenuArr=()

while read -r line; do 
    MenuNmbr=${line%% *}
    MenuName=${line#* }
    MenuArr+=($MenuNmbr "$MenuName")
done < ~/.grub-display-menu
rm ~/.grub-display-menu

LongVersion=$(grub-install --version)
ShortVersion=$(echo "${LongVersion:20}")
DefaultItem=0

while true ; do

    Choice=$(whiptail \
        --title "Use arrow, page, home & end keys. Tab toggle option" \
        --backtitle "Grub Version: $ShortVersion" \
        --ok-button "Display Grub Boot" \
        --cancel-button "Exit" \
        --default-item "$DefaultItem" \
        --menu "Menu Number       ----------- Menu Name ----------" 24 76 16 \
        "${MenuArr[@]}" \
       >/dev/tty)

    clear
    if [[ $Choice == "" ]]; then break ; fi
    DefaultItem=$Choice

    for (( i=0; i < ${#MenuArr[@]}; i=i+2 )) ; do
        if [[ "${MenuArr[i]}" == $Choice ]] ; then
            i=$i+1
            MenuEntry="menuentry '"${MenuArr[i]}"'"
            break
        fi
    done

    TheGameIsAfoot=false
    while read -r line ; do
        if [[ $line = *"$MenuEntry"* ]]; then TheGameIsAfoot=true ; fi
        if [[ $TheGameIsAfoot == true ]]; then
            echo $line
            if [[ $line = *"}"* ]]; then break ; fi
        fi
    done < /boot/grub/grub.cfg

    read -p "Press <Enter> to continue"

done

exit 0

Das grub-display-lite.shBash-Skript ist im Grunde dasselbe, mit der grub-display.shAusnahme, dass keine Fehlermeldung angezeigt wird, wenn dialoges nicht installiert ist. Auch einige whiptailArgumente haben unterschiedliche Namen.

grub-display-lite.sh Screenshots

Der Farbbildschirm scheint leichter zu lesen zu sein als grub-displaydas dialogPaket, das verwendet wird :

grub-display-lite.sh

Hier ist das textbasierte Bild, das zum Kopieren in die Zwischenablage keine Änderungen erfordert:

Grub Version: 2.02~beta2-36ubuntu3.15


        ┌─────────┤ Use arrow, page, home & end keys. Tab toggle option ├──────────┐
         Menu Number       ----------- Menu Name ----------                        
                                                                                   
                      55 Ubuntu, with Linux 4.13.9-041309-generic                 
                      58 Ubuntu, with Linux 4.10.0-42-generic                     
                      61 Ubuntu, with Linux 4.10.0-40-generic                     
                      64 Ubuntu, with Linux 4.10.0-38-generic                     
                      67 Ubuntu, with Linux 4.10.0-37-generic                     
                      70 Ubuntu, with Linux 4.10.0-28-generic                     
                      73 Ubuntu, with Linux 4.9.77-040977-generic                 
                      76 Ubuntu, with Linux 4.9.76-040976-generic                 
                      79 Ubuntu, with Linux 4.4.0-104-generic                     
                      82 Ubuntu, with Linux 4.4.0-103-generic                     
                      85 Ubuntu, with Linux 4.4.0-101-generic                     
                      88 Ubuntu, with Linux 4.4.0-98-generic                      
                      91 Ubuntu, with Linux 3.16.53-031653-generic                
                      94 Windows Boot Manager (on /dev/nvme0n1p2)                 
                      95 Windows Boot Manager (on /dev/sda1)                      
                      96 System setup                                             
                                                                                   
                                                                                   
                           <Display Grub Boot>        <Exit>                       
                                                                                   
        └──────────────────────────────────────────────────────────────────────────┘ 

Wie oben erwähnt, können Sie die Größe des hier angezeigten Grub-Menüs beim Entfernen (upstart)und bei (recovery)Menüoptionen um 66% reduzieren . Dies ist hier der Fall, aber infolgedessen werden die Detailzeilen enger und die Überschriften stimmen nicht perfekt überein. Sie können die Spaltenüberschriften anpassen, indem Sie diese Zeile ändern:

    --menu "Menu Number       ----------- Menu Name ----------" 24 76 16 \

zu so etwas:

    --menu "      Menu Number ----------- Menu Name ----------" 24 76 16 \
WinEunuuchs2Unix
quelle
Verwenden Sie einfach, um die aktuellen Informationen anzuzeigen cat /proc/cmdline. Um zu sehen, welche Optionen grub verwendet, verwenden Sie beim nächsten Update das Menü grub grep GRUB_CMDLINE_LINUX /etc/default/grub. Diese zweiten Einstellungen werden von apt verwendet oder wann update-grubimmer sie ausgeführt werden. Um alle Optionen einfach less /boot/grub/grub.cfgoder ähnlich zu sehen.
Panther
@Panther Ich habe die Grub-Menüeinträge Nr. 94 und Nr. 96 (von meinem System) hinzugefügt, um mehr Nützlichkeit zu zeigen. Die andere Sache zu prüfen , ist es einfacher ist , ein Menü zu verwenden , als Erinnerung catund grepfür die meisten von uns.
WinEunuuchs2Unix
+1. Ich bin damit einverstanden, dass die Verwendung von Menüs im Textmodus dialoghilfreich sein kann.
Sudodus
Nun, eine Fußnote zu dieser großartigen Antwort ist, dass einige Ubuntu-Varianten keinen Dialog enthalten. Lubuntu 16.04 ist standardmäßig nicht verfügbar.
Ianorlin
@ianorlin eine viel bessere version wurde gerade gepostet.
WinEunuuchs2Unix