Unable to get dual boot RL8 + Windows 10

I have installed dozens of different Linux OSes (Ubuntu, CentOS of all possible versions and flavors) and have never got into problem as trivial as this: the Rocky Linux 8.4 installer is apparently unable to install dual boot configuration on my Dell Optiplex 3080 PC.

I have shrinked the main Windows partition (from within Windows) on NVMe SSD disk and added another HDD. The installation of RL8 uses RAID1 partitions build on both disks. My first attempt included RAID1 /boot/efi partition, separate from the original Windows ESP on /dev/nvme0n1p1. The system installation went smoothly, rebooted and … no Windows in the boot menu. I searched the internet, tried to add Windows entry in /etc/boot.d/40_custom, to no success.
So I thought maybe the problem was that I had created separate EFI partition. I reinstalled RL8, using /dev/nvme0n1p1 for /boot/efi this time (ignoring the warning that it is not on a RAID, as is the /boot partition). Again, no Windows in the menu.

I am stuck. Linux-Windows dual booting has never been a problem for Linux installers. Here, even the renowned boot-repair does not help, asking to enable a repository containing the [grub-efi-amd64-signed] (or similar) packages in Rocky Linux installation. The only way to boot Windows is to press F12 at boot to enter the BIOS one-time boot menu but this does not seem to be very convenient.

Any hints would be much appreciated
regards, Michal

AFAIK, there can be only one ESP on a disk. (Each disk can have ESP though.) Each vendor has separate directory within ESP, where their bootloader is.

RAID1, the Mirror, has been convenient for boot, because EFI/BIOS can access filesystem from one disk without knowing anything about the RAID. This implies read-only access for loading the OS.
Once OS runs, it can assemble the mirror and any updates you do, you write via the RAID (to both disks). Then again, both disks have a filesystem with identical UUID. If the RAID assembly fails, then OS sees “same” filesystem twice and will use only one, probably randomly selected (on each boot).

That is what I use and I don’t find that inconvenient. After all, you have to at some point interactively select the non-default OS. There is not much difference whether you select bootloader from EFI menu or OS from bootloader menu. (I have the non-default as first entry on the EFI menu, so ‘F12’ and ‘Enter’ get to it.)

You do need the NTFS-packages (from EPEL?) in order for the grub2-mkconfig to detect the Windows and add entry to the GRUB menu.

Well, I see quite a difference. For menu boot you can have as much time to choose as you configure. Pressing F12 (at least on those Dells) is somewhat erratic, the system does not show any hint when to press the key (and which key it should be) and it is often ignored if pressed too early/late (hard to judge). Also, when both systems are used often, it is possible to configure boot to ‘savedefault’ and boot by default the “last booted OS”, this greatly helps when doing updates, especially on Windows which love to restart many times after a loooong process of updating.

I found that hint and installed ntfs-3g but Windows has not been detected anyway.

Did you try to create file custom.cfg in same directory as the grub.cfg?
See Tutorial: Custom Grub Menu for Multi-Boot, using a custom.cfg file - Linux Mint Forums

The grub.cfg includes custom.cfg, if one exists. The grub2-mkconfig does not touch the custom.cfg.
I have a dual-boot. The Windows chainloader entry is in custom.cfg. Grub has Windows as default.
If I rename the custom.cfg, then default is not found and Grub selects the Linux entry that it does find.

As the author of the original post, I would not like this thread to go off topic and start any hardware wars. As for Dells, I have been using an AIO Inspiron at home for many years now and it was purchased with Ubuntu preinstalled!
Coming back to the topic, I installed Ubuntu 20.04 on a very same model of Dell machine (with just one disk). There was a problem (but the same was with CentOS), which indeed makes me a bit mad at Dell, that the (only!) disk was configured in BIOS as Intel Raid Storage Technology which is unsupported by Linux (at least not by Ubuntu and RL8 installers) so I had to switch to AHCI and that was pain. Instructions found on Ubuntu Help Page are not very helpful, most of hints included there were no-op. Of the total of 3 machines 2 ended up with reinstalling Windows from System Recovery. Anyway, when the system was AHCI and Windows was usable again, the Ubuntu installer created Dual Boot configuration with no problems. So, it is rather a deficiency of the RL8 installer, not the hardware.
Unfortunately, Ubuntu installer does not support software RAID, so as we see, nobody’s perfect. Ubuntu server installer does but I used it only once (on a different hardware) and ended up with system installed on RAID1 partitions, but … unbootable, so I quit using it.

@desercat @SomervilleTom his topic is about dual booting windows. If you want to talk about hardware, please stop hijacking posts and start a new thread. They are off-topic and not relevant to the original posters problem.

They are off-topic and not relevant to the original posters problem.

The original poster cited the vendor of the machine that is causing their problem. I cited specific and explicit steps taken by that vendor to make the task hard or impossible.

The information most certainly IS relevant. Had it been available to me when I joined this forum earlier this year, I would have found it EXTREMELY valuable.

I don’t doubt that dual booting is possible between RL8 and Windows 10. If you have information to show that it can be done on current Dell hardware, I most strongly encourage you to offer THAT information rather than adding noise to the thread.

I share your distaste for hardware wars.

I offered my comment only because I attempted what I think is exactly the same path as you, and found that this manufacturer has taken very specific steps to make that path difficult.

If you are able to get your system to boot into Linux, I strongly encourage you to turn on persistent journaling and then use journalctl to show what it encounters. Check to ensure that /var/log/journal exists (create it if not), and check that Storage=auto is in /etc/systemd/journald.conf. See man journalctl for information on how to see the persistent log.

Any “BERT” entries, if present, are of particular interest.

Just because someone writes Dell it has nothing to do with it. He has a dual boot issue not all the ranting and raving about hardware issues you experienced. The only noise here is the hardware rant. Off topic.

He wants help to his issue so please stick to that. Even the original poster stated that it was off topic for hardware wars.

1 Like

Thanks @jlehtone! I followed your hint and the cited Tutorial and created /boot/efi/EFI/rocky/custom.cfg file containing:

menuentry "Windows" {
    insmod part_gpt
    insmod fat
    insmod chain
    search --no-floppy --fs-uuid --set=root 1EF3-FC33
    savedefault
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

which is their recipe for adding UEFI Windows boot entry, with obvious update to the proper UUID of my ESP partition and added savedefault option. This did the trick :slight_smile: and I can now choose Windows from the boot menu and the last booted OS becomes the default for the next boot. Great. Thanks again!

2 Likes

That’s a great outcome and I’m glad you got it working.

I strongly encourage you to make a /var/log/journal directory and then use journalctl to check it from time to time. I usually pipe journalctl into grep to check for errors.

This is helpful because the BERT (Boot Error Record Table) entries are easily discarded, and the Linux-level journal is cleared on each reboot unless the above directory exists.