Używam Ubuntu 12.04.
Nie mogę przez całe życie sprawić, by menu GRUB (z opcjami) zniknęło.
Chciałbym, aby automatycznie uruchomił się w pierwszej opcji. Edytowałem / etc / default / grub, aby wyglądało to tak:
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=""
Następnie uruchomiłem sudo update-grub . Potem zdałem sobie sprawę, że mam grub 2, więc uruchomiłem sudo update-grub2 (oba wyglądają, jakby pomyślnie utworzyły plik grub.cfg .
Ponownie uruchamiam komputer, a on wraca do menu grub i po prostu siedzi tam, aż dokonuję wyboru. Nie jest to pożądane, jeśli nastąpi zanik zasilania ... :-)
Próbowałem również ponownie zainstalować grub przy użyciu sudo grub-install / dev / sda - również nie powiodło się
sudo update-grub
isudo update-grub2
uruchamia to samo polecenie. Więc nie martw się o tę część.cat /boot/grub/grub.cfg
pośrednictwem pastebin i udostępnić link tutaj. Ma to na celu wyświetlenie faktycznegogrub.cfg
wygenerowania.Odpowiedzi:
Jak wskazują inne odpowiedzi, możesz być ofiarą sytuacji braku zapisu .
/boot/grub/grub.cfg
Ręczna edycja powinna być wykluczona, ponieważ jest generowana automatycznie. Inną sugerowaną opcją jest edycja pliku,/etc/grub.d/00_header
ale może on poprosić użytkownika o interwencję w sprawie aktualizacji.Najłatwiejszym rozwiązaniem jest zdefiniowanie nieudokumentowanej
GRUB_RECORDFAIL_TIMEOUT
zmiennej w/etc/default/grub
. Na przykład:Edytować
Zobacz tę odpowiedź, aby uzyskać więcej informacji.
źródło
update-grub
aby wygenerować zaktualizowany/boot/grub/grub.cfg
plikrecordfail
! Chcesz wydłużyć limit czasu, jeśli wystąpił błąd uruchamiania. Aby ręcznie jasne, wszystko czego potrzebujesz to użytkownika @ sniffski odpowiedź:grub-editenv create
. Jednak może być jakiś inny powód, dla którego wartorecordfail
się ustawić ...Posługiwać się:
Spowoduje to wyczyszczenie pliku środowiska grub i powinno zostać uruchomione wyraźnie następnym razem.
źródło
grub-editenv - unset recordfail
działa również i nie wpływa na inne środowiska, które mogą być ustawionezmień na
GRUB_TIMEOUT=10
zeroTo jest mój plik konfiguracyjny:
Najpierw wpisz nazwę systemu operacyjnego, który chcesz uruchomić bezpośrednio. Mój to Ubuntu. Więc napiszesz to jak w
GRUB_DEFAULT="Ubuntu, with Linux x.x.x-xx-generic-pae"
następnie użyłem 1 sekundy w,
GRUB_TIMEOUT=
aby dać mi 1 sekundę przed wybraniem domyślnego systemu operacyjnego (jeśli muszę uruchomić system operacyjny na inny system operacyjny, na przykład Xubuntu)jak
GRUB_CMDLINE_LINUX_DEFAULT=""
po wyjęciuquite splash
pokaże Ci teksty zamiast logo Ubuntu podczas procesu uruchamiania (I jak to w ten sposób: P)Istnieje inne rozwiązanie:
Istnieje program o nazwie boot-repair, który pomaga w konfiguracji z GUI.
jak widać z obrazka. jest pole o nazwie
Unhide boot menu
. Po prostu odznacz pole i naciśnij appy. Możesz uzyskać do niego dostęp, klikając strzałkę opcji zaawansowanych.zainstalować naprawę rozruchu
a następnie uruchom
boot-reapir
albo z terminala, albo z deski rozdzielczej.Trzecie rozwiązanie:
możesz użyć łatwej w obsłudze aplikacji GUI o nazwie grub-customizer, aby 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ć:
jak widać z menu, istnieje
show menu
opcja. Odczep i sprawdź, czy to działaźródło
grub-update
po zmianie wartości?GRUB_HIDDEN_TIMEOUT
iGRUB_HIDDEN_TIMEOUT_QUIET
opcje są przestarzałe. Skomentuj to.Aby pominąć menu i pokazać je tylko podczas trzymania
ESC
, dodaj:Próba
/etc/default/grub
„GRUB_TIMEOUT_STYLE” : Jeśli ta opcja jest ustawiona na „odliczanie” lub „ukryta”, to przed wyświetleniem menu GRUB będzie czekać na upływ czasu ustawionego przez „GRUB_TIMEOUT”. Jeśli ESC zostanie naciśnięty w tym czasie, to wyświetlenie menu i czekać na wejście.
źródło
Mógłbym rozwiązać ten problem, dodając następujący wiersz
/etc/default/grub
... a następnie biegnie
sudo update-grub
.Objaśnienie: Plik
/boot/grub/grub.cfg
jest generowany przez uruchomienieupdate-grub
przy użyciu plików w/etc/grub.d
i/etc/default/grub
. Dlatego nie należy edytowaćgrub.cfg
, ale pomocne może być ustalenie, dlaczego ustawiony jest limit czasu. Wyszukaj linie zaczynające się od,set timeout=
a następnie wyszukaj kolejną linię zaczynającą się od### END /etc/grub.d/ ...
. Może to dać wskazówki, który skrypt ustawia limit czasu. W moim przypadku za przekroczenie limitu czasu odpowiedzialny był skrypt os-prober. Okazuje się, że istnieje ustalony na 10 sekund limit czasu, w/etc/grup.d/30_os-prober
którym nie jest ustawionyGRUB_TIMEOUT
. Możesz albo wyłączyć os-prober,GRUB_DISABLE_OS_PROBER=true
albo edytować,/etc/grup.d/30_os-prober
lub użyć,GRUB_OS_PROBER_SKIP_LIST
aby pominąć niektóre partycje dysku twardego (30_os-prober jest używany, gdy gdzieś znajduje się inny system operacyjny). Zobacz szczegółowe pytania i odpowiedzi. Jak zauważyli inni, innym powodem może być brak zapisu w tym przypadkuGRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
.źródło
Miałem problem z tym, że menu GRUB pojawiało się zawsze po tym, jak użyłem AUFS (unionfs) do odczytu systemu plików root. Musiałem fizycznie nacisnąć klawisz Enter na serwerze po każdym uruchomieniu. Postępowałem zgodnie z instrukcjami tutaj: wyłącz menu Grub 2 . Ponieważ nie miałem żadnych problemów.
Edytuj plik /boot/grub/grub.cfg i zmień:
Do
źródło
set timeout=-1
to nie to samo coset timeout=1
. Pierwsza z nich to „poczekaj na zawsze”, a druga to „poczekaj jedną sekundę”.Moje Ubuntu zawsze miało limit czasu 30 sekund, albo ustawiłbym wartość, albo nie. Oto jak dowiedziałem się, że brak zapisu był brakujący .
1. Sprawdź rzeczywisty skrypt grub
/boot/grub/grub.cfg
IMHO, najlepszym sposobem na sprawdzenie, co zrobi Grub, jest otwarcie
/boot/grub/grub.cfg
. Jest to skrypt generowany automatycznie przygrub-mkconfig
użyciu szablonów/etc/grub.d
i ustawień z/etc/default/grub
.Wokół linii 109 zobaczysz coś takiego:
W moim przypadku przy pomocy tego wygenerowanego skryptu mogłem dowiedzieć się, że
recordfail
zmienna nie była ustawiona.2. Jeśli
recordfail
zmienna nie jest ustawiona, ustaw jąOtwórz
/etc/default/grub
w swoim ulubionym edytorze tekstu (np. Vim), a następnie ustaw zmiennąGRUB_RECORDFAIL_TIMEOUT
na podaną wartość, na przykład 5 sekund.Twój plik konfiguracyjny powinien wyglądać następująco:
3. Zaktualizuj konfigurację do uruchomienia
update-grub
Ostatnim krokiem jest aktualizacja konfiguracji do uruchomienia
update-grub
. Na razie GRUB2 użyje ustawionego limitu czasu. To polecenie zregeneruje/boot/grub.cfg
plik.4. Sprawdź wygenerowany wynik skryptu
Ponownie otwórz
/boot/grub.cfg
i sprawdź wynik wokół linii 109:Zauważ, że wartość w wierszu 109 wynosi teraz 5 zamiast 30 jak poprzednio.
źródło