0

I have a Dell R170 server with Ubuntu installed on it. It is in UEFI boot mode. The system boots properly.

I have configured /etc/default/grub with options that should make it display the grub menu and wait 5 seconds before booting the default option. These settings work for other other systems in BIOS boot mode, and for libvirtd VMs that are in either BIOS or UEFI boot mode. Every time I change /etc/default/grub I run sudo update-grub.

I have been unable to figure out how to get it to show the grub menu and wait for the configured 5 seconds. What have I overlooked? I've tried a LOT of things to try and fix it, so far without success.

This is the contents of /etc/default/grub:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=menu
GRUB_TIMEOUT=5
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="splash reboot=pci delayacct --backround=/boot/grub/splash.png"
GRUB_CMDLINE_LINUX="elevator=none"
elyograg
  • 239
  • 1
  • 11
  • Which version of Ubuntu are you using? – Mircea Vutcovici Jun 12 '23 at 05:34
  • 22.0.4.2. I do frequent updates with apt. It is fully up to date. – elyograg Jun 12 '23 at 13:39
  • Maybe your UEFI bios is directly booting the Linux kernel? Can you try adding some options to `GRUB_CMDLINE_LINUX_DEFAULT` and `GRUB_CMDLINE_LINUX`, running `update-grub` and check (inside Linux itself, when booted) if the new parameters are present in `/proc/cmdline`? – shodanshok Jun 12 '23 at 15:23
  • The GRUB_CMD_LINUX and GRUB_CMDLINE_LINUX_DEFAULT options on the grub commandline ARE being added. I removed the --background option on the last boot, and this is /proc/cmdline: `BOOT_IMAGE=/vmlinuz-6.1.0-1013-oem root=/dev/mapper/ubuntu--vg-ubuntu--lv ro elevator=none splash reboot=pci delayacct` – elyograg Jun 12 '23 at 18:16
  • I used to have `quiet splash` like all the other systems where this is working. One recommendation I got was to remove `quiet`. Which did not help. – elyograg Jun 12 '23 at 18:18

2 Answers2

1

In the end, I got it working with GRUB_TERMINAL=console. Which is a little bit annoying as I was wanting to have a background image for grub. But I have already successfully customized the plymouth boot splash screen and don't NEED a background for grub. The hostname for the system is gandalf.enter image description here

elyograg
  • 239
  • 1
  • 11
  • Try to change to `GRUB_TERMINAL="gfxterm serial"` `GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"` You need to change unit to 0 or 1 depending which serial port is redirected to IPMI SOL in BIOS. – Mircea Vutcovici Jun 12 '23 at 20:56
  • See: https://help.ubuntu.com/community/SerialConsoleHowto – Mircea Vutcovici Jun 12 '23 at 20:56
  • I do not have the serial console enabled, and I do not want the serial console enabled. – elyograg Jun 13 '23 at 21:29
  • Not being able to show a graphical grub menu appears to be unique to the R710. I also have an R720xd, which I just converted to UEFI instead of BIOS. That server is able to use a graphical grub menu in both booting modes. While it would be nice to have a graphical grub, it is not required. If somebody has a fix, that would be cool, but I am not going to spend any more time on the issue because I have the server doing everything I need. – elyograg Jun 18 '23 at 00:55
0

Do you use a GPT disk label? Share the output of fdisk -l.

Make sur you have /boot/efi EFI System partition mounted. If it's mounted and you are using GPT disk label for partitions, you can run the following command to update the config:

grub-install --efi-directory=/boot/efi

This should update /boot/efi/EFI/ubuntu/grub.cfg and /boot/grub2/grub.cfg files.

Mircea Vutcovici
  • 17,619
  • 4
  • 56
  • 83
  • Pretty sure UEFI wouldn't work if I didn't have GPT. It is GPT. Nothing I have ever looked at indicated that re-installing grub would be required instead of "udpate-grub". FYI, /boot/grub2/grub.cfg is the path on a redhat-based system. On Ubuntu it is /boot/grub/grub.cfg. The contents of /boot/efi/EFI/ubuntu/grub.cfg just refer to the /boot copy. ``` search.fs_uuid 5aac9566-6e6d-4530-a7e6-896c0e2772fa root hd0,gpt2 set prefix=($root)'/grub' configfile $prefix/grub.cfg ``` – elyograg Jun 12 '23 at 16:53
  • Using grub-install did not work. – elyograg Jun 12 '23 at 16:55
  • I increased the timeout from 5 to 15. The blank screen pause after the bios shows it is initializing UEFI and the first kernel messages lasted longer. So I think it is actually doing the timeout, just not displaying anything. – elyograg Jun 12 '23 at 17:15
  • I also tried without the --background option, it still didn't display anything. – elyograg Jun 12 '23 at 17:34
  • Check if the console is not redirected to serial port. You can also conect on serial port with `ipmitool -I lanplus -H 192.168.1.158 -U Administrator -f ipmi-password.txt sol activate` – Mircea Vutcovici Jun 12 '23 at 18:39
  • I do not have another Dell server using UEFI. My R720xd is using BIOS boot. I'm going to convert that system to UEFI once I get some new hard drives to replace it's OS volume. I have a number of libvirtd qemu VMs using UEFI, and they are correctly displaying the grub menu. – elyograg Jun 12 '23 at 18:48
  • I have never done anything with ipmi. The idrac6 web UI does not behave properly when I try to use it, it works maybe one time in ten. But I did find with racadm that console redirect to com2 WAS enabled. I managed to turn it off with `sudo racadm config -g cfgSerial -o cfgSerialCom2RedirEnable 0`. That did not help. – elyograg Jun 12 '23 at 19:33
  • cfgSerialSshEnable was also turned on. But cfgSerialConsoleEnable was not turned on. I turned off the ssh option. That did not help. – elyograg Jun 12 '23 at 19:42