Grub nie uruchamia domyślnie opcji domyślnej po aktualizacji do 12.10


12

Niedawno zaktualizowałem system Ubuntu z 12.04 do 12.10 i od tego czasu system nie uruchamia się automatycznie. Zawsze otwiera menu rozruchu i muszę nacisnąć klawisz Enter, aby uruchomić system Ubuntu.

Wydaje się, że ignoruje wartość limitu czasu i używa limitu czasu „niekończącego się”.

Nie ma innych systemów (brak podwójnego rozruchu), tylko opcje pierwotnie instalowane domyślnie podczas instalacji Ubuntu 12.04.

Mój /etc/default/grubma tylko te skuteczne opcje:

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

Eksperymentowałem z GRUB_DEFAULTwartościami „0”, „1”, „Ubuntu”, ale nic nie pomaga.

Tak, zawsze biegnę update-grubpóźniej.

Jak mogę ponownie uruchomić system?


Odpowiedzi:


10

Dodaj następujące elementy do /etc/default/grub

GRUB_RECORDFAIL_TIMEOUT=0

Zapisz i uruchom

sudo update-grub

2

W moim /etc/default/grubpliku mam następujący zestaw wartości :

GRUB_DEFAULT=5
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

Mam kilka innych systemów operacyjnych na swoim komputerze, a ustawienie GRUB_DEFAULT wydaje się ustawiać konkretny początkowy podświetlony element na liście, zaczynając od 0 i licząc w górę. W czasie odliczania 10 sekund mogę zmieniać inne wpisy na liście.

Sugeruję wypróbowanie następujących ustawień, upewniając się, że skomentowałeś GRUB_HIDDEN_TIMEOUTparametr:

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10

Następnie do tyłu pracy tym, stopniowo czyniąc GRUB_TIMEOUTlub GRUB_HIDDEN_TIMEOUTparametrów 1 lub 2, aby skrócić czas oczekiwania na domyślny wybrany system.

Pamiętaj, że możesz potrzebować Ctrl + Alt + T, aby dostać się do terminalu w celu sudo gedit pliku.


2

Jeśli spojrzysz na /etc/grub.d/00_header, zobaczysz następujące linie:

make_timeout ()
{
    cat << EOF
if [ "\${recordfail}" = 1 ]; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
else
  set timeout=${2}
fi
EOF
}

Zasadniczo, Grub2 jest w stanie wykryć błędy w procesie uruchamiania i wrócić do ręcznego uruchamiania.

Zmiana tych linii na coś podobnego

make_timeout ()
{
    cat << EOF
  set timeout=${2}
EOF
}

i ponowne wygenerowanie konfiguracji gruba sudo update-grubpowinno rozwiązać problem. Ciekawe pytanie brzmi jednak, dlaczego grub nadal myśli, że rozruch nie powiedzie się po ręcznym naciśnięciu klawisza Enter.


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.