재부팅하지 않고 GRUB 메뉴 및 옵션을 표시 하시겠습니까? 전달되었는지 확인하십시오. 명령 행에서이를 수행하는

grub명령 행에서 메뉴 를 표시하고 싶습니다 . 또한 grub 부트 메뉴 옵션을 선택하고을 눌러 Enter어떤 사전 커널 드라이버가로드되고 커널을로드 할 때 부트 매개 변수가 전달되었는지 확인하십시오.

명령 행에서이를 수행하는 이유는 다음과 같습니다.

  • grub메뉴 를 보려면 재부팅하는 데 시간이 걸립니다.
  • grub메뉴 사진을 찍고 웹 사이트에 이미지를 게시하는 것은 어색합니다 . Ubuntu가 시작되어 실행 중일 때 스크린 샷을 쉽게 잡을 수 있습니다.
  • edit와 GRUB 메뉴 옵션 e및 화면 읽기 어렵 기 때문에 사진이 어려운 경우가 많습니다 걸릴. 이 기능을 사용하면 대신 복사하여 붙여 넣을 수 있습니다.
  • 이 함수를 사용하여 apt list --installed | grep linux-image또는 보다 모든 커널 버전을 표시하는 것이 더 쉬울 수 있습니다 ls /boot/vml*.
  • 그룹 메뉴 번호를 빨리 보려면 명령 grub-rebootgrub-set-default명령에 유용 합니다.

명령 행에서 grub 메뉴를 페인트하고 내부 grub 메뉴 항목 번호를 참조하고 주어진 옵션에 대한 부팅 매개 변수를 표시하려면 어떻게해야합니까?



답변

2018 년 5 월 7 일 업데이트

스크립트 개발 : 18.04 LTS 업그레이드 테스트를 위해 Ubuntu를 새로운 파티션으로 복제하는 Bash 스크립트 나는 메뉴가 정렬되도록하는 엄청나게 긴 메뉴 옵션을 발견했습니다.

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

이 문제는 68 자보다 긴 줄을 잘라서 수정되었습니다.

2018 년 4 월 5 일 업데이트

이 업데이트는 grub-menu.sh이전 답변보다 훨씬 우수한 버전을 소개 합니다 (여전히 아래에서 사용 가능). 새로운 그럽 메뉴 기능 :

  • 그룹 2 메뉴 항목 번호를 표시합니다. 즉 0, 1, 1>0, 1>12,3
  • 하위 메뉴 옵션 (upstart)(recover mode)하위 메뉴 옵션 없이 기본 짧은 버전을 설정할 수 있습니다.
  • 매개 변수 1로 전달 될 수 short또는 long재정의 기본에.
  • 열 제목은 설정 short또는 long설정에 따라 동적으로 형식이 지정 됩니다.

컬러 스크린 샷 (짧은 버전)

grub-menu.sh

텍스트 스크린 샷 (긴 버전)

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 스크립트

이전 버전 grub-display.shgrub-display-lite.sh코드에서 많은 수정 옵션이 필요했습니다. grub-menu.sh조정할 옵션이 하나뿐입니다.

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

값을 true또는로 설정하십시오 false.

다음을 사용하여 스크립트를 호출 할 때 기본 형식을 대체 할 수 있습니다.

grub-menu.sh short

또는:

grub-menu.sh long

코드:

#!/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

이전 버전 (권장되지 않음)

아래는 메뉴 항목 번호가 grub 1 형식을 따르는 원래 답변입니다.

grub-display.sh 그럽 메뉴 옵션 및 매개 변수 표시

타사 응용 프로그램에 의존하지 않고 bash 스크립트를 사용하여 grub주어진 옵션에 대한 메뉴 및 부팅 매개 변수를 표시 할 수 있습니다. 부팅 매개 변수는 단순한 cat /proc/cmdline값 이상 입니다. 또한 Linux를 부팅하기 전에로드 된 드라이버도 포함합니다.

grub-display.sh bash 스크립트

복사하여 붙여 넣을 수있는 전체 프로그램 목록은 다음과 같습니다.

#!/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

우분투 서버 사용자를위한 참고 사항

이 bash 스크립트는 Ubuntu Desktop을 위해 설계되었습니다. dialog기본적으로 패키지가 설치되어 있지 않은 Ubuntu Server 및 기타 Linux Distros의 경우 다른 스크립트 grub-display-lite.sh가 아래에 포함되어 있습니다. 그 버전은 whiptail대신에 사용 합니다 dialog.

메뉴 크기 66 % 감소

표시된 그럽 메뉴 옵션 목록을 줄이려면 (upstart)(recovery)옵션을 제거 할 수 있습니다. 이렇게하려면 주석을 해제하십시오.

# 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

스크린 샷

다음은 명령 행에서 호출했을 때의 모습입니다. 불행히도 메뉴를 복사하여 붙여 넣을 수 없어서 사용해야했습니다 Print Screen.

grub-display.sh.png

복사 및 붙여 넣기에 대한 마우스 지원 끄기

 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       >                
       └──────────────────────────────────────────────────────────────────────────┘  

기본 마우스 지원이 활성화되면 화면을 클립 보드에 복사 할 수 없지만 Print Screen그래픽 화면 스냅 샷에 사용해야합니다 . 복사 및 붙여 넣기를 지원하려면 다음 줄을 검색하여 마우스 지원을 비활성화해야합니다.

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

아래에 인수 --no-mouse가 삽입되었습니다 --default-item. 즉, 마우스 지원이 느슨하지만 텍스트를 강조 표시하고 Ctrl+를 눌러 해상도를 높이고 클립 보드에 복사 할 수 C있습니다.

GRUB 부팅 매개 변수 표시

탐색 키를 사용하여 옵션을 강조 표시하고을 눌러 Enter부팅 매개 변수를 확인하십시오.

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

그룹 메뉴 항목 # 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

그룹 메뉴 항목 # 96

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

grub-display-lite.sh 우분투 서버

Ubuntu Server 및 Lubuntu dialog에는 Ubuntu Desktop과 같이 기본적으로 패키지가 설치되어 있지 않습니다 . whiptail대부분의 Linux 배포판에 기본적으로 포함 된 패키지를 기반으로 이러한 사용자를 위해 다른 버전이 작성되었습니다 .

단점은 whiptail기능이 적지 만이 경우에는 사용되지 않습니다. 또 다른 단점은 색상이 적지 만 일부 사람들이 쉽게 읽을 수있는 것 같습니다. 장점이 있습니다 whiptail이상 dialog과 같은 아마도 빠른 클립 보드에 복사, 마우스 스크롤 휠 지원과로 처리.

grub-display-lite.sh bash 스크립트

#!/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

grub-display-lite.sh으로 bash는 스크립트는 기본적으로 동일 grub-display.sh하면 오류 메시지가 표시되지 제외하고는 dialog설치되지 않습니다. 또한 일부 whiptail인수의 이름이 다릅니다.

grub-display-lite.sh 스크린 샷

컬러 스크린 grub-displaydialog패키지 를 사용하는 것보다 읽기 쉽습니다 .

grub-display-lite.sh

다음은 클립 보드에 복사하기 위해 수정할 필요가없는 텍스트 기반 이미지입니다.

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>                      
                                                                                  
        └──────────────────────────────────────────────────────────────────────────┘ 

당신은 줄일 수 있습니다 위에서 언급 한 바와 같이 제거 할 때 GRUB 메뉴의 크기는 66 %가 여기에 표시 (upstart)하고 (recovery)메뉴 옵션. 여기에 해당하지만 세부 결과 선이 좁아지고 제목이 완벽하게 정렬되지 않습니다. 이 줄을 변경하여 열 머리글을 조정할 수 있습니다.

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

이런 식으로 :

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


답변