Ich habe versucht, meine Grub-Konfigurationsdatei auf das Zeitlimit 0 zu aktualisieren, damit das Betriebssystem schnell startet. Ich habe die /etc/default/grub
Konfigurationsdatei auf meinem Ubuntu 18.04 geändert und dann ausgeführt:
sudo update-grub
und es hat nicht funktioniert. Ich lief auch:
sudo grub-mkconfig
sudo update-grub
aber sie haben nicht funktioniert.
Ich habe viel im Web gesucht, um dieses Problem zu lösen, aber alle Anleitungen sagen, dass der Befehl update-grub ausgeführt werden soll, um grub per /etc/default/grub
Konfigurationsdatei zu aktualisieren . Ich weiß nicht, ob Ubuntu 18.04 Grub-Dateien auf andere Weise behandelt, aber ich kann mein Grub nicht mit meinen Parametern aktualisieren.
Das ist meine /etc/default/grub
Datei:
# 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"
Antworten:
In der
/boot/grub/grub.cfg
Datei gibt es fast am Ende der Datei eine Bedingung, die das Zeitlimit auf 10 setzt, wenn das Zeitlimit auf 0 gesetzt ist. Mit anderen Worten, wenn Sie das Zeitlimit in Ihrem auf 0 setzen/etc/default/grub
und dann grub aktualisieren, die obige Bedingung Setzen Sie es auf 10 Sekunden zurück.Es handelt sich jedoch
/boot/grub/grub.cfg
um eine schreibgeschützte Datei, und ich kann diese Bedingung nicht entfernen. Ich habe einige Tests mit unterschiedlichen Werten für das Timeout in durchgeführt/etc/default/grub
. Ich habe es mit 1 ms (0,001), 0,1 s und 1 s versucht und festgestellt, dass Werte unter 1 (wie 0,1 und 0,001) auf die gleiche Weise funktionieren und fast wie ein auf 0 gesetztes Timeout.quelle
work in the same way and almost like timeout
Das liegt daran, dass Mathe in Bash nur ganze Zahlen unterstützt. Die kürzeste Zeitüberschreitung, die einen Unterschied machen würde, ist1
.In meinem Fall bestand das Problem darin, dass mein System "recordfail" nicht unterstützte, was dazu führte, dass der grub.cfg ein separater Block hinzugefügt wurde, der standardmäßig eine Zeitüberschreitung von 30 Sekunden aufweist. Der relevante Code in
/etc/grub.d/00_header
:Das Update besteht einfach darin, einen Wert für
GRUB_RECORDFAIL_TIMEOUT
in hinzuzufügen/etc/default/grub
undupdate-grub
erneut auszuführen . Beispielsweise:quelle
Wie die anderen Antworten sagen, auskommentieren
GRUB_HIDDEN_TIMEOUT
und rennenupdate-grub
. Dann kommentieren Sie dieAbschnitt in
/boot/grub/grub.cfg
. In vim können Sie die schreibgeschützte Eigenschaft einfach mit einem Ausrufezeichen überschreiben:x!
. Oder du kannst rennenvorübergehend Schreibberechtigung beim Bearbeiten der Datei zu haben.
quelle
/boot/grub/grub.cfg
Wille mit der oben genannten Bedingung neu erstellt.Sie können festlegen ,
GRUB_TIMEOUT
auf0
.Der Zeitüberschreitungswert für das Überschreiben von Teilen wird in der
ajust_timeout
Funktion oben in geschrieben/etc/grub.d/30_os-prober
.Sie können den Wert also festlegen, indem Sie die Datei bearbeiten und den if-Block auskommentieren.
quelle
Sie können festlegen ,
GRUB_TIMEOUT
auf-1
.quelle
info -f grub -n 'Simple configuration
Kommentar entfernen
GRUB_HIDDEN_TIMEOUT=0
undupdate-grub
erneut ausführen .quelle
GRUB_HIDDEN_TIMEOUT=-1
arbeitete unter Ubuntu 18.10.Wir können einfach die Zeile hinzufügen
zu
/etc/grub.d/40_custom
, machen die Datei ausführbar mitund Renn
um die neue
/boot/grub/grub.cfg
-Datei zu generieren . Derset timeout
Befehl, den wir hinzugefügt haben, ist der letzteset timeout
Befehl im Moment/boot/grub/grub.cfg
, das ist es, was zählt.quelle
Die Lösung besteht darin, hinzuzufügen
zu
/etc/default/grub
.Alle anderen Lösungen werden bei Grub-Updates zurückgesetzt.
quelle