Próbowałem zaktualizować plik konfiguracyjny grub do limitu czasu do wartości 0, więc system operacyjny uruchamia się szybko. Zmodyfikowałem /etc/default/grub
plik konfiguracyjny na moim Ubuntu 18.04, a następnie uruchomiłem:
sudo update-grub
i to nie zadziałało. Prowadziłem także:
sudo grub-mkconfig
sudo update-grub
ale nie działały.
Dużo szukałem w Internecie, aby rozwiązać ten problem, ale wszyscy przewodnicy mówią o uruchomieniu polecenia update-grub, aby zaktualizować gruba przez /etc/default/grub
plik konfiguracyjny. Nie wiem, czy Ubuntu 18.04 obsługuje pliki grub w inny sposób, ale nie mogę zaktualizować grub za pomocą moich parametrów.
To jest mój /etc/default/grub
plik:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
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=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
Odpowiedzi:
W
/boot/grub/grub.cfg
pliku występuje warunek, prawie na końcu pliku, który ustawia limit czasu na 10, jeśli limit czasu jest ustawiony na 0. Innymi słowy, jeśli ustawisz limit czasu na 0 w swoim pliku,/etc/default/grub
a następnie zaktualizujesz grub, powyższy warunek zresetuj go do 10 sekund.Jednak
/boot/grub/grub.cfg
plik jest tylko do odczytu i nie mogę usunąć tego warunku. Wykonałem kilka testów z różnymi wartościami limitu czasu w/etc/default/grub
. Próbowałem z 1ms (0,001), 0,1s i 1s i odkryłem, że wartości poniżej 1 (jak 0,1 i 0,001) działają w ten sam sposób i prawie jak limit czasu ustawiony na 0.źródło
work in the same way and almost like timeout
to dlatego, że matematyka w bash obsługuje tylko liczby całkowite. Najkrótszy limit czasu, który zrobiłby różnicę, to1
.W moim przypadku problem polegał na tym, że mój system nie obsługiwał „Recordfail”, co spowodowało dodanie osobnego bloku do pliku grub.cfg, który domyślnie przekroczy 30 sekund. Odpowiedni kod w
/etc/grub.d/00_header
:Poprawka polega po prostu na dodaniu wartości
GRUB_RECORDFAIL_TIMEOUT
in/etc/default/grub
iupdate-grub
ponownym uruchomieniu . Na przykład:źródło
Tak jak inne odpowiedzi mówią, niekomentuj
GRUB_HIDDEN_TIMEOUT
i uciekajupdate-grub
. Następnie skomentujsekcja w
/boot/grub/grub.cfg
. W vimie możesz po prostu zastąpić właściwość tylko do odczytu wykrzyknikiem:x!
. Lub możesz biegaćtymczasowo mieć uprawnienia do zapisu podczas edycji pliku.
źródło
/boot/grub/grub.cfg
zostanie odtworzony z powyższym warunkiem.Możesz ustawić
GRUB_TIMEOUT
na0
.Wartość limitu czasu nadpisywania części jest zapisana w
ajust_timeout
funkcji na górze/etc/grub.d/30_os-prober
.Możesz więc ustawić wartość, edytując plik i komentując if-block.
źródło
Możesz ustawić
GRUB_TIMEOUT
na-1
.źródło
info -f grub -n 'Simple configuration
Odkomentuj
GRUB_HIDDEN_TIMEOUT=0
i uruchomupdate-grub
ponownie.źródło
GRUB_HIDDEN_TIMEOUT=-1
pracował na Ubuntu 18.10.Możemy po prostu dodać linię
aby
/etc/grub.d/40_custom
sprawiają, że plik wykonywalny zi biegnij
aby wygenerować nowy
/boot/grub/grub.cfg
plik.set timeout
-Polecenie dodaliśmy jest ostatniąset timeout
-polecenie w/boot/grub/grub.cfg
teraz, to się liczy.źródło
Rozwiązaniem jest dodanie
do
/etc/default/grub
.Wszystkie inne rozwiązania zostaną zresetowane po aktualizacjach grub.
źródło