Ubuntu – GRUB menu gets skipped when using HDMI cable

dual-bootgrub2hdminvidia

I'm having a problem while I connect HDMI cable to my monitor. I'm dual booting Windows 10 64 bit and Ubuntu 16.04 64 bit. When I turn on my system with HDMI connected, monitor says no signal, until I reach the login screen of default OS.No issues in display after login. But I'm not getting GRUB menu to select OS. My GPU is Nvidia Geforce GT630. When I connect VGA cable, no such issues occur. Please help me solve this problem. Pardon if this is a duplicate question.

Best Answer

Since it will not show you your grub screen at startup, there is something you can do to select what OS you want to boot to, but it will require booting to your Ubuntu first.

You can use grub-reboot to select the next one time boot.

First, make sure the default is selected for grub:

:~$ grep "GRUB_DEFAULT" /etc/default/grub
GRUB_DEFAULT=0

Here you can see that GRUB_DEFAULT is set for the first entry since it starts counting at 0.

Next, view all your entries that you have in your grub menu by using grep -i "menuentry '" /boot/grub/grub.cfg:

:~$ grep -i "menuentry '" /boot/grub/grub.cfg
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-53-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-53-generic-advanced-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-53-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-53-generic-init-upstart-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-53-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-53-generic-recovery-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-52-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-52-generic-advanced-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-52-generic (upstart)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-52-generic-init-upstart-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
    menuentry 'Ubuntu, with Linux 4.4.0-52-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.0-52-generic-recovery-9e4539a5-7229-424e-aa91-60ab1417e6f1' {
menuentry 'Memory test (memtest86+)' {
menuentry 'Memory test (memtest86+, serial console 115200)' {
menuentry 'Windows 10 (loader) (on /dev/sdh1)' --class windows --class os $menuentry_id_option 'osprober-chain-E2CAE74ACAE71A15' {

See the entry you want to have your system boot to by default for the next boot only. Here we are going to use my Windows 10 entry. We will set it up using grub-reboot command:

:~$ sudo grub-reboot 'Windows 10 (loader) (on /dev/sdh1)'

Then all I have to do is reboot the computer and it will go through the default countdown timer before booting to Windows 10.

:~$ sudo reboot

After you are done in Windows, simply reboot the computer and it will go back to Ubuntu as it is still the default.

Hope this helps as an alternative way to select your OS.

Related Question