อัปเดตเมื่อ 7 พฤษภาคม 2018
การพัฒนาสคริปต์: สคริปต์ทุบตีเพื่อโคลน Ubuntu ไปยังพาร์ติชันใหม่สำหรับการทดสอบการอัพเกรด 18.04 LTSฉันค้นพบว่าคุณได้รับตัวเลือกเมนูที่ยาวเหยียดซึ่งทำให้เมนูเป็นอันตราย:
4>8 Ubuntu, with Linux 4.14.30-041430-generic (recovery mode) (on /dev/nvme0n1p8)
สิ่งนี้ได้รับการแก้ไขในวันนี้โดยตัดทอนบรรทัดที่ยาวเกิน 68 อักขระ
อัปเดตเมื่อ 5 เมษายน 2018
การอัปเดตนี้แนะนำgrub-menu.sh
รุ่นที่เหนือกว่ามากสำหรับคำตอบก่อนหน้า (ยังมีอยู่ด้านล่าง) คุณสมบัติของเมนูด้วงใหม่:
- แสดงหมายเลขรายการเมนูด้วง 2 เช่น
0
, 1
, 1>0
, 1>1
... 2
,3
- เวอร์ชันสั้นเริ่มต้นที่ไม่มีตัวเลือก
(upstart)
และ(recover mode)
เมนูย่อยสามารถตั้งค่าได้
- พารามิเตอร์ 1 สามารถส่งผ่านเป็น
short
หรือlong
เพื่อแทนที่ค่าเริ่มต้น
- ส่วนหัวคอลัมน์จัดรูปแบบแบบไดนามิกตาม
short
หรือlong
การตั้งค่า
ภาพหน้าจอสี (รุ่นสั้น)
ภาพหน้าจอข้อความ (รุ่นยาว)
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
สคริปต์ทุบตี
รุ่นก่อนหน้าgrub-display.sh
และgrub-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
รุ่นก่อนหน้า (ไม่แนะนำ)
ด้านล่างคือคำตอบดั้งเดิมที่หมายเลขรายการเมนูตามรูปแบบด้วง 1
grub-display.sh
แสดงตัวเลือกเมนูและพารามิเตอร์ด้วง
คุณสามารถใช้สคริปต์ทุบตีเพื่อแสดงgrub
เมนูและพารามิเตอร์การบู๊ตสำหรับตัวเลือกใด ๆ พารามิเตอร์การบู๊ตเป็นมากกว่าcat /proc/cmdline
ค่า นอกจากนี้ยังรวมถึงไดรเวอร์ที่โหลดก่อนที่จะบูตด้วย Linux
grub-display.sh
สคริปต์ทุบตี
นี่คือรายการโปรแกรมเต็มรูปแบบที่คุณสามารถคัดลอกและวาง:
#!/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
หมายเหตุสำหรับผู้ใช้ Ubuntu Server
สคริปต์ทุบตีนี้ออกแบบมาสำหรับ Ubuntu Desktop สำหรับ Ubuntu Server และ Linux Distros อื่น ๆ ที่ไม่มีdialog
แพ็คเกจติดตั้งโดยค่าเริ่มต้นสคริปต์อื่นที่เรียกว่า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 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
ซึ่งหมายความว่าคุณหลวมสนับสนุนเมาส์ แต่ได้รับความละเอียดที่ดีขึ้นและความสามารถในการคัดลอกไปยังคลิปบอร์ดโดยไฮไลต์ข้อความและกด+CtrlC
แสดงพารามิเตอร์การบูตด้วง
ใช้ปุ่มนำทางเพื่อไฮไลต์ตัวเลือกแล้วกด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
เซิร์ฟเวอร์ Ubuntu และ Lubuntu ไม่มีdialog
แพ็คเกจติดตั้งตามค่าเริ่มต้นเช่น Ubuntu Desktop มีการเขียนเวอร์ชันที่แตกต่างกันสำหรับผู้ใช้เหล่านี้โดยยึดตามwhiptail
แพคเกจซึ่งรวมอยู่ในค่าเริ่มต้นในการแจกจ่าย Linux
ข้อเสียของwhiptail
ฟังก์ชั่นน้อยลง แต่ไม่ได้ใช้ในกรณีนี้ ข้อเสียอีกประการหนึ่งดูเหมือนจะมีสีน้อยลง แต่ก็ทำให้บางคนอ่านง่ายขึ้น มีข้อดีwhiptail
มากกว่าdialog
เช่นคัดลอกไปยังคลิปบอร์ดสนับสนุนล้อเลื่อนของเมาส์และการประมวลผลที่เร็วขึ้น
grub-display-lite.sh
สคริปต์ทุบตี
#!/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
สคริปต์ทุบตีเป็นพื้นเดียวกันเป็นgrub-display.sh
ยกเว้นมีข้อผิดพลาดถ้าdialog
ไม่ได้ติดตั้ง whiptail
อาร์กิวเมนต์บางตัวก็มีชื่อต่างกัน
grub-display-lite.sh
ภาพหน้าจอ
ดูเหมือนว่าหน้าจอสีจะอ่านง่ายกว่าgrub-display
ที่ใช้dialog
แพ็คเกจ:
นี่คือรูปภาพที่เป็นข้อความซึ่งไม่จำเป็นต้องแก้ไขเพื่อคัดลอกไปยังคลิปบอร์ด:
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> │
│ │
└──────────────────────────────────────────────────────────────────────────┘
ดังที่ได้กล่าวมาแล้วคุณสามารถลดขนาดของเมนูด้วงที่แสดงที่นี่ได้ถึง 66% เมื่อทำการลบ(upstart)
และ(recovery)
ตัวเลือกเมนู นี่เป็นกรณีที่นี่ แต่เป็นผลให้เส้นรายละเอียดแคบลงและหัวเรื่องไม่เรียงกันอย่างสมบูรณ์ คุณสามารถปรับแต่งส่วนหัวคอลัมน์โดยเปลี่ยนบรรทัดนี้:
--menu "Menu Number ----------- Menu Name ----------" 24 76 16 \
เพื่อสิ่งนี้:
--menu " Menu Number ----------- Menu Name ----------" 24 76 16 \
cat /proc/cmdline
หากต้องการดูข้อมูลการใช้งานเพียงแค่ปัจจุบันgrep GRUB_CMDLINE_LINUX /etc/default/grub
หากต้องการดูตัวเลือกด้วงจะใช้ในครั้งต่อไปที่คุณปรับปรุงการใช้งานเมนูด้วง การตั้งค่าชุดที่สองเหล่านั้นจะถูกใช้โดย apt หรือเมื่อใดก็ตามที่update-grub
ทำงาน หากต้องการดูตัวเลือกทั้งหมดเพียงless /boot/grub/grub.cfg
หรือคล้ายกัน