user@homelab:~/docs$ cat dual-boot.md
Dual boot and GRUB
Boot chain, GRUB menu with Windows, and recovery paths
# contents
Overview
| Goal | Ubuntu boots by default; Windows selectable from GRUB |
| Result | 5-second GRUB menu: Ubuntu (default), Windows Boot Manager |
UEFI firmware ─▶ \EFI\ubuntu\shimx64.efi ─▶ GRUB ─┬─▶ Ubuntu (default, 5 s)
└─▶ \EFI\Microsoft\Boot\bootmgfw.efiSteps
Ubuntu Server hides the GRUB menu by default (timeout 0). Enable it:
sudo sed -i 's/^GRUB_TIMEOUT_STYLE=.*/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
sudo sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=5/' /etc/default/grub
sudo update-grubupdate-grub runs os-prober, which detects Windows and adds the Windows Boot Manager entry automatically.
Verify
grep -E "^menuentry|^submenu" /boot/grub/grub.cfgExactly one Ubuntu entry, the Advanced options submenu and one Windows entry.
Notes
- Ubuntu stays the default, so the server comes back on its own after a power outage.
- A major Windows update can move Windows Boot Manager to the top of the UEFI boot order. Fix in Novo → BIOS Setup → Boot: move
ubuntuup (Fn + F6), save (Fn + F10). - Fallback when GRUB fails: Novo → Boot Menu selects any boot loader directly.