ก่อนอื่นให้ทำความเข้าใจว่า Ubuntu ตั้งค่า Grub2 อย่างไร
- /boot/grub/grub.cfgเป็นเมนู Grub2
- ปรับปรุงด้วงคำสั่งอัตโนมัติสร้างแฟ้มที่
- ... โดยการอ่านการตั้งค่าเริ่มต้นจาก/ etc / defaults / grub
- ... และทำงาน shellscripts ใน/etc/grub.d
ดังนั้นถ้าคุณไม่ต้องการที่จะแก้ไขgrub.cfgหลังจากการปรับปรุงเคอร์เนลแต่ละท่านต้องการปรับแต่งสคริปต์ใน/etc/grub.dดังนั้นการเปลี่ยนแปลงของคุณได้รับใช้ตลอดเวลาปรับปรุงด้วงเป็นระยะ
ประการที่สองเพื่อตอบคำถามแรกของคุณโดยตรงฉันไม่คุ้นเคยกับวิธีการใด ๆ ในการทำให้ตัวเลือกการบูตที่มองไม่เห็น แต่ยังสามารถเข้าถึงได้ผ่านเมนู Grub มีหลายสิ่งเล็ก ๆ น้อย ๆ เกี่ยวกับ Grub1 ที่ไม่ได้นำมาใช้ซ้ำใน Grub2 และมันจะไม่แปลกใจเลยถ้านี่เป็นหนึ่งในนั้น
แต่คุณสามารถทำให้ทุกรายการเมนูที่มองไม่เห็น (จนถึงไฮไลต์) โดยการตั้งค่าสีตัวอักษรเมนูเดียวกับสีพื้นหลัง ใน/etc/grub.d/05_debian_themeเปลี่ยนแปลงmenu_color_normalเพื่อให้สีแรก (ตัวอักษร) ตรงกับสีที่สอง (พื้นหลัง) ปล่อยให้menu_color_highlightแตกต่างกันดังนั้นรายการภายใต้เคอร์เซอร์จะปรากฏขึ้น
# example from a likely-tweaked Karmic /etc/grub.d/05_debian_theme
set menu_color_normal=white/black
set menu_color_highlight=black/white
# ...to this
set menu_color_normal=black/black
set menu_color_highlight=black/white
รับตัวคั่นลงในเมนูด้วง
ใน Grub1 คุณจะต้องใส่ข้อความใหม่แบบนี้ ในขณะที่ฉันจำได้ว่าคุณต้องการการประกาศรูทเพื่อให้มันเป็นรายการเมนูที่ถูกต้องมิฉะนั้น Grub1 จะไม่สนใจมัน
# separator
title --------------------
root
ฉันสงสัยว่า Grub2 อาจจะคล้ายกัน รายการเมนูพื้นฐานมากมีลักษณะเช่นนี้ในgrub.cfg :
# basic example
menuentry "Memory test (memtest86)" {
linux /boot/memtest86+.bin
}
เนื่องจาก "อะไร" ในเครื่องหมายคำพูดคู่จะปรากฏเป็นชื่อคุณสามารถปลอมตัวคั่นได้ เช่นเดียวกับ Grub1 Grub2 ต้องการให้คำหลักlinuxถือเป็นรายการเมนูที่แท้จริงดังนั้นระวังอย่าเลือกโดยไม่ตั้งใจ
# a separator! no, really!
menuentry "....." {
linux /boot/memtest86+.bin
}
แต่น่าเสียดายที่ "อะไร" ไม่ได้หมายความว่าอะไร ; ในขณะที่ฉันกำลังทดสอบสิ่งนี้ฉันลองใช้ขีดกลางยาว ("----------------") และมันก็ไม่เคยทำงาน แต่ชอบสตริงสั้น ๆ ของจุดที่แสดงด้านบนเพื่อให้คุณสามารถใช้
.....
ตอนนี้เป็นวิธีการทำคั่นหนึ่ง ที่จะทำให้พวงและจะวางพวกเขาที่คุณต้องการให้พวกเขาโดยอัตโนมัติคุณต้องเพิ่มพวกเขาเข้าไปในสคริปต์ใน/etc/grub.d
ตัวอย่างนี้ขอใส่คั่นง่ายๆระหว่างส่วนต่างๆของgrub.cfg หากคุณดูที่/etc/grub.dคุณจะเห็นสคริปต์ต่อไปนี้:
- 00_header
- 05_debian_theme
- 10_linux - รายการสำหรับเคอร์เนล Ubuntu และการกู้คืน
- 20_memtest86 + - รายการสำหรับ Memtest86 +
- 30_os-prober - รายการสำหรับ Windows & distros Linux อื่น ๆ
- 40_custom - ไม่มีค่าเริ่มต้น รายการผู้ใช้พิเศษสามารถไปที่นี่
เราจะสร้างสคริปต์ตัวแยกและวางต่อไปนี้:
#!/bin/sh
# create a separator menu entry
cat << EOF
menuentry "....." {
linux /boot/memtest86+.bin
}
EOF
ตอนนี้ย้ายสคริปต์นั้นไปไว้ที่ตัวคั่นแรกและเชื่อมโยงสคริปต์นั้นเข้ากับคนอื่น ๆ สคริปต์ถูกเรียกใช้งานตามลำดับดังนั้นหากคุณต้องการให้สคริปต์แรกมาก่อน10_linuxให้ตั้งชื่อมันเป็น09_separatorหรืออะไรบางอย่าง
cd /etc/grub.d
# start the editor, paste in the script above, save, and exit
sudo nano separator
# set executable
sudo chmod +x separator
# rename into the first position
mv separator 09_separator
# link into remaining positions (can also use cp)
ln -s 09_separator 19_separator
ln -s 09_separator 29_separator
# not really necessary since 40_custom is empty by default
ln -s 09_separator 39_separator
หากคุณมีชุดรายการเฉพาะเป็นค่าเริ่มต้นใน/ etc / default / grubคุณอาจต้องอัปเดต - Grub2 เริ่มนับรายการเมนูที่ 0 และ "ตัวคั่น" แต่ละรายการเป็นรายการที่ถูกต้องดังนั้นพวกเขาจึงนับเช่นกัน หากรายการเริ่มต้นก่อนหน้าของคุณคือ 0 และคุณได้เพิ่มตัวคั่นก่อนหน้าหนึ่งรายการอย่าลืมเปลี่ยนGRUB_DEFAULTเป็น 1
ตอนนี้รันupdate-grubและตรวจสอบ/boot/grub/grub.cfg - คุณควรเห็นตัวคั่นอยู่ตรงนั้น หากเป็นเช่นนั้นให้รีบูตและตรวจสอบ 'em out
....
หากคุณต้องการวางตัวคั่นไว้ที่อื่นระหว่างรุ่นเคอร์เนลต่าง ๆ คุณจะต้องแก้ไข10_linux (หรือสคริปต์อื่น) โดยตรงและหาที่ที่เหมาะสมในการเพิ่มตัวคั่น คุณสามารถใช้บรรทัดจากสคริปต์ด้านบน รวมทุกอย่างยกเว้นบรรทัด#! / bin / shแรก
หากคุณต้องการบางสิ่งที่สวยกว่าให้ใช้รูปภาพหรือธีมของ Grub ฉันต้องการให้ Raincheck ให้คุณในหัวข้อเหล่านั้น แต่ตรวจสอบข้อมูลด้านล่าง
แหล่งข้อมูล:
มีคู่มือแนะนำ Grub2 สองตัวใน UbuntuForums ที่ฉันรู้จักและชื่นชอบ:
GNU Grub 2เป็นอีกหนึ่งแหล่งข้อมูลที่ยอดเยี่ยม เขามีชุดสคริปต์สำหรับปรับแต่ง Grub2 ของ Karmic ( เปิดเผยอย่างเต็มรูปแบบ: ฉันไม่ได้ลองเลย)
หน้ารูปแบบชุดรูปแบบของ Grub Wikiเป็นสิ่งจำเป็นสำหรับการแฮ็คในรูปแบบ Grub2