Jak zmienić kolejność uruchamiania GRUB?

336

Mam zarówno system Windows 7, jak i Ubuntu zainstalowany na wspólnej maszynie. Ponieważ wielu nie-programistów używa systemu Windows, chciałbym zmienić kolejność uruchamiania, aby im to ułatwić.

Obecnie kolejność uruchamiania wygląda następująco:

  • Jądro systemu Ubuntu 11.10 * 86
  • Jądro systemu Ubuntu 11.10 * 86 (bezpieczny rozruch)
  • Test pamięci
  • Test pamięci
  • Windows 7 włączony /dev/sda6

Jak zmienić domyślną kolejność, aby system Windows 7 znalazł się na górze listy?

  • Windows 7 włączony /dev/sda6
  • Jądro systemu Ubuntu 11.10 * 86
  • Jądro systemu Ubuntu 11.10 * 86 (bezpieczny rozruch)
  • Test pamięci
  • Test pamięci
chrisjlee
źródło
5
Podobne pytania i odpowiedzi: askubuntu.com/questions/52963/…
fossfreedom
Czy zrobiłeś „sudo update-grub” po zmianie pliku grub?
Tinellus
tak, myślę, że mogłem o tym zapomnieć, dziękuję! Spróbuję zaktualizować wyniki.
jeffery_the_wind
kubuntu 14.04 sudo apt-get install kde-config-grub2następnie w konfiguracji systemu goto zamknięcie uruchamiania
n611x007

Odpowiedzi:

295

Możesz użyć łatwej w obsłudze aplikacji GUI o nazwie Grub Customizer, aby nieco ułatwić sobie życie. Jak sama nazwa wskazuje, możesz zrobić znacznie więcej niż tylko zmieniać kolejność pozycji menu GRUB.

Możesz go zainstalować:

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

(Zobacz pytanie Zadaj Ubuntu. Czy PPA można bezpiecznie dodać do mojego systemu i na jakie „czerwone flagi” należy uważać? )

Jest na ten temat artykuł dla maniaków technicznych , w jaki sposób w prosty sposób skonfigurować menu rozruchu systemu Linux GRUB 2 . Spójrz na to, jeśli jesteś zainteresowany. Na forach Ubuntu znajduje się również rozwiązany wątek: Zmień kolejność uruchamiania w GRUB 2, który wspomina o tym narzędziu.

Oto kilka zrzutów ekranu:

screen_1

screen_2

screen_3


Niektóre rozwiązywanie problemów:

Ustawienia Grub Customizer mogą działać tylko z poziomu najnowszej instalacji Linux / Ubuntu, tej, która zainstalowała Grub.

Na przykład, jeśli ktoś ma zainstalowane dwa systemy operacyjne (Windows i Ubuntu), a następnie zainstaluje trzeci system operacyjny (Manjaro itp.), A następnie spróbuje zastosować się do powyższej odpowiedzi, zmiany Grub Customizer nie będą działać, gdy zostaną wykonane z drugiego systemu operacyjnego ( Ubuntu, w przykładzie). Program musi zostać zainstalowany w trzecim systemie operacyjnym, ponieważ wydaje się, że Grub Customizer może edytować tylko pliki Grub utworzone podczas instalacji systemu, w którym sam jest zainstalowany.

Pliki, które określają menu rozruchowe Grub, pochodzą w większości przypadków z najnowszym systemem zainstalowanym na komputerze, więc Grub Customizer musi być zainstalowany i używany z tego systemu Linux.

Nitin Venkatesh
źródło
4
Serdecznie witamy :) Zrzuty ekranu pochodzą z linku powyżej: P
Nitin Venkatesh
2
To nie działa z najnowszym Ubuntu. Czy możemy dostać zaktualizowany post tutaj?
AT
7
Myślę, że twoja odpowiedź jest dobra i pomocna, więc nie zrozum mnie źle. Chociaż narzędzia GUI są schludne i łatwe, ukrywają fakty. Poniższa odpowiedź Marve omawia używane pliki i sposób ich ręcznej aktualizacji, zapewniając wgląd w to, jak działa Grub. Kiedy GUI zawiedzie, a dla niektórych będzie to przynajmniej rzucić okiem na podstawy - nie są one wcale takie trudne, a ręczne manipulowanie będzie prawdopodobnie łatwiejsze na dłuższą metę.
barrypicker
1
Miałem też problemy z używaniem tego narzędzia. Wygląda na to, że aktualizuje poprawność / etc / default / grub, ale potem mówi zrzut pamięci i przerwanie.
Mauricio Gracia Gutierrez
1
To wymaga aktualizacji związanej z podwójnym poziomem obecnego menu grub.
Hannu,
243

Możesz także zmienić domyślny wpis uruchamiania GRUB-a z wiersza poleceń bez konieczności instalowania dodatkowego narzędzia. Nie zmieni to kolejności na liście, ale domyślnie pozwoli na uruchomienie innego systemu operacyjnego, co i tak brzmi jak możesz.

Najpierw wykonaj kopię zapasową /etc/default/grub. Jeśli coś pójdzie nie tak, możesz łatwo powrócić do znanej dobrej kopii:

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

Następnie edytuj plik za pomocą vimlub dowolnego edytora tekstu:

sudo vim /etc/default/grub

Znajdź linię, która zawiera

GRUB_DEFAULT=0

i ustaw na

GRUB_DEFAULT=x

gdzie xjest indeks elementu menu Grub, do którego domyślnie chcesz uruchomić komputer. Zauważ, że pozycje menu są indeksowane od zera. Oznacza to, że pierwszą pozycją na liście jest 0i że szósta pozycja jest w rzeczywistości 5. Aby uruchomić szósty element na liście, wiersz brzmiałby:

GRUB_DEFAULT=5

Jeśli zapomniałeś kolejności przedmiotów, spójrz na /boot/grub/grub.cfg. Każda pozycja menu jest określona przez linię typu:

menuentry 'Ubuntu' [options] {

Możesz również wybrać domyślną nazwę zamiast indeksu, np .:

GRUB_DEFAULT='Ubuntu'

jeśli była menuentry 'Ubuntu'linia /boot/grub/grub.cfg. Może to być lepsza metoda, ponieważ nie zależy ona od kolejności wpisów, które mogą ulec zmianie.

Aby użyć jądra w podmenu „Poprzednie wersje Linux”:

GRUB_DEFAULT="Previous Linux Versions>x"

(pamiętaj o uwzględnieniu cudzysłowów), gdzie xjest indeks starego jądra w podmenu lub nazwa jądra, w jakim się pojawia /boot/grub/grub.cfg. Na przykład,

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

Następnie skompiluj zaktualizowane menu GRUB:

sudo update-grub
Charles
źródło
5
Ostatnio, kiedy patrzyłem, Grub2 generuje tak wiele wpisów w locie, że naprawdę trudno jest ustalić, jakiej liczby użyć dla wpisu.
Joe
52
Korzystanie z indeksu może być dość nieporządne - lista systemów operacyjnych może ulec zmianie po aktualizacji. Ale możesz zajrzeć do /boot/grub/grub.cfg i wyszukać nazwę pożądanego domyślnego systemu operacyjnego. Następnie użyj cytowanej nazwy zamiast indeksu. Przykład: GRUB_DEFAULT="Microsoft Windows XP Professional (on /dev/sda1)"zamiastGRUB_DEFAULT=7
geekQ
1
To wymaga aktualizacji związanej z podwójnym poziomem obecnego menu grub.
Hannu,
5
W bieżącej wersji Ubuntu 16.04, jeśli chcesz wybrać konkretne jądro, z którego chcesz się uruchomić, musisz dodać do Advanced options for Ubuntupodmenu, tak jak poniżej:GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 4.4.0-34-generic'
Geoff Williams
1
@BandaMuhammadAlHelal To będzie próba uruchomienia siódmego elementu na liście - czy tego właśnie chcesz? Jeśli chcesz 6. pozycję na liście, użyj GRUB_DEFAULT=5.
Nick
39

Ze strony tombuntu (artykuł Toma ):

GRUB można skonfigurować za pomocą /etc/default/grubpliku. Przed wprowadzeniem jakichkolwiek zmian warto utworzyć kopię zapasową, tworząc kopię:

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

Możesz przywrócić kopię zapasową na oryginale:

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

Otwórz plik za pomocą edytora tekstu z uprawnieniami administratora:

gksu gedit /etc/default/grub

Wiersz GRUB_DEFAULT=0oznacza, że ​​GRUB wybierze pierwszy element menu do uruchomienia. Zmień to na GRUB_DEFAULT=saved. Ta zmiana ułatwi później zmianę domyślnego elementu.

Zapisz i zamknij plik. Uruchom to polecenie, aby zastosować zmiany w konfiguracji GRUB:

sudo update-grub

Dokonana przez nas zmiana konfiguracji pozwala na użycie poleceń grub-set-default i grub-reboot w dowolnym momencie. Umożliwiają one zmianę domyślnego elementu rozruchowego odpowiednio na stałe lub tylko dla następnego rozruchu.

Uruchom grub-set-defaultlub grub-reboot(z sudo) z numerem pozycji menu do uruchomienia (pierwsza pozycja to 0). To polecenie zmieni wartość domyślną na drugą pozycję:

sudo grub-set-default 1
silenTK
źródło
15
Ta odpowiedź jest niemal dosłownie z tombuntu.com/index.php/2011/09/25/… . Podaj kredyt, gdy kredyt jest należny.
James McMahon
Ta odpowiedź nie wydaje się zmieniać kolejności elementów rozruchowych.
Sparhawk
Używam Linux Mint Debian Edition. Nie miałem / etc / default / grub, ale znalazłem wartość GRUB_DEFAULT, którą należy zmodyfikować, zamiast tego w /etc/grub.d/00_header. Po zmodyfikowaniu GRUB_DEFAULT w 00_header moją pożądaną nazwą wpisu rozruchowego, po prostu uruchomiłem „sudo update-grub” i voila, sukces.
Analiza rozmyta
Te same polecenia widziałem w tipsonubuntu.com/2016/07/20/grub2-boot-order-ubuntu-16-04. Uświadomiłem sobie, że te polecenia będą działać tylko wtedy, gdy zostaną wydane z systemu w kolejności rozruchu 0 w pierwszej kolejności.
Sun Bear
-2

Próbowałem następujących i uzyskałem dobre wyniki.

Otwórz okno terminala ( Ctrl+ Alt+ T),

Wpisz sudo gksu nautilusi naciśnij Enter. Wpisz hasło użytkownika.

Przejdź do pliku /boot/grub/grub.cfg. Skopiuj i wklej plik do tego samego katalogu, należy utworzyć kopię pliku grub.cfg w celu wykonania kopii zapasowej. Następnie kliknij dwukrotnie grub.cfg, aby otworzyć plik w edytorze tekstu.

W pliku znajduje się linia ( set default="0"). Edytuj 0 do numeru linii w Grub, którą chcesz załadować. Mój był szóstą linią, więc użyłem 5, ponieważ pierwsza linia jest uważana za 0. Zapisz plik. Uruchom ponownie komputer, a jeśli wybierzesz prawidłową linię, będzie podświetlona, ​​gdy zostanie załadowany Grub.

Powodzenia

Outkast
źródło
10
jak widać na początku pliku, mówi, że nie powinieneś tego robić. zamiast tego edytuj, /etc/default/gruba następnie uruchom update-grub.
sazary
7
i nie polecałbym też gksu nautilus. Stamtąd zbyt łatwo zrzucić bombę do systemu.
sylvainulg
sprawdź ten post: psychocats.net/ubuntu/bootmenu
tqjustc
Z jakiegoś powodu ta odpowiedź jest wyświetlana w Google jako „automatyczna odpowiedź” podczas wyszukiwania: „grub zmiana kolejności rozruchu”.
lepe
@lepe, nie martw się, dla mnie domyślnie jest linuxandubuntu.com/home/…
vladkras
-5

Otwórz okno terminala ( Ctrl+ Alt+ T) lub naciśnij Alt+ F2.

Wpisz gksu nautilusi naciśnij Enter.

To otworzy przeglądarkę plików Nautilus z uprawnieniami do zmiany plików należących do roota.

Przejdź do pliku /boot/grub/grub.cfgi kliknij dwukrotnie, aby otworzyć plik w edytorze tekstu.

Wytnij, przenieś i wklej sekcje w tym pliku, który należy do różnych systemów operacyjnych. Musisz być bardzo ostrożny, ponieważ robiąc to źle, nie będziesz już mógł uruchomić systemu. Rozruch systemu Windows można zawsze naprawić za pomocą narzędzi z dysku instalacyjnego systemu Windows ( FIXMBR), który zastępuje GRUB-MBR typowym systemem Windows-MBR.

Przetestowałem to od Ubuntu 9.04 do 12.04 i za każdym razem działało dobrze.

Ale próbowałem tylko przenieść sekcję rozruchową systemu Windows na górę listy, aby stała się domyślna.

Jeśli moja pamięć jest poprawna, każda sekcja menu startowe w pliku zaczyna się od begin... i kończy się ... end. I obejmuje wiele wierszy tekstu.

Tekst w tym pliku stał się nieco bardziej skomplikowany i nie wygląda tak samo w ostatniej wersji Ubuntu, jak w poprzednich wersjach. Więc użyj swojego mózgu, aby uchronić cię przed popełnieniem błędu.

Curt Jonsson
źródło
4
Czy nie musisz kiedyś biegać sudo update-grub?
Eliah Kagan
4
/boot/grub/grub.cfgjest nadpisywany przy każdym zainstalowanym / aktualizowanym pakiecie, wyzwalając aktualizację Gruba, skutecznie wywołując update-grub. I to generuje nowe grub.cfg. Dlatego konfiguracja Grub odbywa się w plikach w /etckatalogu, jak wyjaśniono w innych odpowiedziach, aby upewnić się, że jest trwały.
gertvdijk