Làm cách nào để thay đổi thứ tự khởi động GRUB?


336

Tôi đã cài đặt cả Windows 7 và Ubuntu trên một máy dùng chung. Vì nhiều người không phải là nhà phát triển sử dụng Windows, tôi muốn thay đổi thứ tự khởi động để giúp họ dễ dàng hơn.

Hiện tại thứ tự khởi động trông như sau:

  • Hạt nhân Ubuntu 11.10 * 86
  • Ubuntu 11.10 kernelgeneric * 86 (khởi động an toàn)
  • Kiểm tra bộ nhớ
  • Kiểm tra bộ nhớ
  • Bật Windows 7 /dev/sda6

Làm cách nào để thay đổi thứ tự mặc định để Windows 7 đứng đầu danh sách?

  • Bật Windows 7 /dev/sda6
  • Hạt nhân Ubuntu 11.10 * 86
  • Ubuntu 11.10 kernelgeneric * 86 (khởi động an toàn)
  • Kiểm tra bộ nhớ
  • Kiểm tra bộ nhớ

5
Hỏi và trả lời tương tự: Askubfox.com/questions/52963/ Kiếm
fossfreedom

Bạn đã thực hiện 'sudo update-grub' sau khi thay đổi tệp grub chưa?
Tinellus

vâng tôi nghĩ rằng tôi có thể đã quên làm điều đó, cảm ơn bạn! Tôi sẽ cố gắng và cập nhật với kết quả.
jeffery_the_wind

kubfox 14.04 sudo apt-get install kde-config-grub2sau đó trong cấu hình hệ thống tắt máy khởi động goto
n611x007

Câu trả lời:


295

Bạn có thể sử dụng một ứng dụng GUI dễ sử dụng có tên Grub Customizer để làm cho cuộc sống của bạn dễ dàng hơn một chút. Như tên cho thấy, bạn có thể làm nhiều hơn là chỉ sắp xếp lại các mục menu GRUB với nó.

Bạn có thể cài đặt nó bằng cách:

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

(Xem Hỏi câu hỏi Ubuntu Có an toàn khi thêm PPA vào hệ thống của tôi không và một số cờ đỏ của Wikipedia có gì để xem? )

Có một bài viết về How-To Geek về nó, Cách cấu hình Menu khởi động Linux GRUB 2 một cách dễ dàng . Hãy xem nó nếu bạn quan tâm. Ngoài ra, có một chủ đề được giải quyết trên Diễn đàn Ubuntu, Thay đổi thứ tự khởi động trong GRUB 2 có đề cập đến công cụ này.

Dưới đây là một số ảnh chụp màn hình:

màn hình_1

màn hình_2

màn hình_3


Một số khắc phục sự cố:

Cài đặt Grub Customizer chỉ có thể hoạt động trong phần cài đặt Linux / Ubuntu mới nhất, cài đặt Grub.

Ví dụ: nếu ai đó đã cài đặt hai hệ điều hành (Windows và Ubuntu), sau đó cài đặt hệ điều hành thứ ba (Manjaro, v.v.) và sau đó cố gắng làm theo câu trả lời ở trên, các thay đổi của Grub Customizer sẽ không hoạt động khi được thực hiện từ HĐH thứ hai ( Ubuntu, trong ví dụ). Chương trình phải được cài đặt trong hệ điều hành, vì có vẻ như Grub Customizer chỉ có thể chỉnh sửa các tệp Grub được tạo bằng cách cài đặt hệ thống mà chính nó được cài đặt.

Các tệp xác định menu khởi động Grub trong hầu hết các trường hợp có hệ thống mới nhất được cài đặt trên máy, vì vậy Grub Customizer phải được cài đặt và sử dụng từ hệ thống Linux đó .


4
Được chào đón nhất :) Các ảnh chụp màn hình đến từ blogpost được liên kết ở trên: P
Nitin Venkatesh

2
Điều này không hoạt động với Ubuntu mới nhất. Chúng tôi có thể nhận được một bài viết cập nhật ở đây?
TẠI

7
Tôi nghĩ rằng câu trả lời của bạn là tốt và hữu ích, vì vậy xin đừng hiểu sai ý tôi. Mặc dù các công cụ GUI gọn gàng và dễ dàng, nhưng chúng che giấu sự thật. Câu trả lời của Marve dưới đây thảo luận về các tệp đang sử dụng và cách cập nhật chúng theo cách thủ công, cung cấp cái nhìn sâu sắc về cách thức hoạt động của Grub. Khi GUI thất bại, và đối với một số người, ít nhất hãy xem qua phần nền tảng - chúng không khó khăn gì cả và thao tác thủ công có thể sẽ dễ dàng hơn trong thời gian dài.
barrypicker

1
Tôi cũng gặp vấn đề khi sử dụng công cụ này. Có vẻ như nó cập nhật / etc / default / grub Correclty nhưng sau đó nó nói kết xuất lõi và bị hủy bỏ.
Mauricio Gracia Gutierrez

1
Điều này cần một bản cập nhật liên quan đến các cấp độ kép của menu grub hiện tại.
Hannu

244

Bạn cũng có thể thay đổi mục khởi động mặc định grub từ dòng lệnh mà không phải cài đặt bất kỳ công cụ bổ sung nào. Điều này sẽ không thay đổi thứ tự trong danh sách nhưng nó sẽ cho phép một hệ điều hành khác khởi động theo mặc định, nghe có vẻ giống như những gì bạn có thể muốn.

Đầu tiên, tạo một bản sao lưu của /etc/default/grub. Trong trường hợp có sự cố xảy ra, bạn có thể dễ dàng trở lại bản sao đã biết:

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

Sau đó chỉnh sửa tệp bằng cách sử dụng vimhoặc trình soạn thảo văn bản bạn chọn:

sudo vim /etc/default/grub

Tìm dòng chứa

GRUB_DEFAULT=0

và đặt nó thành

GRUB_DEFAULT=x

Đâu xlà chỉ mục của mục menu grub mà bạn muốn khởi động theo mặc định. Lưu ý rằng các mục menu là không có chỉ mục. Điều đó có nghĩa là mục đầu tiên trong danh sách là 0và mục thứ sáu thực sự 5. Vì vậy, để khởi động đến mục thứ sáu trong danh sách, dòng sẽ đọc:

GRUB_DEFAULT=5

Nếu bạn quên thứ tự của các mặt hàng, hãy xem /boot/grub/grub.cfg. Mỗi mục menu được chỉ định bởi một dòng loại:

menuentry 'Ubuntu' [options] {

Bạn cũng có thể chọn mặc định theo tên thay vì chỉ mục, ví dụ:

GRUB_DEFAULT='Ubuntu'

nếu có một menuentry 'Ubuntu'dòng trên /boot/grub/grub.cfg. Đây có thể là một phương pháp tốt hơn, vì nó không phụ thuộc vào thứ tự của các mục, có thể thay đổi.

Để sử dụng kernel trong menu phụ "Phiên bản Linux trước", hãy sử dụng:

GRUB_DEFAULT="Previous Linux Versions>x"

(đảm bảo bao gồm các trích dẫn), trong đó xchỉ mục của kernel cũ trên menu phụ hoặc tên của kernel như nó xuất hiện /boot/grub/grub.cfg. Ví dụ,

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

Sau đó, xây dựng menu grub cập nhật:

sudo update-grub

5
Lần cuối tôi nhìn grub2 tạo ra rất nhiều mục nhập một cách nhanh chóng đến nỗi thật khó để tìm ra số nào sẽ sử dụng cho một mục.
Joe

52
Sử dụng một chỉ mục có thể khá lộn xộn - danh sách các HĐH có thể thay đổi sau khi cập nhật. Nhưng bạn có thể xem /boot/grub/grub.cfg và tìm kiếm tên của hệ điều hành mặc định mong muốn. Sau đó sử dụng tên được trích dẫn thay vì một chỉ mục. Ví dụ: GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"thay vìGRUB_DEFAULT=7
geekQ

1
Điều này cần một bản cập nhật liên quan đến các cấp độ kép của menu grub hiện tại.
Hannu

5
Với phiên bản Ubuntu 16.04 hiện tại, nếu bạn muốn chọn một kernel cụ thể để khởi động, bạn cần thêm vào Advanced options for Ubuntumenu phụ, như thế này:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams

1
@BandaMuhammadAlHelal Điều đó sẽ cố gắng khởi động mục thứ 7 trong danh sách của bạn - đó có phải là điều bạn muốn không? Nếu bạn muốn mục thứ 6 trong danh sách của bạn, hãy sử dụng GRUB_DEFAULT=5.
Nick

39

Từ trang web Tombfox (bài viết của Tom ):

GRUB có thể được cấu hình bằng cách sử dụng /etc/default/grubtệp. Trước khi bạn thực hiện bất kỳ thay đổi nào đối với nó, có thể là một ý tưởng tốt để sao lưu nó bằng cách tạo một bản sao:

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

Bạn có thể khôi phục bản sao lưu trên bản gốc:

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

Mở tệp bằng trình soạn thảo văn bản với quyền root:

gksu gedit /etc/default/grub

Dòng này GRUB_DEFAULT=0có nghĩa là GRUB sẽ chọn mục menu đầu tiên để khởi động. Thay đổi điều này thành GRUB_DEFAULT=saved. Thay đổi này sẽ giúp dễ dàng thay đổi mục mặc định sau này.

Lưu và đóng tập tin. Chạy lệnh này để áp dụng các thay đổi của bạn cho cấu hình của GRUB:

sudo update-grub

Thay đổi cấu hình mà chúng tôi đã thực hiện cho phép các lệnh grub-set-default và grub-restart được sử dụng bất cứ lúc nào. Điều này cho phép bạn thay đổi mục khởi động mặc định vĩnh viễn hoặc chỉ cho lần khởi động tiếp theo, tương ứng.

Chạy grub-set-defaulthoặc grub-reboot(với sudo) với số lượng mục menu để khởi động (mục đầu tiên là 0). Lệnh này sẽ thay đổi mặc định thành mục thứ hai:

sudo grub-set-default 1

15
Câu trả lời này được lấy gần như nguyên văn từ Tombfox.com/index.php/2011/09/25/ . Vui lòng cung cấp tín dụng khi tín dụng đến hạn.
James McMahon

Câu trả lời này dường như không thay đổi thứ tự của các mục khởi động.
Sparhawk

Tôi đang sử dụng Linux Mint Debian Edition. Tôi không có / etc / default / grub, nhưng tìm thấy giá trị GRUB_DEFAULT để sửa đổi thay vào đó là trong /etc/grub.d/00_header. Sau khi sửa đổi GRUB_DEFAULT trong 00_header với tên mục khởi động mong muốn của tôi, tôi chỉ cần chạy "sudo update-grub" và voila, thành công.
Phân tích mờ

Tôi đã thấy các lệnh tương tự trong tipsonubfox.com/2016/07/20/grub2-boot-order-ubfox-16-04 Tôi nhận ra rằng các lệnh này sẽ chỉ hoạt động nếu chúng được phát ra từ hệ thống theo thứ tự khởi động 0 trước.
Gấu chó

-2

Tôi đã thử sau đây và nhận được kết quả tốt.

Mở một cửa sổ đầu cuối ( Ctrl+ Alt+ T),

sudo gksu nautilusvà nhấn Enter. Nhập mật khẩu người dùng của bạn.

Điều hướng đến tập tin /boot/grub/grub.cfg. Sao chép và Dán tệp vào cùng một thư mục, nên tạo bản sao của tệp grub.cfg cho mục đích sao lưu. Sau đó bấm đúp vào grub.cfg để mở tệp trong trình soạn thảo văn bản.

Trong tệp bạn sẽ tìm thấy dòng ( set default="0"). Chỉnh sửa 0 thành số dòng trong Grub mà bạn muốn tải. Của tôi là dòng thứ sáu, vì vậy tôi đã sử dụng 5, vì dòng đầu tiên được coi là 0. Lưu tệp. Khởi động lại máy tính và nếu bạn chọn đúng dòng, nó sẽ là dòng được tô sáng khi Grub tải.

Chúc may mắn


10
như bạn có thể thấy ở phần đầu của tập tin, nó nói rằng bạn không nên làm điều này. thay vì chỉnh sửa /etc/default/grubrồi chạy update-grub.
sazary

7
và tôi cũng không khuyên bạn nên gksu nautilus. Quá dễ dàng để thả một quả bom trong hệ thống của bạn từ đó.
sylvainulg

kiểm tra bài đăng này: psychocats.net/ubfox/bootmenu
tqjustc

Vì một số lý do, câu trả lời này được hiển thị là "câu trả lời tự động" trong google khi tìm kiếm: "thứ tự khởi động thay đổi grub".
lepe

@lepe, đừng lo lắng, đối với tôi mặc định là linuxandubfox.com/home/ mẹo
vladkras

-5

Mở một cửa sổ đầu cuối ( Ctrl+ Alt+ T) hoặc nhấn Alt+ F2.

gksu nautilusvà bấm Enter.

Điều đó sẽ mở trình duyệt tệp Nautilus với quyền thay đổi các tệp thuộc sở hữu của root.

Điều hướng đến tệp /boot/grub/grub.cfgvà nhấp đúp để mở tệp trong trình soạn thảo văn bản.

Cắt, di chuyển và dán các phần trong tệp đó thuộc về các hệ điều hành khác nhau. Bạn phải rất cẩn thận khi làm điều này, vì nếu bạn làm sai thì bạn sẽ không thể khởi động được nữa. Windows boot luôn có thể được sửa chữa bằng các công cụ từ đĩa cài đặt windows ( FIXMBR), ghi đè GRUB-MBR bằng Windows-MBR điển hình.

Tôi đã thử nghiệm nó từ Ubuntu 9.04 đến 12.04 và nó vẫn hoạt động tốt mọi lúc.

Nhưng tôi chỉ cố gắng di chuyển phần khởi động Windows lên đầu danh sách để làm cho nó trở thành mặc định.

Nếu bộ nhớ của tôi là đúng, mỗi lần khởi động phần menu trong tập tin bắt đầu với một begin... và kết thúc với một ... end. Và kéo dài nhiều hàng văn bản.

Văn bản trong tệp đó đã trở nên phức tạp hơn một chút và nó không giống với phiên bản Ubuntu trước như trong các phiên bản trước. Vì vậy, sử dụng bộ não của bạn để cứu bạn khỏi làm sai.


4
Bạn không phải chạy sudo update-grubở một số điểm?
Eliah Kagan

4
/boot/grub/grub.cfgđang bị ghi đè ở mỗi gói được cài đặt / cập nhật sẽ kích hoạt bản cập nhật của Grub, gọi một cách hiệu quả update-grub. Và điều đó tạo ra một cái mới grub.cfg. Do đó, việc định cấu hình Grub được thực hiện trong các tệp trong /etcthư mục như được giải thích bởi các câu trả lời khác, để đảm bảo rằng nó vẫn tồn tại.
gertvdijk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.