it-swarm.com.de

So setzen Sie das Timeout von GRUB unter Ubuntu 18.04 auf 0

Ich habe versucht, meine Grub-Konfigurationsdatei auf den Wert 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 Internet gesucht, um dieses Problem zu lösen, aber alle Anleitungen geben an, den Befehl update-grub auszuführen, um grub mit der Konfigurationsdatei /etc/default/grub zu aktualisieren. Ich weiß nicht, ob Ubuntu 18.04 Grub-Dateien anders behandelt, aber ich kann meinen Grub nicht mit meinen Parametern aktualisieren.

Dies 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"
9
Bob91

In der Datei /boot/grub/grub.cfg gibt es fast am Ende der Datei eine Bedingung, die das Timeout auf 10 setzt, wenn das Timeout auf 0 gesetzt ist. Mit anderen Worten, wenn Sie das Timeout in Ihrem /etc/default/grub auf 0 setzen und dann grub aktualisieren, wird das Bedingung oben setzt es auf 10 Sekunden zurück.

if [ "${timeout}" = 0 ]; then
     set timeout=10
fi

/boot/grub/grub.cfg ist jedoch schreibgeschützt und ich kann diese Bedingung nicht entfernen. Ich habe einige Tests mit unterschiedlichen Werten des Timeouts in /etc/default/grub durchgeführt. Ich habe es mit 1ms (0,001), 0,1s und 1s versucht und festgestellt, dass Werte unter 1 (wie 0,1 und 0,001) auf die gleiche Weise funktionieren und fast wie Timeout auf 0 gesetzt sind.

10
Bob91

In meinem Fall bestand das Problem darin, dass mein System "recordfail" nicht unterstützte, was dazu führte, dass ein separater Block zur Datei grub.cfg hinzugefügt wurde, die standardmäßig eine Zeitüberschreitung von 30 Sekunden aufweist. Der relevante Code in /etc/grub.d/00_header:

if [ "$recordfail_broken" = 1 ]; then
  cat << EOF
if lsefi; then
  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
  if [ x\$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi
EOF

Das Update besteht einfach darin, einen Wert für GRUB_RECORDFAIL_TIMEOUT in /etc/default/grub hinzuzufügen und update-grub erneut auszuführen. Zum Beispiel:

GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX=""

# Adjusted timeout for system which doesn't support recordfail
GRUB_RECORDFAIL_TIMEOUT=2

# 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"
5
Alex Malinovich

Entfernen Sie wie in den anderen Antworten das Kommentarzeichen GRUB_HIDDEN_TIMEOUT und führen Sie update-grub aus. Dann kommentiere das aus

if [ "${timeout}" = 0 ]; then
  set timeout=10
fi

abschnitt in /boot/grub/grub.cfg. In vim können Sie die schreibgeschützte Eigenschaft einfach mit einem Ausrufezeichen :x! überschreiben. Oder du kannst rennen

Sudo chmod +w /boot/grub/grub.cfg
Sudo vim /boot/grub/grub.cfg
Sudo chmod -w /boot/grub/grub.cfg

um vorübergehend Schreibrechte beim Bearbeiten der Datei zu haben.

3
asantas93

Sie können GRUB_TIMEOUT auf 0 einstellen.

Der Timeout-Wert für das Überschreiben von Teilen wird in die Funktion ajust_timeout oben in /etc/grub.d/30_os-prober geschrieben.

ajust_timeout () {
...
if [ "\${timeout}" = 0]; then
  set timeout=10
fi
...
}

Sie können den Wert also festlegen, indem Sie die Datei bearbeiten und if-block auskommentieren.

1
guest

Entkommentieren Sie GRUB_HIDDEN_TIMEOUT = 0 und führen Sie update-grub erneut aus.

1
hiigaran

Sie können GRUB_TIMEOUT auf -1 einstellen.

Beispiel: GRUB_TIMEOUT="-1"

1
Giceu Cassiano