Jak ustawić limit czasu GRUB-a i domyślny wpis uruchamiania GRUB-a?

191

W systemie Ubuntu 12.04 (lub nowszym), jak ustawić czas GRUB-a i domyślny system operacyjny (który widzę podczas uruchamiania) podczas podwójnego uruchamiania systemu Windows (7/8) i Ubuntu (12.04 lub nowszy)?

meteory
źródło
Czy możesz podać więcej informacji. Co masz na myśli przez „czas gruba” i jaki jest twój domyślny system operacyjny. Jakie są różne linie w twoim menu grub?
Julien Chau,
1
grub czas oznacza czas odliczania, kiedy muszę wybrać system operacyjny na ekranie startowym BIOS. Przepraszam, ale nie wiem dokładnie, jak nazywa się to menu wyboru systemu operacyjnego, więc opublikowałem go jako czas grub.
meteory

Odpowiedzi:

227
  • Naciśnij Alt+ F2, wpisz gksudo gedit /etc/default/grubnaciśnij Enteri wprowadź hasło.
  • Zobaczysz następującą zawartość:

    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 = „cichy plusk”
    GRUB_CMDLINE_LINUX = ""
    
  • Możesz zmienić wartość domyślną z 0 na dowolną liczbę, odpowiadającą wpisowi w menu uruchamiania Grub (pierwszy wpis to 0, drugi to 1 itd.)

  • Możesz zmienić „ukryty limit czasu” (bez menu); a także wyświetlić odliczanie ( GRUB_HIDDEN_TIMEOUT_QUIET=false)
  • Możesz zmusić menu grub, aby wyświetlało się, komentując dwie GRUB_HIDDENlinie za pomocą #na początku linii
  • I ustaw limit czasu menu grub (domyślnie jest to 10 sekund)

  • Wprowadź zmiany, naciśnij Ctrl+, Saby zapisać i Ctrl+, Qaby wyjść

  • Ważne : otwórz terminal za pomocą Ctrl+ Alt+ Ti wpisz, sudo update-grubaby zastosować właśnie wprowadzone zmiany
  • Uruchom ponownie i powinieneś zobaczyć limit czasu / domyślną zmianę wpisu

Połączone pytanie:

ish
źródło
Dzięki, @Raja, ale grub / grub2 była główną różnicą. Gdybyś miał poprawny grub2, chętnie zredagowałbym twoją odpowiedź, zamiast tworzyć inną :)
ish
dziękuję, twoja odpowiedź zadziałała, ale czy możesz wyjaśnić mi drugi i trzeci punkt (ukryty limit czasu i grub ukryte linie), do czego są przeznaczone.
meteory
2
Nie polecaj nikomu zmiany domyślnej opcji grub poprzez ustawienie dowolnego indeksu. To jest wyjątkowo nieintuicyjne i może doprowadzić do katastrofy. Użytkownik może wprowadzić niewłaściwy lub może ulec zmianie podczas aktualizacji, powodując nieoczekiwane zachowanie.
Cerin,
2
To wymaga aktualizacji związanej z podwójnym poziomem obecnego menu grub.
Hannu,
1
@Cerin, jaka jest twoja sugestia?
Blauhirn
30

Jeśli przeczytasz plik, który edytujesz w powyższym przykładzie (/ etc / default / grub), zauważysz, że pierwsze kilka linii nakazuje Ci uruchomienie update-grubpo wprowadzeniu zmian w celu zaktualizowania rzeczywistego pliku, który grub czyta do „ pobierz jego instrukcje "(/boot/grub/grub.cfg). Zauważ, że musisz go najpierw uruchomić za pomocą sudokomendy, ponieważ potrzebujesz uprawnień roota, aby faktycznie uruchomić komendę (dlatego napisano powyżej, że należy pisać sudo update-grub). Spowoduje to, że wprowadzone zmiany zostaną zapisane w /boot/grub/grub.cfg. Następne kilka linii mówi, że możesz przeczytać pełną dokumentację opcji w tym pliku (ponownie / etc / default / grub), wpisując info -f grub -n 'Simple configuration'.

To powiedziawszy, ustaw GRUB_TIMEOUT na -1, jeśli chcesz ustawić „czas grubowania” na nieokreślony. Innymi słowy, nigdy się nie uruchomi automatycznie. Będziesz musiał dokonać wyboru.

Na koniec, aby odpowiedzieć na twoje pytanie, oto opisy tych „grub ukrytych linii” prosto z wyżej wspomnianej dokumentacji:

GRUB_HIDDEN_TIMEOUT
    Wait this many seconds for a key to be pressed before displaying
    the menu.  If no key is pressed during that time, boot
    immediately.  Unset by default.

GRUB_HIDDEN_TIMEOUT_QUIET
    In conjunction with `GRUB_HIDDEN_TIMEOUT', set this to `true' to
    suppress the verbose countdown while waiting for a key to be
    pressed before displaying the menu.  Unset by default.

Mam nadzieję, że to pomoże!

Sean
źródło
14

Możesz użyć aplikacji o nazwie Grub Customizer . To jest o wiele łatwiejsze.

Możesz go zainstalować:

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

Jest na ten temat artykuł dla maniaków technicznych , w jaki sposób w prosty sposób skonfigurować menu rozruchu systemu Linux GRUB 2 . 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 tego oprogramowania:

screen_1

screen_2

screen_3

Kolappan Nathan
źródło
1
To wymaga aktualizacji związanej z podwójnym poziomem obecnego menu grub.
Hannu,
5

Postępowałem zgodnie z pierwszą odpowiedzią, ale wydaje się, że wymaga aktualizacji, jeśli uruchamiasz podwójnie z Windows 7 Pro i Ubuntu 16.04. Upewnij się również, że bezpieczny rozruch jest wyłączony w systemie BIOS.

a) Najpierw mówi use Alt+, F2kiedy myślę, że chce użyć do otwarcia okna terminala. W moim przypadku jest to Ctrl+ Alt+ T.

b) W pierwszym wejściu polecenie nie jest instalowany domyślnie w Ubuntu 16.04 . Aby obejść ten problem, wykonaj następujące czynności w Terminalu:gksudo gedit /etc/default/grubgksudo

sudo -ii naciśnij Enteri podaj hasło, a następnie Enterponownie.

następnie wpisz:

gedit /etc/default/grubi naciśnij Enter.

c) Zobaczysz teraz menu zmiany grub, jak pokazano w odpowiedzi 1. Postępuj zgodnie z jego odpowiedzią, aż dojdzie do Ctrl+, Saby zapisać zmiany. To nie działa w Ubuntu 16.04, ale powinieneś zobaczyć przycisk Zapisz w prawym górnym rogu ekranu. Kliknij na to.

d) Ctrl+, Qaby wyjść.

e) Następny typ sudo update-grubiEnter

f) Rodzaj exit. Musisz to zrobić dwa razy.

g) Uruchom ponownie

Zauważyłem, że na moim komputerze po kilku logowaniach proces uruchamiania nie wyświetlał ekranu grub podczas uruchamiania i dlatego nie mogłem dostać się do Ubuntu, ponieważ ustawiłem Windows jako domyślny rozruch z 7-sekundowym opóźnieniem na wypadek, gdyby chciał uzyskać w Ubuntu.

Aby rozwiązać ten problem, musisz przejść do systemu Windows.

  1. Kliknij menu Start i wpisz CMDw polu wyszukiwania.

  2. Kliknij prawym przyciskiem myszy linię CMD, która powinna znajdować się w górnej części ekranu po kliknięciu prawym przyciskiem myszy.

  3. Kliknij Uruchom jako administrator .

  4. W wierszu polecenia wpisz bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi. Ten wpis powoduje zarejestrowanie menu GRUB w menedżerze rozruchu systemu Windows. ( Podziękowania : Grub nie wyświetla się przy starcie systemu Windows 8.1 Ubuntu 13.10 Dual boot )

  5. W końcu ponownie uruchomiłem system Windows.

Mam nadzieję, że to pomoże.

jsfines
źródło
Czy możesz podać link do „zilustrowane w odpowiedzi 1” - nie mogłem znaleźć tego, co miałeś na myśli.
Tom Hale
Również „poszedłem za pierwszą odpowiedzią”. Możesz na przykład sformatować „Kredyt do:”. Świetny pierwszy post. Witamy w AskUbuntu.
Tom Hale
Podczas uruchamiania aplikacji graficznych, takich jak gedit as sudo, miałem dziwne załamanie X-Window. Sugeruję użycie zamiast tego edytora tekstowego, takiego jak nano.
Arthur Tacca
2
Alt+F2jest skrótem jedności do uruchomienia polecenia w tle. W menu, które zostanie otwarte, możesz wprowadzić dowolne polecenie, tak jak w terminalu. Ale ponieważ nie otwiera terminala, nie zobaczysz żadnych danych wyjściowych terminala i nie będziesz mógł wchodzić w interakcje z terminalem. Dlatego zwykle używasz go do takich rzeczy, jak uruchamianie programu GUI, takiego jak gedit. Nie możesz także używać sudo, ponieważ potrzebujesz do tego terminala. Dlatego używają gksudo(GUI sudo). Jeśli wykonujesz polecenia w terminalu, możesz po prostu użyć zwykłego w sudoten sposób: sudo gedit /etc/default/grubnie ma takiej potrzeby sudo -i.
Sebastian,
@Sebastian Do uruchomienia aplikacji graficznej sudo -Hlepiej jest np sudo -H gedit /etc/default/grub.
wjandrea
2

Używanie domyślnego wpisu opartego na liczbie zaskoczyło mnie od czasu jego wprowadzenia w GRUB. To naprawdę zły pomysł. Co powiesz na aktualizację jądra i automatyczną ponowną konfigurację grub? Co powiesz na nieświadomych użytkowników, którzy wolą wpis na końcu listy? Aktualizacje spowodowałyby uszkodzenie domyślnej konfiguracji opartej na liczbach.

Zamiast tego użyj tutaj opcji ZAPISANE, aby zapamiętać ostatnio wybrany wpis:

GRUB_DEFAULT=SAVED
GRUB_SAVEDEFAULT=TRUE

Następnie zastosuj GRUB za pomocą

sudo update-grub
CeDeROM
źródło
1
Nie jest to duży problem, ale to nie wyjaśnia, jak i gdzie wprowadzić te zmiany. Możesz połączyć się z inną odpowiedzią.
wjandrea
1

To nie działa również dla mnie 16.04.

Ale naprawiłem to, zmieniając plik /boot/grub/grub.cfg

sudo vim /etc/default/grub

edytuj grub

sudo update-grub
sudo chmod u+w /boot/grub/grub.cfg
sudo vim /boot/grub/grub.cfg

zmień wartość limitu czasu

###segment in /boot/grub/grub.cfg:
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
  #set timeout=10 # comment this original
  set timeout=0 # add this
fi

sudo chmod -w /boot/grub/grub.cfg
reboot
VictorLee
źródło
0

Można to łatwo zrobić bez żadnych kodów. Po prostu wykonaj następujące kroki.

  1. Otwórz system plików.
  2. Otwórz /etcfolder.
  3. Otwórz defaultfolder.
  4. Znajdź grubplik i otwórz go za pomocą leafpad(lub dowolnego innego edytora tekstu).
  5. Dostosuj GRUB_TIMEOUTdo swoich potrzeb i zapisz.
  6. Teraz otwórz terminal i wpisz update-grub.
  7. Uruchom ponownie system.

Otóż ​​to.

Isac varghese k
źródło
0

Myślę, że masz taką linię: GRUB_TIMEOUT_STYLE = ukryty

Zmień go na GRUB_TIMEOUT_STYLE = menu

I skomentuj wszystkie wiersze dotyczące funkcji UKRYTYCH.

Podróżnik w czasie
źródło