ฉันจะเปลี่ยนลำดับการบูตของ GRUB ได้อย่างไร


336

ฉันมีทั้ง Windows 7 และ Ubuntu ติดตั้งอยู่ในเครื่องที่ใช้ร่วมกัน เนื่องจากผู้พัฒนาที่ไม่ใช่นักพัฒนาจำนวนมากใช้ Windows ฉันต้องการเปลี่ยนลำดับการบู๊ตเพื่อให้ง่ายขึ้นสำหรับพวกเขา

ขณะนี้ลำดับการบูตดูเหมือนว่าต่อไปนี้:

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (บูตปลอดภัย)
  • ทดสอบหน่วยความจำ
  • ทดสอบหน่วยความจำ
  • Windows 7 บน /dev/sda6

ฉันจะเปลี่ยนลำดับเริ่มต้นเพื่อให้ Windows 7 อยู่ด้านบนสุดของรายการได้อย่างไร

  • Windows 7 บน /dev/sda6
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86 (บูตปลอดภัย)
  • ทดสอบหน่วยความจำ
  • ทดสอบหน่วยความจำ

5
คำถาม & คำตอบที่คล้ายกัน: askubuntu.com/questions/52963/ …
fossfreedom

คุณทำ 'sudo update-grub' หลังจากเปลี่ยนไฟล์ grub หรือไม่?
Tinellus

ใช่ฉันคิดว่าฉันอาจลืมทำเช่นนั้นขอบคุณ! ฉันจะลองและอัปเดตกับผลลัพธ์
jeffery_the_wind

kubuntu 14.04 sudo apt-get install kde-config-grub2จากนั้นในการกำหนดค่าเริ่มต้นระบบ goto ปิดการทำงาน
n611x007

คำตอบ:


295

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

คุณสามารถติดตั้งได้โดย:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

(ดูคำถามที่ถามเกี่ยวกับ Ubuntu มีPPA ปลอดภัยที่จะเพิ่มลงในระบบของฉันและ "ธงสีแดง" ที่ต้องระวังคืออะไร? )

มีความเป็นHow-To Geekบทความเกี่ยวกับเรื่องวิธีการกำหนดค่าลินุกซ์ด้วง 2 Boot เมนูวิธีที่ง่าย ลองดูสิถ้าคุณสนใจ นอกจากนี้ยังมีเธรดที่แก้ไขแล้วบนฟอรัม Ubuntu เปลี่ยนลำดับการบู๊ตใน GRUB 2ที่กล่าวถึงเครื่องมือนี้

นี่คือภาพหน้าจอบางส่วน:

SCREEN_1

screen_2

screen_3


การแก้ไขปัญหาบางอย่าง:

การตั้งค่า Grub Customizer อาจทำงานได้จากการติดตั้ง Linux / Ubuntu ล่าสุดเท่านั้นซึ่งเป็นการติดตั้ง Grub

ตัวอย่างเช่นหากใครบางคนติดตั้งระบบปฏิบัติการสองระบบ (Windows และ Ubuntu) จากนั้นติดตั้งระบบปฏิบัติการตัวที่สาม (Manjaro ฯลฯ ) จากนั้นลองทำตามคำตอบด้านบนการเปลี่ยนแปลงตัวปรับแต่ง Grub จะไม่ทำงานเมื่อสร้างจากระบบปฏิบัติการที่สอง ในตัวอย่างของ Ubuntu) ต้องทำการติดตั้งโปรแกรมในระบบปฏิบัติการที่สามเนื่องจากดูเหมือนว่า Grub Customizer จะสามารถแก้ไขไฟล์ Grub ที่สร้างโดยการติดตั้งระบบที่ติดตั้งตัวเองเท่านั้น

แฟ้มที่กำหนดเมนูการบูตด้วงมาในกรณีส่วนใหญ่กับระบบใหม่ล่าสุดติดตั้งในเครื่องเพื่อให้ด้วง Customizer จะต้องมีการติดตั้งและใช้จากที่ระบบ Linux


4
ยินดีต้อนรับมากที่สุด :) ภาพหน้าจอมาจากบล็อกที่เชื่อมโยงด้านบน: P
Nitin Venkatesh

2
สิ่งนี้ใช้ไม่ได้กับ Ubuntu ล่าสุด เราสามารถรับโพสต์อัพเดทที่นี่ได้ไหม
AT

7
ฉันคิดว่าคำตอบของคุณดีและเป็นประโยชน์ดังนั้นโปรดอย่าเข้าใจฉันผิด ในขณะที่เครื่องมือ GUI นั้นเรียบร้อยและใช้งานง่าย แต่พวกเขาก็ซ่อนข้อเท็จจริง คำตอบของ Marve ด้านล่างจะอธิบายถึงไฟล์ที่ใช้งานและวิธีการอัปเดตด้วยตนเองโดยให้ข้อมูลเชิงลึกว่า Grub ทำงานอย่างไร เมื่อ GUI ล้มเหลวและสำหรับบางคนอย่างน้อยก็มองที่การสนับสนุน - พวกเขาไม่ได้ยากอะไรเลยและการจัดการด้วยตนเองอาจจะง่ายกว่าในระยะยาว
barrypicker

1
ฉันเจอปัญหาในการใช้เครื่องมือนี้ ดูเหมือนว่ามันจะอัพเดต / etc / default / grub correclty แต่แล้วมันก็บอกว่าการถ่ายโอนข้อมูลหลักและยกเลิก
Mauricio Gracia Gutierrez

1
จำเป็นต้องมีการอัพเดทที่เกี่ยวข้องกับเมนูด้วงสองระดับในปัจจุบัน
Hannu

243

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

/etc/default/grubก่อนให้สำเนาสำรองของ ในกรณีที่มีข้อผิดพลาดคุณสามารถเปลี่ยนกลับไปเป็นสำเนาที่รู้จักได้ดี:

sudo cp /etc/default/grub /etc/default/grub.bak

จากนั้นแก้ไขไฟล์โดยใช้vimหรือแก้ไขข้อความที่คุณเลือก:

sudo vim /etc/default/grub

ค้นหาบรรทัดที่มี

GRUB_DEFAULT=0

และตั้งเป็น

GRUB_DEFAULT=x

โดยที่xเป็นดัชนีของรายการเมนูด้วงที่คุณต้องการบูตโดยค่าเริ่มต้น โปรดทราบว่ารายการเมนูจะไม่มีดัชนี นั่นหมายความว่ารายการแรกในรายการเป็นและที่รายการที่หกเป็นจริง0 5ดังนั้นในการบู๊ตรายการที่หกในรายการบรรทัดจะอ่าน:

GRUB_DEFAULT=5

/boot/grub/grub.cfgถ้าคุณลืมลำดับของรายการที่จะดูที่ รายการเมนูแต่ละรายการจะถูกระบุด้วยบรรทัดประเภท:

menuentry 'Ubuntu' [options] {

นอกจากนี้คุณยังสามารถเลือกค่าเริ่มต้นด้วยชื่อแทนดัชนีเช่น:

GRUB_DEFAULT='Ubuntu'

ถ้ามีเส้นmenuentry 'Ubuntu' /boot/grub/grub.cfgนี่อาจเป็นวิธีที่ดีกว่าเนื่องจากไม่ได้ขึ้นอยู่กับลำดับของรายการซึ่งอาจเปลี่ยนแปลงได้

ในการใช้เคอร์เนลในเมนูย่อย "เวอร์ชัน Linux ก่อนหน้า" ให้ใช้:

GRUB_DEFAULT="Previous Linux Versions>x"

(ให้แน่ใจว่าจะรวมถึงใบเสนอราคา) ซึ่งเป็นดัชนีของเคอร์เนลเก่าในเมนูย่อยหรือชื่อของเคอร์เนลตามที่ปรากฏในx /boot/grub/grub.cfgตัวอย่างเช่น,

GRUB_DEFAULT="Previous Linux Versions>4.13.0-43-generic"

จากนั้นสร้างเมนูด้วงที่อัพเดต:

sudo update-grub

5
ล่าสุดฉันดู grub2 สร้างรายการจำนวนมากได้ทันทีว่ามันยากที่จะคิดออกว่าหมายเลขใดที่จะใช้สำหรับรายการ
Joe

52
การใช้ดัชนีอาจค่อนข้างยุ่งเหยิง - รายการระบบปฏิบัติการสามารถเปลี่ยนแปลงได้หลังจากการอัพเดท แต่คุณสามารถดู /boot/grub/grub.cfg และค้นหาชื่อของระบบปฏิบัติการเริ่มต้นที่ต้องการ จากนั้นใช้ชื่อที่ยกมาแทนดัชนี ตัวอย่าง: GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"แทนที่จะGRUB_DEFAULT=7
geekQ

1
จำเป็นต้องมีการอัพเดทที่เกี่ยวข้องกับเมนูด้วงสองระดับในปัจจุบัน
Hannu

5
ด้วยเวอร์ชันปัจจุบันของ Ubuntu 16.04 หากคุณต้องการเลือกเคอร์เนลเฉพาะที่จะบู๊ตคุณต้องเพิ่มAdvanced options for Ubuntuเมนูย่อยเช่นนี้:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams

1
@BandaMuhammadAlHelal นั่นจะพยายามบูตรายการที่ 7 ในรายการของคุณ - นั่นคือสิ่งที่คุณต้องการ? ถ้าคุณต้องการให้รายการที่ 6 GRUB_DEFAULT=5ในรายการของคุณใช้
Nick

39

จากเว็บไซต์ tombuntu (บทความโดยTom ):

ด้วงสามารถกำหนดค่าการใช้/etc/default/grubไฟล์ ก่อนที่คุณจะทำการเปลี่ยนแปลงใด ๆ คุณควรสำรองข้อมูลด้วยการสร้างสำเนา:

sudo cp /etc/default/grub /etc/default/grub.bak

คุณสามารถคืนค่าการคัดลอกข้อมูลสำรองจากต้นฉบับ:

sudo cp /etc/default/grub.bak /etc/default/grub

เปิดไฟล์โดยใช้เท็กซ์เอดิเตอร์พร้อมกับสิทธิพิเศษรูท:

gksu gedit /etc/default/grub

บรรทัดGRUB_DEFAULT=0หมายความว่าด้วงจะเลือกรายการเมนูแรกที่จะบู๊ต GRUB_DEFAULT=savedการเปลี่ยนแปลงนี้ การเปลี่ยนแปลงนี้จะทำให้ง่ายต่อการเปลี่ยนรายการเริ่มต้นในภายหลัง

บันทึกและปิดไฟล์ เรียกใช้คำสั่งนี้เพื่อใช้การเปลี่ยนแปลงกับการกำหนดค่าของ GRUB:

sudo update-grub

การเปลี่ยนแปลงการกำหนดค่าที่เราทำอนุญาตให้ใช้คำสั่ง grub-set-default และ grub-reboot ได้ตลอดเวลา สิ่งเหล่านี้ช่วยให้คุณสามารถเปลี่ยนรายการบูตเริ่มต้นอย่างถาวรหรือเฉพาะสำหรับการบูตครั้งถัดไปตามลำดับ

เรียกใช้grub-set-defaultหรือgrub-reboot(ด้วยsudo) ด้วยจำนวนรายการเมนูที่จะบูต (รายการแรกคือ 0) คำสั่งนี้จะเปลี่ยนค่าเริ่มต้นเป็นรายการที่สอง:

sudo grub-set-default 1

15
คำตอบนี้จะนำมาเกือบคำต่อคำจากtombuntu.com/index.php/2011/09/25/... โปรดให้เครดิตเมื่อเครดิตครบกำหนด
James McMahon

คำตอบนี้ดูเหมือนจะไม่เปลี่ยนลำดับของรายการบูต
Sparhawk

ฉันใช้ Linux Mint Debian Edition ฉันไม่มี / etc / default / grub แต่พบว่าค่า GRUB_DEFAULT ที่จะแก้ไขนั้นเป็น /etc/grub.d/00_header แทน หลังจากแก้ไข GRUB_DEFAULT ใน 00_header ด้วยชื่อรายการบูตที่ฉันต้องการฉันแค่เรียกใช้ "sudo update-grub" และ voila ความสำเร็จ
วิเคราะห์ฟัซซี

ฉันเห็นคำสั่งเดียวกันเหล่านี้ในtipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04ฉันรู้ว่าคำสั่งเหล่านี้จะทำงานได้ก็ต่อเมื่อพวกเขาออกจากระบบตามลำดับการบูต 0 ก่อน
Sun Bear

-2

ฉันลองต่อไปนี้และได้ผลลัพธ์ที่ดี

เปิดหน้าต่างเทอร์มินัล ( Ctrl+ Alt+ T)

พิมพ์sudo gksu nautilusและกด Enter พิมพ์รหัสผ่านผู้ใช้ของคุณ

/boot/grub/grub.cfgนำทางไปยังแฟ้ม คัดลอกและวางไฟล์ลงในไดเรกทอรีเดียวกันควรสร้างสำเนาของไฟล์ grub.cfg เพื่อการสำรองข้อมูล จากนั้นดับเบิลคลิกที่ grub.cfg เพื่อเปิดไฟล์ในโปรแกรมแก้ไขข้อความ

ในไฟล์คุณจะพบบรรทัด ( set default="0") แก้ไข 0 ถึงหมายเลขบรรทัดใน Grub ที่คุณต้องการโหลด Mine เป็นบรรทัดที่หกดังนั้นฉันใช้ 5 เนื่องจากบรรทัดแรกถือว่าเป็น 0 บันทึกไฟล์ รีบูทพีซีและถ้าคุณเลือกบรรทัดที่ถูกต้องมันจะเป็นไฮไลต์เมื่อ Grub โหลด

โชคดี


10
อย่างที่คุณเห็นในตอนต้นของไฟล์มันบอกว่าคุณไม่ควรทำ แทนที่จะแก้ไขและเรียกใช้/etc/default/grub update-grub
sazary

7
และฉันจะไม่แนะนำให้ gksu nautilus อย่างใดอย่างหนึ่ง ง่ายเกินไปที่จะทิ้งระเบิดไว้ในระบบของคุณ
sylvainulg

ตรวจสอบโพสต์นี้: Psychocats.net/ubuntu/bootmenu
tqjustc

ด้วยเหตุผลบางอย่างคำตอบนี้แสดงเป็น "คำตอบอัตโนมัติ" ใน google เมื่อค้นหา: "grub change boot order"
lepe

@lepe ไม่ต้องกังวลสำหรับฉันเริ่มต้นคือlinuxandubuntu.com/home/…
vladkras

-5

เปิดหน้าต่าง terminal ( Ctrl+ Alt+ T) หรือกด+AltF2

ประเภทและกดgksu nautilusEnter

ที่จะเปิดไฟล์เบราว์เซอร์ Nautilus โดยได้รับอนุญาตให้เปลี่ยนไฟล์ที่ root เป็นเจ้าของ

นำทางไปยังไฟล์/boot/grub/grub.cfgและดับเบิลคลิกเพื่อเปิดไฟล์ในเท็กซ์เอดิเตอร์

ตัดย้ายและวางส่วนต่างๆในไฟล์นั้นซึ่งเป็นของระบบปฏิบัติการอื่น คุณต้องระวังให้มากเมื่อทำสิ่งนี้ราวกับว่าคุณทำผิดคุณจะไม่สามารถบู๊ตได้อีกต่อไป การบู๊ตของ Windows สามารถซ่อมแซมได้ด้วยเครื่องมือต่าง ๆ จากแผ่นดิสก์การติดตั้ง windows ( FIXMBR) ซึ่งเขียนทับ GRUB-MBR ด้วย Windows-MBR ทั่วไป

ฉันได้ทำการทดสอบจาก Ubuntu 9.04 ถึง 12.04 และทำงานได้ดีทุกครั้ง

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

หากหน่วยความจำของฉันถูกต้องในแต่ละส่วนเมนูการบูตในแฟ้มเริ่มต้นด้วยbegin... และลงท้ายด้วย end... และครอบคลุมแถวข้อความหลายแถว

ข้อความในไฟล์นั้นมีความซับซ้อนขึ้นเล็กน้อยและดูไม่เหมือนกันใน Ubuntu เวอร์ชันล่าสุดเหมือนในเวอร์ชั่นก่อนหน้า ดังนั้นใช้สมองของคุณเพื่อช่วยให้คุณไม่ผิดพลาด


4
คุณไม่ต้องวิ่งsudo update-grubในบางจุดใช่ไหม
Eliah Kagan

4
/boot/grub/grub.cfgจะถูกเขียนทับที่ทุกแพคเกจการติดตั้ง / update-grubการปรับปรุงการเรียกการปรับปรุงด้วงได้อย่างมีประสิทธิภาพกล่าวอ้าง grub.cfgและที่สร้างใหม่ ดังนั้นการกำหนดค่า Grub จะกระทำในไฟล์ใน/etcไดเรกทอรีตามที่อธิบายโดยคำตอบอื่น ๆ เพื่อให้แน่ใจว่าเป็นแบบถาวร
gertvdijk
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.