Jak ukryć menu GRUB wyświetlane na początku rozruchu?


42

Zatrzymałem podwójne uruchamianie i nie chcę już wybierać systemu operacyjnego. Chcę uruchomić system Ubuntu 12.04 bezpośrednio, nie widząc menu GRUB.

Jak mogę to osiągnąć?


Jeśli zatrzymałeś podwójne uruchamianie, prawdopodobnie przestałeś używać innego systemu operacyjnego. Dlaczego nie możesz usunąć drugiego systemu operacyjnego, aby Ubuntu mógł uruchomić się normalnie.
karthick87


jeśli którakolwiek z tych odpowiedzi „odpowiedziała” na twoje pytanie, zaakceptuj jedną z nich :)
blade19899

@ david6: Nie rozumiem, jak jedno z nich jest duplikatem tego pytania. Myślę, że chodzi o ukrywanie menu gruba podczas limitu czasu.
oktosiTe

Przepraszamy, drugi link miał być: askubuntu.com/questions/66070/… Obejmuje to: Ukrywanie menu Grub2 i korzystanie z domyślnej opcji menu
david6,

Odpowiedzi:


33

Możesz po prostu zmienić ustawienia gruba.

wpisz terminal

sudo -H gedit /etc/default/grub

musisz to zmienić

Zmień GRUB_HIDDEN_TIMEOUT_QUIET=falsena

GRUB_HIDDEN_TIMEOUT_QUIET=true

Zapisz plik i wyjdź

Rodzaj sudo update-grub

Jeśli nie uzyskasz pożądanego rezultatu, zobacz ten błąd .


7
obecnie jest zmieniony na True, ale nadal widzę menu grub ...
Alex Poulos

Im 12.04 i próbowałem tego, ale już powiedział „prawda” i nadal się pojawia. Jedyne inne systemy operacyjne, które mam, to bezpieczny w razie awarii i Memtest - to wszystko. Usunąłem już swoją partycję Windows i zaktualizowałem grub, a menu nadal się wyświetla.
Alex Poulos,

@AlexPoulos spójrz na ten link
hingev

2
Pracowałem dla mnie, zmieniając limit czasu na 0, a następnie wyciszając go. Dzięki
king_julien

23

Rozwiązałem ten problem, wyłączając OS Prober. Zrobiłem to, ponieważ w /boot/grub/grub.cfgczęści wygenerowanej przez szablon /etc/grub.d/30_os-proberzastąpiono „limit czasu” do 10 i „styl” do menu.

Edytuj /etc/default/grubi dodaj ten wiersz:

GRUB_DISABLE_OS_PROBER=true

Mam nadzieję, że to było przydatne!

BTW, mój pełny plik / etc / default / grub to:

GRUB_DEFAULT=0
GRUB_TIMEOUT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_DISTRIBUTOR= [...]
GRUB_DISABLE_OS_PROBER=true
GRUB_RECORDFAIL_TIMEOUT=0

Szczęśliwego kodowania


2
to działało dla mnie, ale sprawiło, że zniknęły wszystkie inne opcje rozruchu, ale domyślna ...
opensas

1
@opensas Jeśli menu wyboru nie jest wyświetlane, skąd w ogóle wiesz, jakie opcje rozruchowe się na nim pojawiają? Jeśli chcesz wyłączyć menu, dlaczego nie chcesz mieć domyślnych opcji uruchamiania?
Kyle Strand

jeśli pominiesz część „GRUB_TIMEOUT_STYLE = ukryta”, wtedy odliczanie będzie widoczne, ale nic więcej, chyba że go przerwiesz. To pozwala ci wejść do menu i zmienić ustawienia rozruchu, nawet czyniąc to o wiele mniej oczywistym.
stonecrusher

Jeśli chce się widzieć menu startowe po przytrzymaniu klawisza Shift, GRUB_TIMEOUT musi być ustawiony na wartość większą niż zero (powiedzmy, GRUB_TIMEOUT = 5). W przeciwnym razie inne opcje rozruchu (powiedzmy Windows) nie będą mogły zostać aktywowane w razie potrzeby.
user3804598,

W Ubuntu 18.04 LTS GRUB_RECORDFAIL_TIMEOUT=0jest jedyną zmianą, /etc/default/grubktóra eliminuje 30-sekundowe przekroczenie limitu czasu (oraz menu bootloadera GRUB-a), co wydaje się być błędem: bugs.launchpad.net/ubuntu/+source/grub2/+bug/1814403/ komentarze / 4 . Ponadto sudo update-grubmuszą zostać wykonane, aby zmiany zostały wprowadzone w życie, o czym nie wspomniano w odpowiedzi. Należy pamiętać, że ustawienie tej wartości na 0nie jest zalecane (patrz wyżej cytowany link), chyba że maszyna jest maszyną programistyczną lub podobną.
Ben Johnson

11

Próbowałem tych wszystkich wskazówek, które nie zadziałały, w końcu skróciłem limit czasu do zera w następujący sposób:

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

uruchom sudo update-grubpo zmianie wartości
niksmac

Dla mnie to samo. Uruchomiłem „update-grub” - nie działało.
Robin Winslow,

1
To jest mój / etc / default / grub, ale wciąż dostaję 10 sekundowe odliczanie z wyświetlonym menu grub.
zorkerz

8

Musisz edytować plik w, /etc/default/grubaby zapobiec wyświetlaniu menu grub.

Domyślnie wpisy w tych plikach wyglądają tak.

GRUB_DEFAULT = 0
# GRUB_HIDDEN_TIMEOUT = 0
GRUB_HIDDEN_TIMEOUT_QUIET = false
GRUB_TIMEOUT = 10
GRUB_DISTRIBUTOR = `lsb_release -i -s 2> / dev / null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT = „cichy plusk”
GRUB_CMDLINE_LINUX = ""
  • Usuń #znak z drugiej linii i
  • Zmień linię GRUB_HIDDEN_TIMEOUT_QUIET=falsena GRUB_HIDDEN_TIMEOUT_QUIET=true.

Po zmianach wymagana część pliku będzie wyglądać następująco

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 = ""
  • Następnie uruchom sudo update-grubpolecenie w terminalu i uruchom ponownie, aby zobaczyć wynik.

3
Miałem tę konfigurację, ale nadal pojawia się menu GRUB.

1
Przy tym ustawieniu update-grub zwraca „Ostrzeżenie: Ustawienie GRUB_TIMEOUT na wartość niezerową, gdy GRUB_HIDDEN_TIMEOUT jest ustawiony, nie jest już obsługiwane” i nadal dostaję 10 sekundowe odliczanie podczas wyświetlania menu grub. Ustawienie GRUB_TIMEOUT na 0 zwraca również te same wyniki.
zorkerz

@zorkerz, której wersji Ubuntu używasz?
Anwar,

Xenial Xerus, ale zachował się tak samo 15.10
zorkerz

5

Miałem ten sam problem i żadna z porad tutaj nie zadziałała! Jedynym sposobem była ręczna zmiana /boot/grub/grub.cfg. W pewnym momencie tego pliku upływa limit 10! Więc po prostu skomentuj te linie

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

Ale nigdy więcej nie będziesz mógł wykonać aktualizacji-gruba, w przeciwnym razie nastąpi powrót do tego samego pliku, a limit czasu znów spadnie do 10! Zapisz plik (w vi będziesz musiał go wymusić, nawet jeśli jesteś su!). Uruchom ponownie komputer, a będzie działał dobrze!


Ciekawe, czemu nie if [ "${timeout}" = 10 ]; then set timeout=0 fi ? Lub po prostu całkowicie usuń instrukcję if i po prostu wyjdź set timeout=0?
Starszy Geek

Jest tam umieszczony z szablonu, który można wyłączyć (sonda systemu operacyjnego, jak wspomniano w odpowiedzi Agustina). Nie musisz ręcznie edytować grub.cfg.
Neil Traft

to zadziałało dla mnie w 14.04
Kalamalka Kid

3

jeśli chcesz usunąć pozycję rozruchową, po prostu wpisz:

sudo update-grub

Jeśli to nie zadziała, zainstaluj menedżera uruchamiania:

sudo apt-get install startupmanager


z startup-managerem możesz

  1. wybierz z wpisem do uruchomienia,
  2. wybierz rozdzielczość i jak długo czekać przed uruchomieniem,
  3. możesz również wybrać 0 dla automatycznego uruchamiania domyślnego wpisu rozruchu

burg, ale zabiera się za gruba
Black Block

przepraszam literówka. powinien to być sudo update-grub, zredagowałem odpowiedź
blade19899

Jedynym problemem jest to, że wersja Startup-managera, którą mam, nie pokazuje wielu opcji - Imgur
Alex Poulos

1
Im 12.04 i próbowałem tego, ale już powiedział „prawda” i nadal się pojawia. Jedyne inne systemy operacyjne, które mam, to bezpieczny w razie awarii i Memtest - to wszystko. Już usunąłem partycję Windows i zaktualizowałem gruba, a menu nadal pokazuje
Alex Poulos

obok „limitu czasu w sekundach” znajduje się pole z liczbą 10 zmień nazwę na numer 0
blade19899

3

Podobnie jak Agustin , odkryłem, że mój problem dotyczył systemu operacyjnego Prober. Robiąc jeden krok lepiej niż jego rozwiązanie, znalazłem tę istotę , która pozwoli ci mieć twoje systemy operacyjne, ale nadal ukryje menu. Wystarczy pobrać te dwa pliki, włożyć je /etc/grub.di dać im takie same uprawnienia, jak inne szablony w tym katalogu.

Jeśli kiedykolwiek chcesz uzyskać dostęp do domyślnego systemu operacyjnego, po prostu przytrzymaj klawisz Shift podczas uruchamiania. To pokaże menu.


to zdecydowanie wydaje mi się błędem. czy ktoś to zgłosił ???
otwiera się

To prawda ... może kiedyś do tego dojdę. Nie mam pojęcia, czy już tam jest.
Neil Traft

3

Znalazłem proste rozwiązanie problemu.

  echo "
  set timeout_style=hidden
  set timeout=2" | sudo tee --append /etc/grub.d/40_custom 

I zaktualizuj grub. Zastąpi ustawienia limitu czasu w grub.cfg, więc nie ma znaczenia, co masz w / etc / default / grub. Mam więc ukryte menu, które można wywołać przez przesunięcie na 2 sekundy.


To podejście zadziałało dla mnie (grub 2.02 ~ beta3-4ubuntu7 zainstalowane przez Ubuntu 17.10), gdy nie zadziałało żadne inne rozwiązanie zaproponowane na tej stronie (to naprawdę pech, że przetestowałem to ostatnio: /). Dzięki!
pchaigno

2

Dodaj następujący wiersz do /etc/default/grub:

GRUB_FORCE_HIDDEN_MENU="true"

2

Widziałem wiele osób mówiących, że sugerowane odpowiedzi nie działają dla nich. Wypróbowałem kilka opcji i ta działała dla mnie :

Edytuj /etc/grub.d/00_header i znajdź:

if [ "\${recordfail}" = 1 ]; then
  set timeout=-1

Zmień na ...

if [ "\${recordfail}" = 1 ]; then
  set timeout=10

I uruchom update-grub.


2

dla was wszystkich, którzy mają rozchlapanie słów w wierszu cmd, ale kodowanie twarde 0 dla limitu czasu nie działa,

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="quiet splash"
GRUB_CMDLINE_LINUX=""

Spróbuj usunąć powitalny wyraz z drugiej linii, zaktualizuj i uruchom ponownie ,, voila, bez menu :)

hth, krex


2

zajęło mi to trochę czasu, ale opłaciło się, że to połączenie mojego własnego kopania i powyższych odpowiedzi, najpierw upewnij się, że twoje /etc/default/grubi /usr/grub/default/grubsą takie same. następnie biegnij gksu gedit /etc/grub.d/30_os-proberu góry dwóch linii, które chcemy, ale aby je znaleźć, wyszukaj styke i zmień tę linię na ukrytą, a następnie wyszukaj linię limitu czasu, powinno być tak, jakby timeout = 0ustawić na 10 usunąć tę część z if, aby zakończyć plik, upewnij się usuwasz koniec pliku lub wkręcasz, a twoja konfiguracja grub powinna rejestrować coś takiego, to moje, na przykład:

ustawia domyślny rozruch na Windows 8.1 pro

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

ustawia pięciosekundowe okno, by nacisnąć Shift, więc mogę uruchomić system Ubuntu

GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true

główna naprawa błędu na wszelki wypadek

GRUB_TIMEOUT=0

ustawia styl na ukryty

GRUB_TIMEOUT_STYLE=hidden

domyślne rzeczy Ubuntu

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

1
  • Skonfiguruj grub poprzez sudo nano /etc/default/grub
  • Wpisz koniec pliku:
GRUB_HIDDEN_TIMEOUT=0
GRUB_TIMEOUT=0
  • Zapisz zmiany CTRL+S
  • Wyjdź CTRL+X
  • Zaktualizuj menu grub sudo update-grub

0

Spróbuj tego na własne ryzyko i tylko w ostateczności!

Próbowałem edytować /etc/default/grubi uruchamiać sudo update-grubbez rezultatów.

Skończyłem edytować /boot/grub/grub.cfgręcznie, a konkretnie

...
### END /etc/grub.d/00_header ###

set timeout=0
saved_entry="Ubuntu"
save_env saved_entry

### BEGIN /etc/grub.d/05_debian_theme ###
...

-1
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=5
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR="lsb_release -i -s 2> /dev/null || echo Debian"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Set this if you hide grubmenu at boot! hidden-timeout has to be 0-10
# NOT recommend with dual-boot systems
# Type ESC/ENTER at boot to make grub-menu visible again! 
# in this case hidden-timeout has to be 3-10
GRUB_DISABLE_OS_PROBER=true

rozwiązuje problem! s.grub2 @ubuntuusers! ;-)

Możliwe jest także, aby podczas uruchamiania ponownie wyświetlić menu GRUB!

WAŻNE, jeśli masz awarię i chcesz uruchomić starsze (i stabilne) jądro!

(Testowany z Linux Mint 17.3 Rosa, który jest oparty na Ubuntu 14.04)


4
Proszę nie powtarzać wcześniejszych odpowiedzi .
David Foerster,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.