EFI Boot: GRUB schluckt Config-Änderungen nicht?

el.com

Lieutenant
Registriert
Okt. 2008
Beiträge
758
Servus,

ich habe auf einem Laptop mit M.2 SSD Ubuntu 20.04 LTS installiert. Die Büchse läuft im (U)EFI Mode; Secure Boot habe ich deaktiviert. Beim Start wird das GRUB Menü für 30 s lang angezeigt. Da mir das zu lang ist, wollte ich den Timeout zum automatischen Booten der Ubuntu Partition verkürzen.
Also ab in die /etc/default/grub und dort GRUB_TIMEOUT auf 5 gesetzt:
Code:
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

Anschließend die Config aktualisiert:
Code:
root@ubuntu:~# grub-install
Installing for x86_64-efi platform.
File descriptor 4 (/dev/nvme0n1p1) leaked on vgs invocation. Parent PID 1648: grub-install
File descriptor 4 (/dev/nvme0n1p1) leaked on vgs invocation. Parent PID 1648: grub-install
Installation finished. No error reported.
root@ubuntu:~# update-grub
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.4.0-28-generic
Found initrd image: /boot/initrd.img-5.4.0-28-generic
Found linux image: /boot/vmlinuz-5.4.0-26-generic
Found initrd image: /boot/initrd.img-5.4.0-26-generic
Adding boot menu entry for UEFI Firmware Settings
done

Leider fruchten die Änderungen nicht. Beim nächsten Reboot läuft der Timer trotzdem bei 30 s los. An der Modification Time der Dateien in /boot/efi/ sehe ich, dass dort zumindest durch die o.g. Commands Änderungen vorgenommen wurden. In den Boot-Optionen des BIOS habe ich das /boot/efi/EFI/ubuntu/grubx64.efi Image gewählt (habe allerdings auch schon andere ausprobiert -- mit dem gleichen Ergebnis).

IMG_20200502_151850.jpg

Was mache ich falsch?
 
EhrenManfred schrieb:
Öhm, erst update-grub und dann grub-install?

Klappt auch nicht.

rgbs schrieb:
Hallo @el.com

sudo grub-mkconfig

sudo update-grub

grub-mkconfig gibt ja erst mal nur das potenzielle Configfile auf stdout aus, während update-grub die Änderungen direkt nach /boot/grub/grub.cfg schreibt.

btw: Ich habe testweise gerade mal folgende Option in der /etc/default/grub aktiviert und danach update-grub und grub-install durchlaufen lassen:

Code:
# Uncomment to get a beep at grub start
GRUB_INIT_TUNE="480 440 1"

Das funktioniert interessanterweise! Der Piepton ertönt beim Boot. Änderungen am Timeout haben aber keinen Effekt :confused_alt:
 
Da wird offenbar die shimx64.efi anstatt der grubx64.efi eingetragen, obwohl Secure Boot ausgeschaltet ist. Was aber auch erst mal nicht weiter schlimm ist, weil der Bootvorgang damit ja auch klappt. Nur die Änderungen am Timeout werden offenbar nicht übernommen (oder ignoriert).

Code:
root@ubuntu:~# efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* ubuntu        HD(1,GPT,6f022429-7813-45f7-ae32-5355019828fd,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001  UEFI: PC401 NVMe SK hynix 256GB, Partition 1  HD(1,GPT,6f022429-7813-45f7-ae32-5355019828fd,0x800,0x100000)/File(EFI\boot\bootx64.efi)..BO
Boot0002  M.2 PCIe SSD  BBS(HD,P0: PC401 NVMe SK hynix 256GB,0x0)..BO
Boot0003  USB Storage Device    BBS(USB,USB Storage Device,0x0)..BO
Boot0004  CD/DVD/CD-RW Drive    BBS(CDROM,CD/DVD/CD-RW Drive,0x0)..BO
Boot0005  Onboard NIC   BBS(Network,Onboard NIC,0x0)..BO
 
Hallo @el.com

Du hast es geschafft auf Deiner Platte \EFI\ubuntu\shimx64.efi und \EFI\boot\bootx64.efi zu haben. Folglich meint Grub das Du zwei Betriebssysteme hast und setzt den timeout auf 30 Sekunden.
Die "quick and dirty" Lösung wäre über efibootmgr Boot0001 zu löschen.


Gruß

R.G.
 
Nein, das hat leider auch nicht funktioniert. Ich habe gerade zuerst Boot0001 gelöscht. Nachdem das nicht ging, habe ich auch alle anderen Einträge rausgeschmissen:

Code:
root@ubuntu:~# efibootmgr -v
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* ubuntu        HD(1,GPT,6f022429-7813-45f7-ae32-5355019828fd,0x800,0x100000)/File(\EFI\ubuntu\shimx64.efi)

Das Problem besteht aber weiterhin. Das Timeout läuft immer noch auf 30 s.
 
el.com schrieb:
Also ab in die /etc/default/grub und dort GRUB_TIMEOUT auf 5 gesetzt:
Hast du das auch gespeichert?

Wozu "grub-install"? Grub ist doch installiert und arbeitet offensichtlich einwandfrei.

Nach dem Speichern der Änderung ein
sudo update-grub
durchlaufen lassen. Das sollte es gewesen sein.

Kleiner Tipp! 5 Sekunden sind erfahrungsgemäß knapp .Mach lieber ein paar mehr. Wo kommen überhaupt die 30 Sekunden her? Voreinstellung ist immer 10.

Und hör auf an den Einträgen im NVRAM mit efibootmgr rum zu fummeln, wenn du nur den Timeout ändern willst. Bringt nicht das geringste, im besten Fall. Im schlechteren.......!?

L.G.
Ergänzung ()

Nachtrag: https://wiki.ubuntuusers.de/GRUB_2/Konfiguration/
 
Zuletzt bearbeitet von einem Moderator:
K-BV schrieb:
Hast du das auch gespeichert?

Natürlich. Mir ist aber gerade folgendes in der /boot/grub/grub.cfg aufgefallen:

Code:
if [ $grub_platform = efi ]; then
  set timeout=30
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
  fi
fi

Das sieht mir ja sehr verdächtig nach der Ursache dafür aus. Im Header der Datei steht, man soll diese nicht direkt bearbeiten, sondern Änderungen stattdessen über /etc/default/grub und /etc/grub.d vornehmen. Da in der /etc/default/grub nichts derartiges vermerkt ist, muss die Ursache wohl aus einem der Helper-Scripte in /etc/grub.d kommen...
 
Installiere dir das grafische Werkzeug "Grub-Customizer" über Software (über Konsole hat es hier gerade gezickt). Über "allgemeine Einstellungen" kannst das anpassen. Und "save" nicht vergessen!
Hat hier gerade geklappt, auch wenn ich solche Tools sonst nicht besonders mag.

Viel Erfolg
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben