Hiển thị menu grub và các tùy chọn mà không cần khởi động lại?


12

Tôi muốn hiển thị grubmenu từ dòng lệnh. Ngoài ra, để chọn tùy chọn menu khởi động grub và nhấn Enterđể xem trình điều khiển tiền nhân nào được tải và các tham số khởi động được truyền khi tải kernel.

Những lý do để làm điều này từ dòng lệnh:

  • Khởi động lại để xem grubmenu mất thời gian.
  • Thật khó xử khi chụp ảnh grubmenu và đăng hình ảnh lên các trang web. Sẽ dễ dàng hơn khi chụp ảnh màn hình khi Ubuntu hoạt động.
  • Để edittùy chọn menu grub với evà chụp ảnh thường rất khó vì màn hình khó đọc. Với chức năng này, bạn có thể sao chép và dán thay thế.
  • Có thể dễ dàng hơn khi sử dụng chức năng này để tiết lộ tất cả các phiên bản kernel hơn là apt list --installed | grep linux-imagehoặc ls /boot/vml*.
  • Để nhanh chóng thấy số menu grub có giá trị cho grub-rebootgrub-set-defaultcác lệnh.

Làm cách nào tôi có thể vẽ menu grub từ dòng lệnh, xem số mục nhập menu grub bên trong và hiển thị các tham số khởi động cho một tùy chọn nhất định?

Câu trả lời:


12

Cập nhật ngày 7 tháng 5 năm 2018

Phát triển tập lệnh: Tập lệnh Bash để sao chép Ubuntu sang phân vùng mới để thử nghiệm nâng cấp L.04 18.04 Tôi phát hiện ra bạn có một số tùy chọn trình đơn dài đến nực cười khiến menu bị sai lệch:

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

Điều này đã được khắc phục ngày hôm nay bằng cách cắt các dòng dài hơn 68 ký tự.

Cập nhật ngày 5 tháng 4 năm 2018

Bản cập nhật này giới thiệu grub-menu.shmột phiên bản ưu việt hơn nhiều so với câu trả lời trước đó (vẫn có sẵn bên dưới). Các tính năng menu grub mới:

  • Hiển thị grub 2 số mục nhập menu. tức là 0, 1, 1>0, 1>1... 2,3
  • Phiên bản ngắn mặc định không có (upstart)(recover mode)tùy chọn menu con có thể được đặt.
  • Tham số 1 có thể được truyền dưới dạng shorthoặc longghi đè mặc định.
  • tiêu đề cột được định dạng động dựa trên shorthoặc longcài đặt.

Ảnh chụp màn hình màu (phiên bản ngắn)

grub-menu.sh

Ảnh chụp màn hình văn bản (phiên bản dài)

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 kịch bản bash

Các phiên bản trước grub-display.shgrub-display-lite.shyêu cầu nhiều tùy chọn điều chỉnh trong mã. grub-menu.shchỉ có một tùy chọn để điều chỉnh:

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

Đặt giá trị thành truehoặc false.

Định dạng mặc định có thể được ghi đè khi gọi tập lệnh bằng cách sử dụng:

grub-menu.sh short

hoặc là:

grub-menu.sh long

Mật mã:

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

Các phiên bản trước (không được đề xuất)

Dưới đây là câu trả lời ban đầu trong đó số mục nhập menu theo định dạng grub 1.

grub-display.sh hiển thị các tùy chọn và thông số menu grub

Không phụ thuộc vào các ứng dụng của bên thứ ba, bạn có thể sử dụng tập lệnh bash để hiển thị grubmenu và các tham số khởi động cho bất kỳ tùy chọn nào. Các tham số khởi động không chỉ là các cat /proc/cmdlinegiá trị. Chúng cũng bao gồm các trình điều khiển được tải trước khi Linux được khởi động.

grub-display.sh kịch bản bash

Dưới đây là danh sách chương trình đầy đủ, bạn có thể sao chép và dán:

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

Lưu ý cho người dùng Ubuntu Server

Kịch bản bash này được thiết kế cho Ubuntu Desktop. Đối với Ubuntu Server và các Linux khác không có dialoggói được cài đặt theo mặc định, một tập lệnh khác được gọi grub-display-lite.shđược bao gồm bên dưới. Phiên bản đó sử dụng whiptailthay vì dialog.

Giảm kích thước menu 66%

Để rút ngắn danh sách tùy chọn menu grub được hiển thị, bạn có thể xóa (upstart)(recovery)các tùy chọn. Để làm điều này không ghi chú những dòng này:

# 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

Sau đó áp dụng nhận xét cho các dòng này:

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

Ảnh chụp màn hình

Đây là những gì nó trông giống như khi được gọi từ dòng lệnh. Thật không may, tôi không thể sao chép và dán menu và phải sử dụng Print Screen:

grub-display.sh.png

Tắt hỗ trợ chuột để sao chép và dán

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

Khi hỗ trợ chuột mặc định được bật, bạn không thể sao chép màn hình vào bảng tạm mà phải sử dụng Print Screenđể chụp ảnh màn hình đồ họa. Để hỗ trợ sao chép và dán, bạn cần tắt hỗ trợ chuột bằng cách tìm kiếm các dòng sau:

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

Đối số --no-mouseđã được chèn vào bên dưới --default-item. Điều này có nghĩa là bạn mất hỗ trợ chuột nhưng đạt được độ phân giải tốt hơn và sao chép vào khả năng của clipboard bằng cách tô sáng văn bản và nhấn Ctrl+ C.

Hiển thị thông số khởi động grub

Sử dụng các phím điều hướng để tô sáng một tùy chọn và nhấn Enterđể xem các thông số khởi động cho nó:

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

Mục menu Grub # 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

Mục menu Grub # 96

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

grub-display-lite.sh cho máy chủ Ubuntu

Ubuntu Server và Lubfox không có dialoggói được cài đặt theo mặc định như Ubuntu Desktop có. Một phiên bản khác đã được viết cho những người dùng này dựa trênwhiptail gói được bao gồm theo mặc định trên hầu hết các bản phân phối Linux.

Nhược điểm của whiptailít chức năng hơn nhưng chúng không được sử dụng trong trường hợp này. Một nhược điểm khác có vẻ là ít màu sắc hơn nhưng điều đó có thể giúp đọc dễ dàng hơn đối với một số người. Có những lợi thế whiptailhơndialog như sao chép vào clipboard, hỗ trợ bánh xe cuộn chuột và có thể xử lý nhanh hơn.

grub-display-lite.sh kịch bản 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

Các grub-display-lite.shkịch bản bash là cơ bản giống như grub-display.shngoại trừ không có thông báo lỗi nếu dialogkhông được cài đặt. Ngoài ra một sốwhiptail đối số có tên khác nhau.

grub-display-lite.sh ảnh chụp màn hình

Màn hình màu dường như dễ đọc hơn so với grub-displaysử dụng dialoggói:

grub-display-lite.sh

Đây là hình ảnh dựa trên văn bản không cần sửa đổi để sao chép vào clipboard:

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

Như đã đề cập ở trên, bạn có thể giảm 66% kích thước của menu grub được hiển thị ở đây xuống 66% khi xóa (upstart)(recovery)tùy chọn menu. Đó là trường hợp ở đây nhưng kết quả là các dòng chi tiết hẹp hơn và các tiêu đề không xếp hàng hoàn hảo. Bạn có thể điều chỉnh các tiêu đề cột bằng cách thay đổi dòng này:

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

đến một cái gì đó như thế này:

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

Để xem thông tin hiện tại chỉ cần sử dụng cat /proc/cmdline. Để xem các tùy chọn grub sẽ sử dụng vào lần tới khi bạn cập nhật menu grub sử dụng grep GRUB_CMDLINE_LINUX /etc/default/grub. Các cài đặt thứ hai đó sẽ được apt sử dụng hoặc bất cứ khi nào update-grubđược chạy. Để xem tất cả các tùy chọn đơn giản less /boot/grub/grub.cfghoặc tương tự.
Panther

@Panther Tôi đã thêm các mục menu grub # 94 và # 96 (từ hệ thống của tôi) để hiển thị hữu ích hơn. Một điều khác cần xem xét là sử dụng thực đơn dễ dàng hơn so với việc ghi nhớ catgrepđối với hầu hết chúng ta.
WinEunuuchs2Unix 26/03/18

+1. Tôi đồng ý rằng các menu chế độ văn bản sử dụng dialogcó thể hữu ích.
sudodus

Vâng, một chú thích cho anwser tuyệt vời này là một số hương vị của ubfox không bao gồm hộp thoại Lubfox 16.04 không theo mặc định.
ianorlin

@ianorlin một phiên bản tốt hơn nhiều vừa được đăng.
WinEunuuchs2Unix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.