Couldn't find what I'm looking for after searching so felt the need to create a post on this.
I have 3 OS's installed on their own separate partitions.
I have a custom Grub menu but it only detects a single Windows boot.
I have to choose either Windows 10 or 11 along with Zorin.
When I boot to WIndows, I then get the Windows screen asking me to select Windows 10 or 11. This means I have to choose the OS twice in Grub, then Windows.
Is there a way I can have all 3 OS's appear in the grub menu?
When i duel booted windows thats how windows setup the boot you chose windows then the boot loader asked which windows you then wanted. I would assume that there maybe a way to seperate that but may require some boot reconfiguring...this may or maynot go well. Im sure if its possible someone will know and help ya get there
How is Your GRUB set up? Can You post the Content of the File /etc/default/grub please? I would be good to know, too how are Your Partitions are set up. In Zorin, open the Terminal and type
sudo apt install gparted
to install the Tool GParted. When installed, open it and make a Screenshot of the Partition Overview and post it here.
Also: Are all 3 Systems on one Drive or on seperate Drives?
What's happening is that Grub is detecting two efi partitions and the OS on them: Windows and Linux, then when you select Windows, you are loading Windows Boot Manager, which contains both the W10 and W11 efi data on the same partition.
Any Windows install that sees an existing Windows efi partition will automatically put it's efi data in the same partition. Even if you have two drives, W10 and W11 will share the same efi partition. This is most common when one Windows installation is done, then a second one without the first drive removed.
If you need to fix this, it's exceptionally easy to mess up, and I don't recommend fixing this just to have one less boot menu.
I apologize for not have specific instructions I cannot find the resource I used several years ago to fix this. But the general steps are 1) remove the linux drive if it's separate, 2) remove the first W10 drive, 3) load recovery mode with a command prompt, 4) locate your Windows drive and launch diskpart from it. 5) Shrink the primary partition so you have about 1GB (minimum), 6) Create a new partition of 1GB, 7) use diskpart to create a efi partition with "C:" as the source.
Now repeat that for the second Windows drive.
Again, just fair warning, this could destroy your Windows installations, or get you stuck beyond ones capabilities, which is why I don't recommend it for convenience's sake.
Once you have recreated both efi partitions for both Windows installations, insert your drives into your computer and the grub menu will pick up the 3 OS's.
What might be a similar method is to see if you can change boot order for Windows Boot Manager.
I am lucky, I have an ASUS motherboard so I can put PCLOS Debian above Windows Boot Manager so it does not prevent it from being bootable.
I had an issue where I installed Linux Mint Debian Edition and even with the os-prober active it would not see Windows so I installed rEFInd and this solved the issue. As the user mainly used Windows 11 I had to manually edit GRUB so that the first entry showed "=WindowsBootManager".
Leaving GRUB to run it's 5 second countdown it would boot into the first option, if I did not wait and pressed the enter key, rEFInd would launch showing icons with Debian and Windows, presenting me with the option to change my mind and boot off Mint.
The information I found on this topic didn't seem reliable enough for me to recommend it to anyone. As Kilo described, it seems necessary to create a separate boot partition for each Windows system. Since this is a delicate matter, I personally would rather put up with the more cumbersome OS selection
than risk damaging the system or causing boot problems.
When possible, could a screenshot of disk management from windows be uploaded?
In Windows,
Launch "computer management" as admin.
Select "disk mamagement" menu
On the right hand pane, show a screenshot of all your drives.
Note: Windows can't read some linux file systems so please avoid clicking on the linux drive or you may see a prompt to format it. Do NOT format it if you are prompted or Linux will be destroyed.
I'm asking just to verify there isn't another less destructive solution.
Thanks for the answers guys. I'm well aware of the risks with these types of things so indeed, it may be a bit of a stretch to get this working, though it sure would be nice if this was possible.
I'll share some output in case this helps with a possible more viable solution.
Below output from "/etc/default/grub" in Zorin. NOTE: I use "Grub Customizer" to edit the boot menu order/names and to add a custom grub menu:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT="0"
#GRUB_TIMEOUT_STYLE="hidden"
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR="`( . /etc/os-release; echo ${NAME:-Ubuntu} ) 2>/dev/null || echo Ubuntu`"
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# If your computer has multiple operating systems installed, then you
# probably want to run os-prober. However, if your computer is a host
# for guest OSes installed via LVM or raw disk devices, running
# os-prober can cause damage to those guest OSes as it mounts
# filesystems to look for things.
#GRUB_DISABLE_OS_PROBER="false"
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal
#GRUB_TERMINAL="console"
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE="640x480"
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID="true"
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
GRUB_THEME="/boot/grub/themes/MathTheme-1/theme.txt"
GRUB_DISABLE_MEMTEST="true"
export GRUB_COLOR_NORMAL="light-gray/black"
export GRUB_COLOR_HIGHLIGHT="magenta/white"
I can also confirm that all 3 OS's are on the same 512 GB disk.
Here is how it looks in Gparted:
The disk management screenshot confirms the efi data, including for Linux, are all in the same partition and this will increase risk a lot since I only know of fixing this with separate efi partition spaces (and even better if on separate disks).
I don't want to derail, but it seems to me that 3 OS's on one physical disk all using the same efi partition is a recipe for disaster. Virtual machines are quite capable for most tasks with minimal setup and have a much lower risk than your current configuration. But I don't know your needs and don't necessarily want to argue a point in a troubleshooting thread.
I wish you luck with this issue, it's a little bit beyond my level of linux knowledge.
Whatever you decide to modify within your EFI boot partition, most important is to backup the EFI boot partition before the changing. Best to do within the tool Disks. This is anyhow even you don't plan EFI Boot changes a very good idea especially if you have dual or triple boot with windows as Windows can anytime override your Zorin EFI boot entry for example during a Windows Update.
Did some EFI Boot repairs, but it was pure Windows only boot Partition of a single Windows. In this one uses a functional template of the certain Windows boot partition to overwrite the defective one. But this procedure only repairs one EFI Boot entry of one certain windows installation, your Zorin EFI Boot entry will surely included be overridden if the goal disk is the actual triple boot partition.
Goal-oriented seems the suggestion from @swarfendor437 with rEFInd Tool, but also then backup of the EFI Boot partition before is highly recommended!!!
Respectfully, if you review link and post 2 specifically, within the partitioning, it is shrinking the primary data partition, creating a new partition, then making the new partition efi. There is no overwriting occuring in those instructions from post 2.
to quote:
select partition # Note: Select the Windows OS partition (# number) or your data partition.
shrink desired=100
create partition efi size=100
Yes, doing this twice for each Windows OS will result 3 efi partitions. 1, the original 200MB one shown with only remaining linux data, 2, the first 100MB partition with the first Windows efi data, and 3, the second 100MB partition with the second Windows partition.
Which results in 3 total efi partitions.
Could someone mess this up and remove all three OS from the efi partition and have no bootable OS? I agree yes, and stated multiple times, this is a high risk fix to a minor inconvenience. However, OP stated he or she was comfortable with modifying efi partitions and data, perhaps because this is a computer for home labbing or other easily expendiable non-production/non-critical system.