ทำอย่างไรถึงจะได้ grub2 เพื่อจดจำตัวเลือกสุดท้าย


102

Grub2 - เอกสารชุมชนของ Ubuntuบอกว่า:

การบันทึกระบบปฏิบัติการสามารถทำได้โดยการเรียกใช้ sudo grub-set-default หาก DEFAULT = บันทึกถูกตั้งค่าใน / etc / default / grub มันอาจถูกบันทึกหาก GRUB_SAVEDEFAULT = true ถูกตั้งค่าใน / etc / default / grub ด้วย ในกรณีนี้ระบบปฏิบัติการเริ่มต้นจะยังคงอยู่จนกว่าจะมีการเลือกระบบปฏิบัติการใหม่จากเมนู GRUB 2 หรือรันคำสั่ง grub-set-default

ฉันใส่เส้นDEFAULT=savedและGRUB_SAVEDEFAULT=trueในและวิ่ง/etc/default/grub sudo grub-set-defaultนี่คือผลลัพธ์:

$ sudo grub-set-default
entry not specified.
Usage: grub-set-default [OPTION] entry
Set the default boot entry for GRUB.

  -h, --help              print this message and exit
  -v, --version           print the version information and exit
  --boot-directory=DIR    expect GRUB images under the directory DIR/grub
                          instead of the /boot/grub directory

ENTRY is a number or a menu item title.

Report bugs to <bug-grub@gnu.org>.

ฉันทำตามเอกสารไม่ถูกต้องหรือไม่? วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?


2
หลังจากเปลี่ยนไฟล์ด้วงคุณจะต้องรัน " sudo update-grub" เสมอ
Julien Chau

เพิ่งรัน: sudo grub-set-default save แล้วมันง่ายมาก
T. Coles

คำตอบ:


153

เอกสารในกรณีนี้ผิด ตัวแปรทั้งหมดใน/etc/default/grubการเริ่มต้นด้วยGRUB_ดังนั้นจึงGRUB_DEFAULT=saved, ไม่ DEFAULT=savedฉันแก้ไข Ubuntu wiki เพื่อให้สะท้อนถึงสิ่งนั้นแล้ว

คู่มือด้วงอย่างเป็นทางการอธิบายสิ่งนี้อย่างถูกต้อง: http://www.gnu.org/software/grub/manual/grub.html#Simple-configuration

ใส่ต่อไปนี้ใน/etc/default/grub:

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

จากนั้นเรียกใช้:

sudo update-grub

4
+1 สำหรับลิงก์ฉันได้แก้ไขคำตอบของคุณด้วยโซลูชันที่ใช้งานได้สำหรับฉัน (ซึ่งฉันได้รับจากลิงก์ที่คุณให้ไว้)
Jay Sullivan

ลิงก์ในคำตอบนี้ใช้งานไม่ได้ 'หน้า 404'
sdlins

ฉันควรจะลบโฆษณาที่มีอยู่GRUB_DEFAULT=0?
25

@ user25 ใช่ลบGRUB_DEFAULT=0บรรทัดควรอ่านGRUB_DEFAULT=saved
ctrl-alt-delor

4

ในกรณีของฉันมันไม่ทำงานสำหรับรายการที่กำหนดผ่านทาง/etc/grub.d/40_customที่ขาดหายไปในsavedefaultบรรทัด

menuentry "Chameleon" {
    savedefault ### <<<< this must be added
    set root="(hd1)"
    chainloader +1
}

3

คุณลืมหมายเลข (เช่น "รายการคือหมายเลขหรือชื่อรายการเมนู" ในข้อความของคุณ)

sudo grub-set-default 1

สำหรับตัวเลือก 1 จะเป็นค่าเริ่มต้น

เรียกใช้เสมอsudo update-grubหลังจากแก้ไข/etc/default/grubไฟล์เพื่อใช้การเปลี่ยนแปลง


7
สิ่งนี้ใช้ไม่ได้สำหรับฉันมันแค่ตั้งค่าเมนู GRUB ให้ชี้ไปที่รายการ # 1 ไม่ใช่ตัวเลือกสุดท้าย
Jay Sullivan

หากตัวเลือกเมนูของคุณจะถูกฝังในเมนูย่อยเช่นใน 'ตัวเลือกขั้นสูงสำหรับอูบุนตู' รูปแบบคือ 'เมนูย่อยดัชนี> เมนูย่อยรายการดัชนี' ดังนั้นคุณต้องระบุ 1> 'ดัชนีของทางเลือกของคุณ' คุณควรจะสามารถระบุด้วยชื่อสตริงสำหรับการเลือกแต่ละรายการ
Epu

2

บันทึกค่าเริ่มต้นจะไม่ทำงานหากไม่มีส่วนหัวที่เหมาะสมในการสร้างอัตโนมัติ grub.cfg

ในการสร้างส่วนหัวที่เหมาะสมคุณต้องตั้งค่าใน / etc / default / grub

GRUB_DEFAULT=saved

และสร้าง grub-mkconfig เพื่อทดแทนสำเนา grub.cfg ของคุณ

grub-mkconfig -o /boot/grub.cfg

บันทึกค่าเริ่มต้นจาก Grub 2.02 ไม่ต้องการอาร์กิวเมนต์เพิ่มเติม

คุณสามารถดูแหล่งที่มาของค่าเริ่มต้นที่บันทึกไว้ใน grub.cfg


ดูคำตอบจาก @ccpizza อาจช่วยได้: askubuntu.com/a/674148/97838
Hibou57
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.