ฉันจะซ่อนเมนู GRUB ที่ปรากฏเมื่อเริ่มต้นระบบได้อย่างไร


42

ฉันหยุดการบูทสองครั้งและฉันไม่ต้องการเลือกระบบปฏิบัติการอีกต่อไป ฉันต้องการบูทเข้า Ubuntu 12.04 โดยตรงโดยไม่เห็นเมนูด้วง

ฉันจะบรรลุสิ่งนั้นได้อย่างไร


หากคุณหยุดการบูทคู่คุณอาจหยุดใช้ระบบปฏิบัติการอื่น ทำไมคุณไม่สามารถลบระบบปฏิบัติการอื่น ๆ เพื่อให้อูบุนตูสามารถบูตได้ตามปกติ
karthick87

ทำซ้ำของ (อย่างใดอย่างหนึ่ง) askubuntu.com/questions/124074/…หรือaskubuntu.com/questions/52963/…
david6

ถ้ามีคำตอบเหล่านี้ "ตอบ" คำถามของคุณโปรดยอมรับหนึ่งของพวกเขา :)
blade19899

@ david6: ฉันไม่เห็นว่าสิ่งเหล่านี้ซ้ำซ้อนกับคำถามนี้อย่างไร ฉันคิดว่านี่เป็นเรื่องเกี่ยวกับการซ่อนเมนูด้วงในระหว่างการหมดเวลา
oKtosiTe

ขออภัยลิงค์ที่สองควรจะเป็น: askubuntu.com/questions/66070/…รวมถึงวิธีการ: ซ่อนเมนู Grub2 และใช้ตัวเลือกเมนูเริ่มต้น
david6

คำตอบ:


33

คุณสามารถเปลี่ยนการตั้งค่าด้วงได้

พิมพ์ใน terminal

sudo -H gedit /etc/default/grub

คุณต้องเปลี่ยนสิ่งนี้

เปลี่ยนGRUB_HIDDEN_TIMEOUT_QUIET=falseเป็น

GRUB_HIDDEN_TIMEOUT_QUIET=true

บันทึกไฟล์และออก

ชนิด sudo update-grub

หากคุณไม่ได้รับผลลัพธ์ที่คุณต้องการดูข้อผิดพลาดนี้


7
ขณะนี้มันเปลี่ยนเป็น True แต่ฉันยังคงเห็นเมนูด้วง ...
Alex Poulos

ฉันวันที่ 12.04 และฉันพยายามนี้ แต่มันก็บอกว่า "จริง" และมันก็ยังปรากฏ ระบบปฏิบัติการอื่น ๆ ที่ฉันมีคือความล้มเหลวและ Memtest - แค่นั้นแหละ ฉันลบ Windows Partition และ grub ที่อัปเดตไปแล้วและเมนูยังคงปรากฏอยู่
Alex Poulos

@AlexPoulos ดูที่ลิงค์
hingev

2
ทำงานให้ฉันด้วยการเปลี่ยนการหมดเวลาเป็น 0 แล้วทำให้เงียบ ขอบคุณ
king_julien

23

ฉันแก้ไขปัญหานี้โดยการปิดการใช้งาน OS Prober ฉันทำอย่างนั้นเพราะใน/boot/grub/grub.cfgส่วนที่สร้างขึ้นโดยแม่แบบ/etc/grub.d/30_os-proberมีการแทนที่ "หมดเวลา" ถึง 10 และ "สไตล์" เมนู

แก้ไข/etc/default/grubและเพิ่มบรรทัดนี้:

GRUB_DISABLE_OS_PROBER=true

หวังว่าคุณจะพบว่ามีประโยชน์นี้!

BTW, เต็ม / etc / default / grub ของฉันคือ:

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR= [...]
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0

การเข้ารหัสที่มีความสุข


2
ที่ใช้งานได้สำหรับฉัน แต่มันทำให้ตัวเลือกการบูตอื่นหายไป แต่ตัวเลือกเริ่มต้น ...
opensas

1
@opensas หากเมนูการเลือกไม่ปรากฏขึ้นคุณจะรู้ได้อย่างไรว่าตัวเลือกการบูต "ปรากฏ" ในนั้น หากคุณต้องการปิดการใช้งานเมนูทำไมคุณถึงต้องการตัวเลือกการบูตที่ไม่ใช่ค่าเริ่มต้น
Kyle Strand

หากคุณออกจากส่วน 'GRUB_TIMEOUT_STYLE = hidden' จะเห็นการนับถอยหลัง แต่ไม่มีอะไรอีกนอกจากคุณจะขัดจังหวะ ที่ช่วยให้คุณเข้าถึงเมนูและเปลี่ยนการตั้งค่าการบู๊ตได้แม้จะทำให้เห็นได้ชัดน้อยลง
stonecrusher

หากต้องการให้สามารถดูเมนูการบู๊ตหลังจากกดปุ่ม Shift ค้างไว้ GRUB_TIMEOUT จะต้องถูกตั้งค่าเป็นศูนย์มากกว่า (กล่าวคือ GRUB_TIMEOUT = 5) มิฉะนั้นตัวเลือกการบูตอื่น ๆ (เช่น Windows) จะไม่สามารถเปิดใช้งานได้หากจำเป็น
user3804598

บน Ubuntu 18.04 LTS GRUB_RECORDFAIL_TIMEOUT=0เป็นการเปลี่ยนแปลงเพียงอย่างเดียวที่จะ/etc/default/grubกำจัดการหมดเวลา 30 วินาที (และเมนู bootloader GRUB ทั้งหมด) ซึ่งดูเหมือนว่าจะเป็นข้อผิดพลาด: bugs.launchpad.net/ubuntu/+source/grub2/+bug/1814403/ ความคิดเห็น / 4 นอกจากนี้sudo update-grubต้องดำเนินการเพื่อให้การแก้ไขมีผลซึ่งไม่ได้กล่าวถึงในคำตอบ โปรดทราบว่าการตั้งค่านี้0เป็นไม่แนะนำ (ดูลิงค์ที่อ้างถึงข้างต้น) เว้นแต่ว่าเครื่องนั้นเป็น VM การพัฒนาหรือคล้ายกัน
Ben Johnson

11

ฉันลองใช้เคล็ดลับเหล่านั้นทั้งหมดที่พวกเขาไม่ได้ทำงานลงเอยด้วยการลดเวลาการหมดเวลาเป็นศูนย์ดังนี้:

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

ทำงานsudo update-grubหลังจากเปลี่ยนค่า
niksmac

เหมือนกับฉัน. ฉันวิ่ง "update-grub" - ไม่ทำงาน
Robin Winslow

1
นี่คือสิ่งที่ / etc / default / grub ของฉัน แต่ฉันยังคงได้รับนับถอยหลัง 10 วินาทีด้วยการแสดงเมนูด้วง
zorkerz

8

คุณต้องแก้ไขไฟล์ที่/etc/default/grubเพื่อป้องกันการแสดงเมนูด้วง

ตามค่าเริ่มต้นรายการในไฟล์นั้นจะมีลักษณะเช่นนี้

GRUB_DEFAULT = 0
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = false
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT = "สแปลชเงียบ"
GRUB_CMDLINE_LINUX = ""
  • ลบ#เครื่องหมายออกจากบรรทัดที่สองและ
  • เปลี่ยนสายไปGRUB_HIDDEN_TIMEOUT_QUIET=falseGRUB_HIDDEN_TIMEOUT_QUIET=true

หลังจากการเปลี่ยนแปลงส่วนที่ต้องการของไฟล์จะมีลักษณะเช่นนี้

GRUB_DEFAULT = 0
GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = true
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT = "สแปลชเงียบ"
GRUB_CMDLINE_LINUX = ""
  • จากนั้นรันsudo update-grubคำสั่งในเทอร์มินัลแล้วรีบูตเพื่อดูผลลัพธ์

3
ฉันมีการกำหนดค่านี้ แต่ยังคงเมนูด้วงปรากฏขึ้น

1
เมื่อการอัปเดตการตั้งค่านี้ส่งคืน 'คำเตือน: การตั้งค่า GRUB_TIMEOUT ให้เป็นค่าที่ไม่เป็นศูนย์เมื่อ GRUB_HIDDEN_TIMEOUT ถูกตั้งค่าไม่ได้รับการสนับสนุนอีกต่อไป' และฉันยังคงได้รับการนับถอยหลัง 10 วินาทีในขณะที่แสดงเมนูด้วง การตั้งค่า GRUB_TIMEOUT เป็น 0 จะให้ผลลัพธ์เหมือนกัน
zorkerz

@zorkerz คุณใช้ Ubuntu รุ่นใดอยู่
Anwar

Xenial Xerus แต่มีพฤติกรรมเหมือนกันในวันที่ 15.10
zorkerz

5

ฉันมีปัญหาเดียวกันและไม่มีเคล็ดลับที่นี่ทำงาน! วิธีเดียวคือเปลี่ยน /boot/grub/grub.cfg manualy ณ จุดหนึ่งของไฟล์นี้เขาทำให้หมดเวลาไปถึง 10! ดังนั้นเพียงแค่แสดงความคิดเห็นบรรทัดเหล่านั้น

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

แต่คุณไม่สามารถทำการอัพเดตด้วงได้อีกไม่เช่นนั้นมันจะกลับไปเป็นไฟล์เดิมและหมดเวลาไปถึง 10 อีกครั้ง! บันทึกไฟล์ (ใน vi คุณจะต้องบังคับให้แม้ว่าคุณจะ su!) รีสตาร์ทคอมพิวเตอร์และมันจะทำงานได้ดี!


น่าสนใจทำไมif [ "${timeout}" = 10 ]; then set timeout=0 fi ล่ะ หรือเพียงแค่ลบคำสั่ง if ทั้งหมดแล้วปล่อยทิ้งset timeout=0?
เอ็ลเดอร์ Geek

สิ่งนี้อยู่ที่นั่นจากเทมเพลตที่สามารถปิดการใช้งานได้ (prober ระบบปฏิบัติการตามที่ระบุไว้ในคำตอบของ Agustin) คุณไม่จำเป็นต้องแก้ไข grub.cfg ด้วยตนเอง
Neil Traft

สิ่งนี้ใช้ได้กับฉันใน 14.04
Kalamalka Kid

3

หากคุณต้องการลบรายการบูตเพียงแค่พิมพ์:

sudo update-grub

หากไม่ได้ผลให้ติดตั้งตัวจัดการการเริ่มต้นเช่น:

sudo apt-get install startupmanager


ด้วย startup-manager คุณสามารถ

  1. เลือกด้วยการเข้าบูต
  2. เลือกความละเอียดและระยะเวลารอก่อนเริ่มระบบ
  3. นอกจากนี้คุณยังสามารถเลือก 0 สำหรับการบูตโดยอัตโนมัติจากรายการบูตเริ่มต้น

burg แต่เขากำลังทำเรื่องเกี่ยวกับด้วง
Black Block

ขอโทษด้วย มันควรจะเป็น sudo update-grub ฉันแก้ไขคำตอบ
blade19899

ปัญหาเดียวของเรื่องนี้ก็คือเวอร์ชั่นของ Startup-manager ฉันไม่ได้แสดงตัวเลือกมากมาย - Imgur
Alex Poulos

1
ฉันวันที่ 12.04 และฉันพยายามนี้ แต่มันก็บอกว่า "จริง" และมันก็ยังปรากฏ ระบบปฏิบัติการอื่น ๆ ที่ฉันมีคือความล้มเหลวและ Memtest - แค่นั้นแหละ ฉันได้ลบ Windows Partition และ grub ที่อัปเดตไปแล้วและเมนูยังคงแสดงอยู่
Alex Poulos

ถัดจาก "หมดเวลาในไม่กี่วินาที" มีกล่องที่มีหมายเลข 10 เปลี่ยนชื่อเป็นหมายเลข 0
blade19899

3

เช่นเดียวกับAgustinฉันพบว่าปัญหาของฉันเกิดจาก OS Prober ทำหนึ่งขั้นตอนดีกว่าทางออกของเขาฉันพบส่วนสำคัญที่จะช่วยให้คุณมีระบบปฏิบัติการของคุณ แต่ยังคงซ่อนเมนู คุณเพียงแค่ต้องดาวน์โหลดไฟล์ทั้งสองใส่เข้าไปในไฟล์/etc/grub.dและให้สิทธิ์เช่นเดียวกับเทมเพลตอื่น ๆ ในไดเรกทอรีนั้น

หากคุณต้องการเข้าถึงระบบปฏิบัติการที่ไม่ใช่ค่าเริ่มต้นเพียงกด Shift ค้างไว้ในขณะที่บูตเครื่อง ที่จะแสดงเมนู


แน่นอนว่าดูเหมือนว่าเป็นข้อบกพร่องสำหรับฉัน มีใครรายงานหรือไม่
opensas

จริง ... บางทีฉันอาจจะไปถึงจุดนั้น ไม่รู้เลยว่ามีอยู่แล้ว
Neil Traft

3

ฉันพบวิธีแก้ไขปัญหาง่ายๆแล้ว

  echo "
  set timeout_style=hidden
  set timeout=2" | sudo tee --append /etc/grub.d/40_custom 

และอัพเดทด้วง มันจะเขียนทับการตั้งค่าการหมดเวลาใน grub.cfg ดังนั้นจึงไม่สำคัญว่าคุณมีใน / etc / default / grub ดังนั้นฉันจึงมีเมนูซ่อนเร้นที่สามารถเรียกใช้งานโดยการเลื่อนเป็นเวลา 2 วินาที


วิธีนี้ใช้ได้ผลสำหรับฉัน (grub 2.02 ~ beta3-4ubuntu7 ติดตั้งโดย Ubuntu 17.10) เมื่อไม่มีวิธีการแก้ปัญหาอื่น ๆ ที่เสนอในหน้านี้ทำ (มันโชคร้ายจริงๆที่ฉันทดสอบล่าสุด: /) ขอบคุณ!
pchaigno


2

ฉันเคยเห็นผู้คนมากมายพูดว่าคำตอบที่แนะนำนั้นไม่ได้ผลสำหรับพวกเขา ฉันลองตัวเลือกหลายตัวและอันนี้ใช้ได้สำหรับฉัน :

แก้ไข /etc/grub.d/00_header และค้นหา:

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1

เปลี่ยนเป็น ...

if [ "\${recordfail}" = 1 ]; then
  set timeout=10

และเรียกใช้ update-grub


2

สำหรับทุกคนที่มี word splash ในบรรทัด cmd แต่ hardcoding 0 สำหรับ timeout จะไม่ทำงาน ,,

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

ลองลบ word splashออกจากบรรทัดที่สองอัปเดตและรีบูต ,, voila ไม่มีเมนู :)

hth เคร็ก


2

มันใช้เวลาสักพัก แต่มันก็จ่ายออกไปมันเป็นการผสมผสานระหว่างการขุดของฉันเองและคำตอบข้างต้นก่อนอื่นตรวจสอบให้แน่ใจว่าคุณ/etc/default/grubและ/usr/grub/default/grubเหมือนกัน จากนั้นเรียกใช้gksu gedit /etc/grub.d/30_os-proberใกล้ด้านบนเป็นสองบรรทัดที่เราต้องการ แต่เพื่อค้นหาสไตค์และเปลี่ยนบรรทัดนั้นเป็นที่ซ่อนอยู่แล้วค้นหาบรรทัดการหมดเวลาควรเป็นถ้าtimeout = 0ตั้งค่าเป็น10ลบส่วนนั้นจากถ้าถึงจุดสิ้นสุดของไฟล์ให้แน่ใจว่า คุณลบจุดสิ้นสุดของไฟล์หรือเมาของคุณและการกำหนดค่าด้วงของคุณควรบันทึกสิ่งนี้เป็นของฉันเช่น:

ตั้งค่าการบูตเริ่มต้นเป็น windows 8.1 pro

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

ตั้งค่าหน้าต่างห้าวินาทีเพื่อกด Shift เพื่อให้ฉันสามารถบูตลงใน Ubuntu ได้

GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true

การแก้ไขหลักสำหรับข้อผิดพลาดในกรณีที่

GRUB_TIMEOUT=0

กำหนดสไตล์ให้ซ่อน

GRUB_TIMEOUT_STYLE=hidden

เนื้อหาเริ่มต้นของ Ubuntu

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

1
  • กำหนดค่าด้วงผ่าน sudo nano /etc/default/grub
  • พิมพ์ท้ายไฟล์:
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
  • บันทึกการเปลี่ยนแปลงCTRL+S
  • ออกจากCTRL+X
  • อัปเดตเมนูด้วง sudo update-grub

0

ลองทำแบบนี้ด้วยความเสี่ยงของคุณเองและเป็นทางเลือกสุดท้าย!

ฉันพยายามแก้ไข/etc/default/grubและทำงานsudo update-grubโดยไม่มีผลลัพธ์

จบลงด้วยการแก้ไข/boot/grub/grub.cfgด้วยมือโดยเฉพาะ

...
### END /etc/grub.d/00_header ###

set timeout=0
saved_entry="Ubuntu"
save_env saved_entry

### BEGIN /etc/grub.d/05_debian_theme ###
...

-1
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="lsb_release -i -s 2> /dev/null || echo Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Set this if you hide grubmenu at boot! hidden-timeout has to be 0-10
# NOT recommend with dual-boot systems
# Type ESC/ENTER at boot to make grub-menu visible again! 
# in this case hidden-timeout has to be 3-10
GRUB_DISABLE_OS_PROBER=true

แก้ปัญหา! s.grub2 @ubuntuusers! ;-)

นอกจากนี้ยังเป็นไปได้ที่จะทำให้เมนูด้วงปรากฏอีกครั้งในระหว่างการบูท!

สำคัญถ้าคุณมีข้อผิดพลาดและต้องการที่จะบูตเคอร์เนลเก่า (และมีเสถียรภาพ)!

(ทดสอบกับ Linux Mint 17.3 Rosa ซึ่งใช้ Ubuntu 14.04)


4
กรุณาอย่าซ้ำคำตอบก่อนหน้านี้
David Foerster
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.