Mam Ubuntu 10.10 Server zainstalowany na maszynie jednopłytkowej w środowisku częściowo osadzonym; bez klawiatury i ekranu, tylko dostęp do SSH.
To naprawdę frustrujące, gdy czasami uruchamia się i utknie w menu GRUB, czekając na naciśnięcie klawisza, aby wybrać pierwszą opcję.
Jak skonfigurować GRUB, aby w żadnym wypadku nie czekał na naciśnięcie klawisza?
Aktualizacja nr 1: Nie ma menu.lst, ponieważ jest to GRUB 2. Mam jednak plik / etc / default / grub, który wygląda tak:
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
Aktualizacja nr 2: Zrozumiałem. W butach, które następują po nieudanych butach, GRUB wyłącza swój własny limit czasu. Ponieważ wyświetlenie menu powoduje, że rozruch nie powiedzie się, jest to nieunikniona pętla. To zachowanie można wyłączyć, edytując plik /etc/grub.d/00_header i zmieniając funkcję make_timeout:
make_timeout ()
{
echo "set timeout=0"
}
Teraz zamknij i uruchom ponownie skrypt aktualizujący konfigurację grub:
sudo update-grub2
Nie ma dla mnie sensu, że takie zachowanie byłoby domyślne dla Ubuntu Server, produktu przeznaczonego dla komputerów obsługiwanych przez konsolę.
/boot/grub/menu.lst
wyglądaszOdpowiedzi:
W Ubuntu 12.04 LTS istnieje specjalna opcja, którą można ustawić
/etc/default/grub
.Na przykład, jeśli chcesz mieć 2-sekundowy limit czasu (unikając w ten sposób zawieszeń w przypadku nienadzorowanych restartów), po prostu dodaj następujący wiersz
/etc/default/grub
:Pamiętaj, aby pobiec
update-grub
po tym ...źródło
Oto instrukcje dla Ubuntu 10.10, które nieco różnią się od poprzednich wersji. W pliku /etc/grub.d/00_header skomentuj głupie sprawdzenie poprzedniej awarii rozruchu:
Następnie zaktualizuj:
Pamiętaj, że jeśli jest drugi dysk z podłączonym Linuksem, grub2 go znajdzie i zapyta cię przy starcie, który z nich chcesz. Usuń wszystkie dodatkowe dyski przed uruchomieniem „update-grub”.
Zobacz także https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/797544
źródło
Z tym głęboko nieprzyjemnym nadzorem projektowym natknąłem się na Ubuntu Server 9.10. Twoja poprawka bardzo mi pomogła. Chciałem tylko zauważyć, że poprawka wymagana dla wersji 9.10 jest inna, ponieważ w tym samym pliku nie ma funkcji „make_timeout ()”.
W przypadku Ubuntu 9.10 przejdź na koniec tego samego pliku (00_header) i zmień następujące ustawienia:
do
Tak jak poprzednio, uruchom:
źródło
Skonfiguruj GRUB dla dostępu szeregowego (i bootloadera, gdy jesteś przy nim) i trzymaj otwarty port szeregowy, kabel null-modem i konwerter USB-na-RS232 w takich przypadkach. Prowadzę bezgłowy serwer i Guruplug i nie chciałbym tego inaczej.
źródło
Właśnie ustawiłem długi limit czasu dla rekordowej awarii:
Oznacza to, że otrzymujesz 30 sekund limitu czasu podczas uruchamiania, jeśli poprzednie uruchomienie nie powiodło się. (Podobnie jak ten inny system operacyjny ...)
To może (i IMHO powinno) być nawet ustawieniem w / etc / default / grub.
źródło
Naprawdę nie wiem, dlaczego jest to akcja domyślna, szczególnie dla serwera, ale właśnie to zaimplementowałem w moich skryptach konfiguracji serwera.
źródło
To podejście jest nieco czystsze - wystarczy zmodyfikować,
/etc/default/grub
aby dodać linię:... co można zrobić automatycznie z czymś takim podczas udostępniania:
Powinno to być wykonalne, jeśli zmienna GRUB_RECORDFAIL_TIMEOUT jest wymieniona w
/etc/grub.d/00_header
(jak widzę w 12.04 LTS) w:Jestem trochę ciekawy, czy zagłębianie się w sposób rejestrowania awarii może dać jeszcze lepszą odpowiedź.
źródło